什么是鞍点:
鞍点意味着某一些方向梯度下降,而另一些方向梯度上升;
常用的优化方法
深度学习中常用的优化方法有一阶(求一阶导数如随机梯度下降(SGD)及SGD的变种)和二阶(求二阶导数如牛顿法)两种。
1) 梯度下降
梯度下降是用来做什么的?
在机器学习算法中,有时候需要对原始的模型构建损失函数,然后通过优化算法对损失函数进行优化,以便寻找到最优的参数,使得损失函数的值最小。而在求解机器学习参数的优化算法中,使用较多的就是基于梯度下降的优化算法(Gradient Descent, GD)。
优缺点
优点:效率。在梯度下降法的求解过程中,只需求解损失函数的一阶导数,计算的代价比较小,可以在很多大规模数据集上应用
缺点:求解的是局部最优值,即由于方向选择的问题,得到的结果不一定是全局最优
步长选择,过小使得函数收敛速度慢,过大又容易找不到最优解。
步长选择是由训练的时候的学习率决定的,学习率决定了小批量(mini-batch)中权重的梯度方向上移动的步长。该参数能够直接影响的模型收敛到局部最小值(也就是达到最好的精度)的速度。如果学习率较小,训练过程会更加精细结果更可靠但是优化的耗费的时间较长,因为逼近损失函数最小值的每一个步长都很小,如果学习率太高,训练可能发散,不会收敛,权重的改变会非常大,优化会在最小值附近震荡;
总之学习率太小会导致陷入局部最优,学习率过大,优化会在最小值附近震荡
2)梯度下降的变形形式
根据处理的训练数据的不同,主要有以下三种形式:
批量梯度下降:
使用所有的训练样本计算梯度,可以求得全局最优解,但是计算非常的慢,硬件要求比较高;
随机梯度下降:
每次随机抽取一个样本进行梯度计算,问题是梯度计算不稳定,容易震荡。整体上还是趋近于全局最优解,所以最终的结果往往在最优解附近;
小批量梯度下降法MBGD(mini-batch Gradient Descent)
把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性
对详细的讲解和图示可以参考博文:
详解随机梯度下降法(Stochastic Gradient Descent,SGD)_YGQ_qq_1435471912-CSDN博客_随机梯度下降
https://blog.csdn.net/u012151283/article/details/78154917
有一篇博文将所有优化方法做了总结,可以参考该博文: