在深度学习中如何通俗理解梯度下降法?

詠卜分離


深度学习模型的优化机制,学习一下梯度下降法SGD。

模型优化的过程其实就是在寻找模型最优参数,希望找到模型参数的初始值,在这个值的基础上更新参数,找到参数的最优值,而如何参数更新,找到最优值呢?

深度学习中则是根据梯度下降法中最快梯度下降方向,也就是设计的loss对参数x进行求导,下式中的dx,最简单的优化器SGD中参数更新公式如下,参数x每次在dx方向减小learning_rate* dx,然后用更新后的参数,进行训练,再更新,直到模型收敛为止。

x = x - learning_rate * dx

附上一张不同优化器速度对比图

专注于分享人工智能深度学习相关科技,欢迎关注交流,更多相关知识请查看头条号文章。


AI深度学习求索


梯度下降的通俗理解

梯度下降算法是微积分里学完导数就开始就讲解的求函数极值的方法。通俗地理解,也可以称为最快下山算法。想象一下你在一个地面全是草地平整的山顶上,让你以最快的速度下山你怎么办?你每迈下一步就往周围看一圈,看哪个方向的下一步能踩到的地面更低,你就往那个方向脉下一步。就这样你迈下的每一步都是在当前位置沿坡度最大的方向,这个坡度就是梯度,你的下山过程就是不断调整方向,沿着坡度变化最大的方向,不断迈步。

其实也不算通俗理解,这就是本质理解,只是把山用z = f(x,y)表示出来,画出图像成为一个倒立的山,然后把坡度用微积分符号表示出来,普通人就看不懂了。现实中的山上有树木和特殊地形,你下山不可能按着梯度最大方向,没东西挡着你也怕摔死。即使是修路也不会按照梯度下降最快方向,为了安全,要修成盘山路。

局部最小值问题

当然,根据你所在位置不同,你最后下降到的位置可能不是全局最低点,而是了下降到了一个山沟平地里就停了(在数学上,此时梯度已经几乎为0,迭代不动了)。这就是梯度下降算法的固有缺陷,但影响并不大。因为实际的深度学习训练过程中,不需要得到全局最小值,得到的结果够用就行了,不必追求完美。



河马的实验室


看一下我的文章哦,还配有视频教程。免费领取


分享到:


相關文章: