来源链接:https://mp.weixin.qq.com/s/kUE7NcTiQyYP-oWi0T_mbA
来源公众号:阿柴的算法学习日记
转载以学习回忆
___________________________开始
原文此处有动图。。。。
梯度下降是指,给定待优化的模型参数和目标函数后,算法沿梯度
的相反方向更新来最小化。学习率a决定了每一时刻的更新步长。对于每一个时刻t,我们可以用下述步骤来描述梯度下降的流程。
1.计算目标函数的梯度
2.更新模型参数
梯度下降法目前主要分为三种方法,区别在于每次参数更新时计算的样本数据量不同:批量梯度下降法(BGD, Batch Gradient Descent),随机梯度下降法(SGD, Stochastic Gradient Descent)及小批量梯度下降法(Mini-batch Gradient Descent)。
一:
注意红箭头 目前的SGD默认是小批量梯度下降算法
对于随机梯度下降算法,明显存在以下缺点
选择合适的learning rate比较困难 ,学习率太低会收敛缓慢,学习率过高会使收敛时的波动过大;
所有参数都是用同样的learning rate;
SGD容易收敛到局部最优,并且在某些情况下可能被困在鞍点。
二 动量优化法
动量优化方法引入物理学中的动量思想,加速梯度下降,有Momentum和Nesterov两种算法。当我们将一个小球从山上滚下来,没有阻力时,它的动量会越来越大,但是如果遇到了阻力,速度就会变小,动量优化法就是借鉴此思想,使得梯度方向在不变的维度上,参数更新变快,梯度有所改变时,更新参数变慢,这样就能够加快收敛并且减少动荡。
【吴恩达里边的讲解】
三 自使用学习率优化算法
又称均方根传递。和动量一样减小震荡,能利用大学习率,从而加速。
关于Adam的就看不懂了
Adam 本质实际上是Momentum和RMSprop结合在了一起
吴恩达讲解视频https://www.bilibili.com/video/BV1i741147Q5?p=20
要理解这些算法 要用【指数加权平均】
【理解指数加权平均】
【偏差修正】
当t增大无影响,初期修正了过小的缺点
【动量梯度下降法】