学习 《神经网络与深度学习》 笔记5

2019年6月5日 上午11点

反向传播的四个基本方程

反向传播是对权重和偏置的变化影响代价函数过程的理解。其根本含义就是计算偏导数\frac{\partial C}{\partial b_{j}^{l}}\frac{\partial C}{\partial \omega _{jk}^{l}}

书中将对计算误差\delta_{j}^{l}的流程转化到基本两个偏导数\frac{\partial C}{\partial b_{j}^{l}}\frac{\partial C}{\partial \omega _{jk}^{l}}上。

为了便于理解,我们假设网络中有一个调皮鬼,这个调皮鬼在第l层第j个神经元上。当有输入进来时,他会在神经元的带权输入上增加一个很小的变化\Delta z_{j}^{l},是的神经元输出由\sigma \left ( z_{j}^{l} \right )变成\sigma \left ( z_{j}^{l} +\Delta z_{j}^{l}\right ),这个变化会向网络后面的层次进行传播,最终导致整个代价产生\frac{\partial C}{\partial z_{j}^{l}}\Delta z_{j}^{l}的改变。

现在这个调皮鬼反过来试图优化代价试着找到让代价更小的\Delta z_{j}^{l}。假设\frac{\partial C }{\partial z_{j}^{l}}是个很大的数值,那么可以通过选择与\frac{\partial C }{\partial z_{j}^{l}}相反的符号的\Delta z_{j}^{l}来降低代价。当\frac{\partial C }{\partial z_{j}^{l}}接近0时,我们这不能通过扰动带权输入来改善太多的代价了。

按照上面的描述,我们定义第l层第j个神经元上的误差\delta _{j}^{l}

\delta _{j}^{l}\equiv \frac{\partial C}{\partial z_{j}^{l}}

闲杂正式开始介绍反向传播的四个基本方程

1.输出层误差方程   \delta ^{L}:每个元素定义如下

\delta _{j}^{L}=\frac{\partial C}{\partial a_{j}^{L}}\sigma {}'(z_{j}^{L})

对于上面的公式,我们可以用矩阵形式重写方程,表示为

\delta ^{L}=\bigtriangledown _{a}C\odot \sigma {}'(z^{L})

其中\bigtriangledown _{a}C被定义为一个向量,其元素是偏导数\frac{\partial C}{\partial a_{j}^{L}},若代价函数是二次代价函数,则\bigtriangledown _{a}C=(a^{L}-y),所以整个矩阵形式变为

\delta ^{L}=(a^{L}-y)\odot {\sigma }'\left ( z^{L} \right )

 

2.使用下一层的误差来表示当前层的误差,特别的,

\delta ^{L}=((\omega ^{l+1})^{T}+\delta ^{l+1})\odot {\sigma }'(z^{l})

其中(\omega ^{l+1})^{T}是第(l+1)层权重矩阵\omega ^{l+1}的转置。我们可以从直觉上感觉出来误差是沿着网络的反向进行传播的。

 

3.代价函数关于网络中任意偏执的改变率:就是

\frac{\partial C}{\partial b_{j}^{l}}=\delta _{j}^{l}

 

4.代价函数关于任何一个权重的改变率:特别地

\frac{\partial C}{\partial \omega_{j}^{l} }=a_{k}^{l-1}\delta _{j}^{l}

这里我个人认为这个代价函数对于权重的偏导数等于前一层的输出(是经过激活函数处理过的带权输出)和当前层的误差的乘积。减少下表后可以表示为

\frac{\partial C}{\partial \omega }=a_{in}\delta _{out}

当激活值很小时,梯度也会趋向很小。这样我们就说权重学习缓慢,第四个方程的结果就是来自低激活值神经元的权重学习会非常缓慢。这四个方程还有其他可以理解的方面。比如从第一个方程中的{\sigma }'(z_{k}^{l})。我们已经知道了S型函数的图像,当\sigma(z_{k}^{l})近似为0或者1的时候函数会变得非常平。也就意味着{\sigma }'(z_{k}^{l})\approx 0。所以当输出神经元处于或者低激活值(约等于0)或者高激活值(约等于1)时,最终层的学习会很缓慢,这样我们称输出神经元已经饱和了。

你可能感兴趣的:(机器学习笔记)