反向传播和梯度下降的关系

1 梯度下降法(Gradient Descent Algorithm)

梯度下降法是一种通用的优化算法,中心思想是沿着目标函数梯度的方向更新参数值以希望达到目标函数最小(或最大)。梯度下降法是深度学习网络最常用的优化算法。除了深度学习,很多其他场合也会用梯度下降法。

我们需要到达山底,就需要在每一步观测到此时最陡峭的地方,梯度就恰巧告诉了我们这个方向。梯度的方向是函数在给定点上升最快的方向,那么梯度的反方向就是函数在给定点下降最快的方向,这正是我们所需要的。所以我们只要沿着梯度的方向一直走,就能走到局部的最低点!

单变量函数的梯度下降示意图
反向传播和梯度下降的关系_第1张图片
多变量函数的梯度下降示意图
反向传播和梯度下降的关系_第2张图片
梯度下降法的迭代公式如下:
反向传播和梯度下降的关系_第3张图片

2 反向传播算法(Backpropagation Algorithm)

由于深度学习网络按层深入,层层嵌套的特点,对深度网络目标函数计算梯度的时候,需要用反向传播的方式由深到浅倒着计算以及更新参数。所以反向传播法是梯度下降法在深度网络上的具体实现方式。

反向传播示意图如下。
反向传播和梯度下降的关系_第4张图片
反向传播算法是神经网络中最有效的算法,其主要的思想是将网络最后输出的结果计算其误差,并且将误差反向逐级传下去。反向传播运用的是链式求导的基本思想(隐函数求导),具体推导公式如下。
反向传播和梯度下降的关系_第5张图片
其中,引入了残差的定义。

残差δ的定义:损失函数对神经元节点值v 求偏导数。
在这里插入图片描述
反向传播就是从最后一层开始,一层一层往前计算每一层神经元的残差值。

根据残差值计算损失函数对权值的导数,然后更新权值。

计算所有节点上的残差之后,就可以根据公式得到损失函数对所有W 和 b 的偏导数。这个才是反向传播计算所有节点上的残差的真正目的。
反向传播和梯度下降的关系_第6张图片
最后,根据一定的学习率(alpha)更新参数W 和 b 的值。

反向传播算法是梯度下降时的一种快速求偏导的算法,巧妙加快了更新权值w和偏置项b的过程。

反向传播的思想

对于每一个训练实例,将它传入神经网络,计算它的输出;然后测量网络的输出误差(即期望输出和实际输出之间的差异),并计算出上一个隐藏层中各神经元为该输出结果贡献了多少的误差;反复一直从后一层计算到前一层,直到算法到达初始的输入层为止。

此反向传递过程有效地测量网络中所有连接权重的误差梯度,最后通过在每一个隐藏层中应用梯度下降算法来优化该层的参数(反向传播算法的名称也因此而来)。

可以参考一下英文,加深对中文的理解:

for each training instance the backpropagation algorithm first makes a prediction (forward pass), measures the error, then goes through each layer in reverse to measure the error contribution from each connection (reverse pass), and finally slightly tweaks the connection weights to reduce the error (Gradient Descent step).

3 对于两者关系的总结

梯度下降法是通用的优化算法,反向传播法是梯度下降法在深度神经网络上的具体实现方式。

参考链接:
深度学习的前戏–梯度下降、反向传播、激活函数
https://zhuanlan.zhihu.com/p/32714733
https://www.jianshu.com/p/74bb815f612e
https://blog.csdn.net/ft_sunshine/article/details/90221691

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