李宏毅机器学习笔记——反向传播算法

反向传播算法

  1. 前向传播 forward propagation 过程:当前馈神经网络接收输入 李宏毅机器学习笔记——反向传播算法 并产生输出 李宏毅机器学习笔记——反向传播算法 时,信息前向流动。 输入 李宏毅机器学习笔记——反向传播算法 提供初始信息,然后信息传播到每一层的隐单元,最终产生输出 李宏毅机器学习笔记——反向传播算法
  2. 反向传播算法 back propagation 允许来自代价函数的信息通过网络反向流动以便计算梯度。
  • 反向传播并不是用于学习整个神经网络的算法,而是仅用于计算梯度的算法。 神经网络的学习算法是随机梯度下降这类基于梯度的算法。
  • 反向传播不仅仅适用于神经网络,原则上它适用于计算任何函数的导数。
  1. 计算图 computational graph :
  • 图中的每个节点代表一个变量 (可以是标量、向量、矩阵或者张量)。
  • 操作: operation 为一个或者多个变量的简单函数。
  • 多个操作组合在一起可以描述一个更复杂的函数。
  • 一个操作仅返回单个输出变量 (可以是标量、向量、矩阵或者张量)。
  • 如果变量 李宏毅机器学习笔记——反向传播算法 是变量 李宏毅机器学习笔记——反向传播算法 通过一个操作计算得到,则在图中绘制一条从 李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法 的有向边。

链式法则

  1. 反向传播算法是一种利用链式法则计算微分的算法。
  2. 在一维的情况下,链式法则为: 李宏毅机器学习笔记——反向传播算法
  3. 在多维情况下,设: 李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法 的映射且满足 李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法 的映射且满 足 李宏毅机器学习笔记——反向传播算法 。则有:
    李宏毅机器学习笔记——反向传播算法
    使用向量记法,可以等价地写作:
    李宏毅机器学习笔记——反向传播算法
    其中: 李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法 阶雅可比矩阵, 李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法 的梯度, 李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法 的梯度:
    李宏毅机器学习笔记——反向传播算法

张量链式法则

  1. 链式法则仅可以作用于向量,也可以应用于张量:
  • 首先将张量展平为一维向量。
  • 然后计算该向量的梯度。
  • 然后将该牱度重新构造为张量。
  1. 李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法 对张量 李宏毅机器学习笔记——反向传播算法 的梯度。 李宏毅机器学习笔记——反向传播算法 现在有多个索引 (如:二维张量有两个索引),可以使用单个变量 李宏毅机器学习笔记——反向传播算法 来表 示 李宏毅机器学习笔记——反向传播算法 的索引元组(如 李宏毅机器学习笔记——反向传播算法 表示: 一个二维张量的系引,每个维度三个元素)。
    这就与向量中的系引方式完全一致: 李宏毅机器学习笔记——反向传播算法
    奴:
    李宏毅机器学习笔记——反向传播算法
    则有:
    李宏毅机器学习笔记——反向传播算法
  2. 李宏毅机器学习笔记——反向传播算法 ,用单个变量 李宏毅机器学习笔记——反向传播算法 来表示 李宏毅机器学习笔记——反向传播算法 的索引元組。则张量的链式法则为:
    李宏毅机器学习笔记——反向传播算法
    如:
    李宏毅机器学习笔记——反向传播算法
    则有:
    李宏毅机器学习笔记——反向传播算法

反向传播算法

  1. 反向传播算法:
  • 输入:
  • 计算图 李宏毅机器学习笔记——反向传播算法
  • 初始化参数向量 李宏毅机器学习笔记——反向传播算法
    。 输出: 李宏毅机器学习笔记——反向传播算法
  • 运行计算 李宏毅机器学习笔记——反向传播算法 的前向算法,获取每个节点的值。
  • 给出一个 grad_table 表,它存储的是已经计算出来的偏导数。
    李宏毅机器学习笔记——反向传播算法 对应的表项存储的是偏导数 李宏毅机器学习笔记——反向传播算法
  • 初始化 grad_table 李宏毅机器学习笔记——反向传播算法
  • 沿着计算图 李宏毅机器学习笔记——反向传播算法 计算偏导数。遍历 李宏毅机器学习笔记——反向传播算法李宏毅机器学习笔记——反向传播算法 到 1 :
  • 计算 李宏毅机器学习笔记——反向传播算法 。其中: 李宏毅机器学习笔记——反向传播算法 是已经存储的 grad_table[ui 李宏毅机器学习笔记——反向传播算法, 李宏毅机器学习笔记——反向传播算法 为实时计算的。
    李宏毅机器学习笔记——反向传播算法 中的边 李宏毅机器学习笔记——反向传播算法 定义了一个操作,而该操作的偏导只依赖于这两个变量,因此可以实时求 解 李宏毅机器学习笔记——反向传播算法
  • 存储 李宏毅机器学习笔记——反向传播算法 _able 李宏毅机器学习笔记——反向传播算法
  • 逅回 李宏毅机器学习笔记——反向传播算法
  1. 反向传播算法计算所有的偏导数,计算量与 李宏毅机器学习笔记——反向传播算法 中的边的数量成正比。
    其中每条边的计算包括计算偏导数,以及执行一次向量点积。
  2. 上述反向传播算法为了减少公共子表达式的计算量,并没有考虑存储的开销。这避免了重复子表达式的指数 级的增长。
    。 某些算法可以通过对计算图进行简化从而避免更多的子表达式。
    。 有些算法会重新认算这些子表达式而不是存储它们,从而节省内存。

参考

DataWhale
http://www.huaxiaozhuan.com/

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年5月23日
下一篇 2022年5月23日

相关推荐