如何理解梯度下降法?

下面是机器学习的《监督式学习》课程中“逻辑回归”单元的内容,感兴趣的同学可以点击最下方的 阅读原文 购买。

梯度下降法是用来计算函数最小值的。它的思路很简单,想象在山顶放了一个球,一松手它就会顺着山坡最陡峭的地方滚落到谷底:

图片

凸函数图像看上去就像上面的山谷,如果运用梯度下降法的话,就可以通过一步步的滚动最终来到谷底,也就是找到了函数的最小值。

1 动机

先解释下为什么要有梯度下降法?其实最简单的二维凸函数是抛物线  ,很容易通过解方程   求出最小值在   处:

图片

只是有一些凸函数,比如下面这个二元函数(该函数实际上是逻辑回归的经验误差函数,在监督式学习中确实需要求它的最小值):要求它的最小值点就需要解如下方程组:

 这个方程组实在太复杂了,直接求解难度太高,好在   的图像就像一座山谷:

图片

所以可以用梯度下降法来找到   的谷底,也就是最小值。

2 最简单的例子

梯度下降法在本文不打算进行严格地证明和讲解,主要通过一些例子来讲解,先从最简单的凸函数   开始讲起。

2.1 梯度向量

假设起点在   处,也就是将球放在  :

图片

它的梯度为 1 维向量:  这是在   轴上的向量,它指向函数值增长最快的方向,而   就指向减少最快的方向:

图片

将   也看作 1 维向量  ,通过和   相加,可以将之向   移动一段距离得到新的向量  :  其中   称为步长,通过它可以控制移的动距离,本节设  ,那么:  此时小球(也就是起点)下降到了   这个位置:

图片

2.2 迭代

   的梯度为:  继续沿着梯度的反方向走:  小球就滚到了更低的位置:

图片

重复上述过程到第 10 次,小球基本上就到了最低点,即有  :

图片

2.3 梯度下降法

把每一次的梯度向量   的模长  列出来,可以看到是在不断减小的,因此这种方法称为梯度下降法:

图片

这也比较好理解,当最终趋向于 0 时有:  所以梯度下降法求出来的就是最小值(或者在附近)。

3 步长

上面谈到了可以通过步长   来控制每次移动的距离,下面来看看不同步长对最终结果的影响。

3.1 过小

如果设   就过于小了,迭代 20 次后离谷底还很远,实际上 100 次后都无法到达谷底:

图片

3.2 合适

上面例子中用的   是较为合适的步长,10 次就差不多找到了最小值:

图片

3.3 较大

如果令  ,这个时候会来回震荡(下图看上去只有两个点,实际上在这两个点之间来来回回):

图片

3.4 过大

继续加大步长,比如令  ,反而会越过谷底,不断上升:

图片

3.5 总结

总结下,不同的步长  ,随着迭代次数的增加,会导致被优化函数   的值有不同的变化:

图片

寻找合适的步长是个手艺活,在工程中可以将上图画出来,根据图像来手动调整:

  •    往上走(红线),自然是   过大,需要调低 
  •   一开始下降特别急,然后就几乎没有变化(棕线),可能是   较大,需要调低
  •    几乎是线性变化(蓝线),可能是   过小,需要调高

4 三维的例子

原理都介绍完了,下面再通过一个三维的例子来加强对梯度下降法的理解。假设函数为: 

 其图像及等高线如下(等高线中心的蓝点表示最小值):

图片

下面用梯度下降法来寻找最小值。

4.1 前进一步

设初始点为  ,此时梯度为: 令步长  ,那么下一个点为:  可以看到向最小值方向前进了一步:

图片

4.2 迭代

同样的方法找到下一个点:  此时又向最小值靠近了:

图片

如此迭代20次后,差不多找到了最小值:

图片

我们通过通俗易懂、图形化的方式,对机器学习中的《监督式学习》进行了精讲,目前还在连载中,可以享受早鸟价格,可以点击下面的链接购买:

👉 也可以直接点击下面这个图片购买机器学习的前置课程,《线性代数》、《单变量微积分》、《多变量微积分》、《概率论与数理统计》:

图片

图片 最易懂的数学知识库:

图片

马同学图解数学

看得懂的数学

微信公众号ID :matongxue314


原网址: 访问
创建于: 2021-01-14 11:02:02
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论