反向传播算法

  1. 前向传播 forward propagation 过程: 当前馈神经网络接收输入 2.反向传播算法 - 图1 并产生输出 2.反向传播算法 - 图2 时,信息前向流动。

    输入 2.反向传播算法 - 图3 提供初始信息,然后信息传播到每一层的隐单元,最终产生输出 2.反向传播算法 - 图4

  2. 反向传播算法back propagation允许来自代价函数的信息通过网络反向流动以便计算梯度。

    • 反向传播并不是用于学习整个神经网络的算法,而是仅用于计算梯度的算法。

      神经网络的学习算法是随机梯度下降这类基于梯度的算法。

    • 反向传播不仅仅适用于神经网络,原则上它适用于计算任何函数的导数。

  1. 计算图computational graph

    • 图中的每个节点代表一个变量(可以是标量、向量、矩阵或者张量)。

    • 操作:operation为一个或者多个变量的简单函数。

      • 多个操作组合在一起可以描述一个更复杂的函数。
      • 一个操作仅返回单个输出变量(可以是标量、向量、矩阵或者张量)。
    • 如果变量 2.反向传播算法 - 图5 是变量 2.反向传播算法 - 图6 通过一个操作计算得到,则在图中绘制一条从 2.反向传播算法 - 图72.反向传播算法 - 图8 的有向边。

    如: 2.反向传播算法 - 图9 的计算图:

    2.反向传播算法 - 图10