backpropagation_梯度下降法和反向传播算法Backpropagation是什么关系?

1. 梯度下降法(Gradient Descent Algorithm)

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

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

单变量函数的梯度下降示意图

daa3728c2a9e27ef453152701cc9d800.png

多变量函数的梯度下降示意图

1a70c54f7e655c7b93ba6d0a5cb84ecb.png

梯度下降法的迭代公式如下:

24e319d4ffe3d9fab67d92361f9c7ee3.png

2. 反向传播算法(Backpropagation Algorithm)

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

反向传播示意图如下。

9d641c41b3c738c4e087ee9dced1b248.png

反向传播算法是神经网络中最有效的算法,其主要的思想是将网络最后输出的结果计算其误差,并且将误差反向逐级传下去。反向传播运用的是链式求导的基本思想(隐函数求导),具体推导公式如下。

705bbd3636eaf6ee3eda6787b47f1f15.png

其中,引入了残差的定义。

残差δ的定义:损失函数对神经元节点值v 求偏导数。

34d50aa9abc948f284c1e1c1b6fd377d.png

反向传播就是从最后一层开始,一层一层往前计算每一层神经元的残差值。

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

计算所有节点上的残差之后,就可以根据公式得到损失函数对所有W 和 b 的偏导数。这个才是反向传播计算所有节点上的残差的真正目的。

e0db04ca10bd4a35ac047047783183a5.png

最后,根据一定的学习率(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).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值