简介
机器学习的本质就是模型+优化,本篇blog主要是简单介绍一种优化算法——梯度下降法。相比于其他的优化算法,该算法的适用性较高,尤其在深度网络的学习中,主流的优化算法就是梯度下降法。虽然说该方法适用性高,但是仍有一定的局限性,比如对于非凸函数收敛于局部最小,梯度消失,梯度爆炸等问题,但总的来说该算法的应用还是十分广泛的。
场景假设
首先,我们先假设一个场景:一个人被放在山上,现在他想找到一条下山的路到达山脚,但是这个人没有地图,也不知道所处位置和方向。另外山上还起了大雾,导致能见度很低,因此没有办法直接找到一条合适的路径,只能自己一步步摸索,那么这个时候,便可利用梯度下降算法来帮助自己下山。
具体怎么做呢,首先以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着下降方向走一步,然后又继续以当前位置为基准,再找最陡峭的地方,再走直到最后到达最低处。虽然这么走不一定是最短路径,但是每一步都能保证自己离山脚更进一步,这就是梯度下降法的核心:一步步慢慢的靠近最小值点,不一定最快,但一定有效。那么一定会有同学问了,如果我想找到f(x)的最高点怎么办?同样,我们可以利用梯度下降的方法找-f(x)最小点即可。