超智能体读书笔记

版权说明:
本文仅记录在阅读 于建国(YJango)博士的《超智能体》一书过程中的笔记。本文作者已通过邮件联系作者,获得授权。

智能的本质

 智能起源于随机性(熵):随着时间的推移,孤立系统会自发朝向最大熵状态演化[不去刻意整理的宿舍会越来越乱]。

智能:根据环境变化做出相应变化的能力,即熵减的能力[减少“不确定性”]

 想要探究智能,我们必须具备正确描述世界状态和不同时间下的状态变化。线性代数则给了我们答案。

线性代数

线性代数:有关任意维度空间下事物状态变化状态的规则

矩阵的本质:存储状态(静态)变化(动态)的信息

  1. 矩阵的静态信息:
     向量可以描述一个事物的状态,许多具有相同维度的向量的有序排列构成了矩阵。
    • 关于张量:多个标量有序排列后形成向量,多个向量有序排列后形成矩阵,多个矩阵有序排列后形成三维张量(3D tensor)。
  2. 矩阵的动态信息:
     此时矩阵可以看做是多个维度相同的权重的有序排列,并且可以对另一个矩阵的静态信息进行批量变化。这便是矩阵乘法的本质。

    两个矩阵相乘,一个矩阵提供状态信息,另个矩阵提供变化信息

  3. 向量空间:能够容纳所有线性组合的状态集合。

    • 向量空间一定在各个维度可以无限延伸(因为实数域无限)
    • 子空间:子空间内的向量空间
      • 最小的子空间:0
      • 空集不可以是向量空间
  4. 线性变换:
    矩阵乘以矩阵可以视作一个矩阵内部向量的批量线性变换(lineartransformation)。方便理解起见可以仅讨论由矩阵乘以向量所形成的一次线性变换。直接上图:

  5. 线性变化:不同维度空间下的向量组的投影。例如$y{2*1}=A{23}x_{31}$便是将三维向量$x$经过线性变换后变成二维空间的向量$y$。
    注:神经网络的核心 $$ y=a(Ax+b)$$

维度的扩展

思维空间:人们认为自己拥有自由的意识和思维。然而这种自由也是有限的。它好比线性空间里的张成,能张成多大的意识空间取决于脑中有多少互不相关的因素,也就是维度(秩)。

 维度的作用:

  • 复数的理解:进一步扩展的数的域。
  • 傅里叶变换的理解:在x-y坐标系上增加1维时,一切豁然开朗。
  • 弦理论的理解:尝试融合相对论和量子力学的理论,但只有当扩充到10维空间+1维时间时,数学公式才合理。

  • 弦理论

    • 1.问题的起源:
      • 宇宙也许存在高维度的空间
      • 构成世界最基础的成分是什么?
    • 2.物质的构成:分子->原子->质子、中子->???
      可能是不断跳动的能量线条:宇宙万物的一切皆源于此。
    • 3.上述理论的数学证明之后在十维空间和一维时间的情况下才成立。那么我们的宇宙的确可能存在高纬度的空间
    • 4.新的问题:当我们观测一个宇宙的状态时,我们确定了20个数值(粒子的质量,重力场的强度,…),并且如果这20个数中的任何一个数有所变化,我们的宇宙将不复存在。那么这20个数值是因为什么而确定的呢?
      也许是更高纬度的空间
      1. 通过实验证明高纬度空间的存在:
        欧洲大型强子对撞机通过将质子加速对撞,观测:如果对撞后的能量有所损失,则可能是因为对撞的一部分“残骸”进入到了高纬度空间!

小结:当问题无法被理解时,往往是因为找错的地方,不妨尝试扩展维度,增加搜索空间。然而由于信息量的限制,很多事物无法确定变化后的状态,因此需要概率为我们提供依据。

概率

概率是用来衡量事物在跨时间后的不同状态的确信度

熵与生命

生命活着就在减熵:利用信息压缩(或者说抽象)后形成的知识,对抗熵增!

 智能的条件

  • 智能LV1:从环境到行动的关联能力[生存](植物&微生物)
  • 智能LV2:利用过去到未来的关联能力[预测](动物)
  • 智能的实现:通过存储关联的材料(遗传物质)

自然智能

RNA与DNA(智能LV1)

  • 识别:DNA上的信息:蛋白质合成。
  • 学习:繁衍,变异,筛选。
  • 进化:进化是以种群为单位的被动过程
     问题:在《未来简史》中,作者描述人类将打破自然选择的进化理论,转而通过基因改造技术“主动”进化。
  • 永生的缺陷:永生者失去了为种群提供差异性的筛选功能。

神经元

  1. 神经元的本质行为:
    $$y=a(Wx+b),其中x是输入信号,y是输出信号$$

人工智能

梯度下降的问题

  • 局部最小值(鞍点)的解决方案:
    • 随机梯度下降:每次只更新一个样本所计算的梯度
    • 小批量梯度下降:每次更新若干样本所计算梯度的平均值
    • .etc

深度学习

神经网络不缺少新结构,但缺少一个该领域的$E=mc^2$

  1. 为什么神经网络高效:并行的先验知识使得模型可用线性级数量的样本学习指数级数量
    的变体:
  2. 学习的本质是什么:将变体拆分成因素和知识(Disentangle Factors of Variation)
  3. 为什么深层神经网络比浅层神经网络更高效:
  4. 神经网络在什么问题上不具备优势:
    • 非函数问题:需要想办法将问题转化为函数问题
    • 非迭代:该层的状态不是由上层状态构成的任务

深度学习计算机实现平台:tensorflow

Tensorflow基本用法

  1. 准备阶段:组装计算图
    • 计算图想象成一个管道:需要组装的结构,由许多操作组成
    • 操作想象成不通管道分支的连接处:对零个或多个数据进行输入与输出
    • 数据类型:1.张量(tensor)2.变量(variable)3.常量(constant)
      • 张量想象成管道中的液体:多维度array或者list
        tener_name = tf.placeholder(type, shape, name)
      • 变量:在同一时刻对图中所有其他操作都保持静态的数据(管道中的阀门)
        name_variable = tf.Variable(value, name)
      • 常量:无需初始化的变量
        name_constant = tf.constant(value)
  2. 执行阶段:使用计算图
    • 执行语句: sess.run(op)
    • 送值(feed): 输入操作的输入值(输入液体)
      sess.run([output], feed_dict={input1:value1, input2:value2})
    • 取值(fetch): 获取操作的输出值(得到液体)
      sess.run(one op)
      sess.run([a list of op])

DEMO部分:

YJango博士的部分demo由于tensorflow版本问题可能无法运行,我将部分代码已经“修正”并已上传至github,本地环境测试均可通过,请大家放心使用。
代码部分的笔记

参考与引用: 1. 《超智能体》 于建国(Yjango)博士

请zzy824喝杯咖啡
0%