神经网络基础学习系列(四)——更新权重

 

 

上篇文章已经推出来误差的后向传播,我们可以使用使用上篇文章推出来的误差来指导如何调整链接权重,这样可以改进神经网络的输出答案。

由于神经网络经过各种运算,其输出不是简单的线性函数,而是复杂的超越方程,对于这种函数,目前没有很好地解法。回顾数学上解超越方程的解法——试探法,即每次给出试探性的解,带入方程中,得出与目标的误差(亦叫损失函数loss),再调整试探解。现在有一种与此类似的解法——梯度下降法。

举个简单的例子来说明下什么是梯度下降法。想象一下, 一个非常复杂、 有波峰波谷的地形以及连绵的群山峻岭。 在黑暗中, 伸手不见五指。 你知道你是在一个山坡上, 你需要到坡底。 对于整个地形, 你没有精确的地图, 只有一把手电筒。 你能做什么呢? 你可能会使用手电筒, 做近距离的观察。你不能使用手电筒看得更远, 无论如何, 你肯定看不到整个地形。 你可以看到某一块土地看起来是下坡, 于是你就小步地往这个方向走。 通过这种方式, 你不需要完整的地图, 也不需要事先制定路线, 你一步一个脚印,缓慢地前进, 慢慢地下山。

神经网络基础学习系列(四)——更新权重_第1张图片

 梯度在数学上表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。采用梯度下降法,我们可以 一点一点地改进所在的位置,步进式接近答案。尽管可能无法给出精确解, 但是我们可以使用更小的步子朝着实际的最小值方向迈进, 优化答案,直到我们对于所得到的精度感到满
意为止。梯度下降法适合于求最小值,正适合运用于loss函数。即loss取最小值时,输出最接近于目标值。

 

神经网络基础学习系列(四)——更新权重_第2张图片

其中,梯度下降法每个步长要控制得当,以避免超调, 这样就会避免在最小值的地方来回反弹。规律是正梯度减小值,负梯度增大值。同时为了避免终止于错误的山谷或错误的函数最小值(局部最小值), 我们可以从山上的不同点开始, 多次训练神经网络, 确保并不总是终止于错误的山谷。 不同的起始点意味着选择不同的起始参数, 在神经网络的情况下, 这意味着选择不同的起始链接权重。还可以给下降加入动量,使其可以跳出局部最小值。

即为了避免终止于局部最小值,我们可以采用不同的起始链接权重和加入动量使其可以跳出局部最小值。

神经网络基础学习系列(四)——更新权重_第3张图片

总结一下梯度下降法。

  1. 梯度下降法是求解函数最小值的一种很好的办法, 当函数非常复杂困难, 并且不能轻易使用数学代数求解函数时, 这种方法却发挥了很好的作用。
  2. 更重要的是, 当函数有很多参数, 一些其他方法不切实际, 或者会得出错误答案, 这种方法依然可以适用。
  3. 这种方法也具有弹性, 可以容忍不完善的数据, 如果我们不能完美地描述函数, 或我们偶尔意外地走错了一步, 也不会错得离谱。

误差函数(损失函数loss)采用差的平方, 即差的平方, 即(目标值-实际值)^2,具有以下几点好处:

  1. 使用误差的平方, 我们可以很容易使用代数计算出梯度下降的斜率。
  2. 使loss函数在最小值处连续,误差函数平滑连续, 这使得梯度下降法很好地发挥作用——没有间断, 也没有突然的跳跃。
  3. 越接近最小值, 梯度越小, 这意味着, 如果我们使用这个函数调节步长, 超调的风险就会变得较小。

下面是误差函数梯度的表达式。

神经网络基础学习系列(四)——更新权重_第4张图片

 

注意, 在节点n的输出\LARGE o_{n} 只取决于连接到这个节点的链接, 因此我们可以直接简化这个表达式。 这意味着, 由于这些权重是链接到节点k的权重, 因此节点k的输出\LARGE o_{k}只取决于权重\LARGE {\color{Red} w_{jk}}。也可以从另一方面理解。节点k的输出不依赖于权重
, 其中, 由于b和k之间没有链接, 因此b与k无关联。 权重\LARGE {\color{Red} \LARGE w_{jb}} 是连接输出节点b的链接权重, 而不是输出节点k的链接权重。

简化后的误差函数表达式如下所示:

神经网络基础学习系列(四)——更新权重_第5张图片

由链式法则可得 

神经网络基础学习系列(四)——更新权重_第6张图片

则误差函数梯度的表达式可展开成下面的形式: 

神经网络基础学习系列(四)——更新权重_第7张图片

由于\LARGE o_{k}{\color{Red} }是下一层的输出,它是由上一层输出\LARGE o_{j}{\color{Red} } 与其相链接的链接权重乘积经过激活函数的的输出,所以上式可以展开成下面的形式:

神经网络基础学习系列(四)——更新权重_第8张图片

根据数学上S函数的求导公式 如下式所示,推导过程不展示了。

那么根据上式S函数的求导公式,带入上上式 并化简可以得到下面的结果:

 系数2对于梯度是没有很大意义的,去掉系数2后损失函数的梯度如下式所示:

则最后推出的权重更新如下式: 

神经网络基础学习系列(四)——更新权重_第9张图片

 式中\LARGE \alpha是学习率,用于调节变化,根据特定情况调整。权重改变的方向与梯度方向相反。

权重更新需要注意点:

神经网络的误差是内部链接权重的函数。

改进神经网络,意味着通过改变权重减少这种误差

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(卷积神经网络)