反向传播

通常使用梯度下降的方法优化目标函数,梯度下降需要逐步的更新网络的权重和偏置,最终使网络的误差最小

而更新网络的权重和偏置,需要计算目标函数 C 关于权重或者偏置的偏导数,即反向传播反向传播

反向传播算法就是为了计算这些偏导数的

一些参数的的定义:

使用 a 来表示神经元的**值, b 表示偏置

第 l 层第 j 个神经元的**值为:反向传播,求和是在 l-1 层上所有的 k 个神经元上进行的。

写成矩阵的形式就是:反向传播,这个表达方式更好的表达了每层**值和前一层**值的关系,仅仅使用权重矩阵作用在**值上,然后添加一个偏置向量,总用在 δ 函数。

称 z 是神经元的带权输入 ,  a = δ(z)

引入一个中间量反向传播,称之为第 l 层第 j 个神经元上的误差:反向传播

四个基本方程:

反向传播给出计算误差的流程然后将其关联到计算反向传播反向传播

(BP1) 输出层误差的方程:反向传播

第一项,表示代价随着第 j 个神经元输出**值变化而变化的速度

第二项,表示**函数在 zjl 处变化的速度

矩阵形式为:反向传播反向传播看成是 C 关于输出**值的改变速度

当使用二次代价函数时, BP1 可以写成:反向传播

   (BP2)  使用下一层的误差来表示当前层的误差:反向传播

假如我们知道 l+1层的误差,应用 l+1 层的 weight 的转置,可以凭直觉看做沿着网络反向传播误差

通过组合 BP1 和 BP2 ,可以计算任何层的误差,

 (BP3) 代价函数关于网络中任意偏置的改变率:反向传播

 (BP4) 代价函数关于任何一个权重的改变率:反向传播

方程式可以用更少的下标表示:反向传播,其中第一项是输入给权重 w 的神经元的**值,第二项是输出自权重 w 的神经元的误差。

反向传播