降低损失--梯度下降法
假设我们有时间和计算资源来计算w1的所有可能值的损失。对于我们一直在研究的回归问题,所产生的损失与w1的图形始终是凸形。如下图所示:
图2回归问题产生的损失与权重图为凸形
凸形问题只有一个最低点,即只存在一个斜率正好为0的位置。这个最小值就是损失函数收敛之处。
通过计算整个数据集中w1每个可能值的损失函数来找到收敛点的这种方法效率太低。我们来研究一种更好的机制,这种机制在机器学习领域非常热门,称为梯度下降法。
梯度下降法的第一个阶段是为w1选择一个起始值(起点)。起点的选择并不重要,因此很多算法就将w1设置为0或一个随机的值。下图显示的是我们选择的一个稍大于0的起点:
图3梯度下降的起点
然后,梯度下降法会计算损失曲线在起点处的梯度。简而言之,梯度是偏导数的矢量,它可以让你了解那个方向距离目标更近或更远,损失相对于单个权重的梯度就等于导数。
梯度是一个矢量,具有两个特征:
- 大小
- 方向
梯度始终指向损失函数中增长最为迅猛的方向。梯度下降算法会沿着负梯度的方向走一步,以便尽快降低损失。
图4 梯度下降法依赖于负梯度
为了确定损失函数曲线上的下一个点,梯度下降算法会将梯度大小的一部分与起点相加,如下图所示:
图5一个梯度步长将我们移动到损失曲线上的下一个点
然后,梯度下降法会重复此过程,逐渐接近最低点。