梯度下降(Gradient Descent)是用于寻找函数最小值的一种优化算法。我们常常利用梯度下降法来使损失函数Loss function的值尽可能小,即让神经网络的预测值(实际输出)和标签值(预期的输出)尽可能接近。在这个过程中,网络参数——各层的权值与偏重将得到调整,这也正是神经网络的训练原理。可见熟悉梯度下降的原理对于理解神经网络相当重要。
本文将从损失函数概念、梯度下降原理 & 为什么沿梯度负方向函数值下降最快、梯度更新公式三个方面展开。
一、什么是损失函数(Loss function)?
损失函数通常为多元函数,其自变量包括网络中包含的所有的权重w、以及所有的偏置b,有的地方也将其称作代价函数(Cost function),这里只介绍均方误差损失函数(MSE):
L o s s F u n c t i o n = ∑ j = 1 m ∥ y ⃗ j p r e d i c t − y ⃗ j l a b e l ∥ 2 2 m LossFunction = \sum_{j=1}^{m} \frac{\Vert \vec y_{j_{predict}}- \vec y_{j_{label}} \Vert ^2}{2m} LossFunction=j=1∑m2m∥yj