梯度下降与反向传播算法详解
1. 梯度下降与局部最小值
在优化问题中,梯度下降是一种常用的方法,它通过沿着梯度的反方向更新参数,以最快的速度接近函数的最小值。梯度方向就像图中绿色箭头所示,代表了函数值下降最快的方向,与之对比的红色箭头则表示任意非梯度路径。
不过,梯度下降存在一个问题,即它可能会陷入局部最小值。如图所示,对于一个非凸函数,存在局部最小值和全局最小值。梯度下降的最终结果取决于起始点的选择,它可能会把我们带到局部最小值而非全局最小值。
在早期,优化技术会尽力避免局部最小值,试图收敛到全局最小值,像模拟退火和隧道算法等就是为此精心设计的。但现代神经网络采取了不同的策略,它们不会过于刻意地避免局部最小值。有时,局部最小值也可以是一个可接受(足够准确)的解决方案;如果不行,我们可以重新训练神经网络,由于重新训练会从随机位置开始,这次可能会找到更好的最小值。
2. 反向传播算法
梯度下降通过反复更新权重和偏置来进行优化,这等价于使用单个偏导数反复更新各个权重和偏置。然而,要从相关方程中获得梯度的封闭形式解是非常困难的。反向传播算法则允许我们像前向传播一样,逐层评估梯度并更新权重和偏置。
2.1 简单网络上的反向传播算法
我们先从一个简单的多层感知机(MLP)开始研究反向传播,这个MLP每层只有一个神经元。这样的简化使得权重和偏置不再需要下标,只需用上标来表示层的编号。
我们使用均方误差(MSE)损失函数,并针对单个输入输出对进行计算,总损失可以通过重复相同步骤得到。
首先定义一个辅助变量 $\delta^{(l)} = \frac{\partial
超级会员免费看
订阅专栏 解锁全文
2260

被折叠的 条评论
为什么被折叠?



