通常使用梯度下降的方法优化目标函数,梯度下降需要逐步的更新网络的权重和偏置,最终使网络的误差最小
而更新网络的权重和偏置,需要计算目标函数 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 的神经元的误差。