梯度下降基本原理、优势、局限、改善(SGD和BGD)笔记

对于大多数机器学习模型来说,损失函数(不是凸函数)不能直接用最小二乘法求解,而常采用梯度下降算法求解最小值。

根据梯度下降的计算公式:|𝑤𝑛−𝑤(𝑛−1)|=|𝑙𝑟⋅∇𝑤𝑓(𝑤(𝑛−1))| 其中lr(学习率)是个恒定的数值,每个点的梯度值不一样,越靠近最小值点梯度值越小,并不是一个等步长的移动过程,而是移动距离衰减,因此无论增加多少次迭代,主要参数不会发散,最终参数值点不太可能跨过最小点。学习率取值是影响结果是否收敛,以及能否在有限次迭代次数中高效收敛的关键参数,学习率过大会导致结果发散,而学习率过小则又会导致模型无法收敛至最优结果。

梯度下降算法的优点

  1. 梯度下降遵循的迭代解比大规模数值矩阵更有效。
  2. 对于一些最小二乘法无法计算出全域唯一最优解的情况,梯度下降仍然可以有效地搜索到最小点(或解空间)。

梯度下降算法限制

  1. 局部最小值点(local minimun)陷阱:指的是该点左右两端取值都大于该点,但是该点不是全域最小值点。例如函数𝑓(𝑥)=𝑥⋅𝑐𝑜𝑠(𝜋𝑥):梯度下降基本原理、优势、局限、改善(SGD和BGD)笔记

由于梯度下降的距离衰减理论,由于局部极小点的梯度也为零,如果参数点落入局部极小点,就不可能越过局部极小点到达全局极小点。

2.鞍点(saddle point)陷阱¶:鞍点是指那些不是极值点但梯度为0的点。例如函数 𝑓(𝑥)=𝑥3

梯度下降基本原理、优势、局限、改善(SGD和BGD)笔记

即使经过多次迭代,梯度也无法越过鞍座达到较小的值。

所谓极值,指的是那些连续函数上导数为0、并且所有两边单调性相反的点,极值包括局部最小值、最小值点、局部最大值和最大值点四类。而鞍点和极值点的区别在于导数为0单左右两边单调性相同。

梯度下降算法的本质及改进方法

根据局部最小值和鞍点的讨论,我们不难发现梯度下降的本质作用其实是让参数点移动到梯度为0的点,当损失函数是严格意义的凸函数时,梯度为0的点就是全域最小值点,但如果损失函数不是凸函数,那么梯度为0的点就有可能是局部最小值点或者鞍点。此时受到局部最小值点或者鞍点梯度为0的影响,梯度下降无法从该点移出。尽管大多数线性模型的损失函数都是凸函数,但很多复杂机器学习模型所构建的损失函数都不一定是严格凸函数,要避免局部最小值点或者鞍点陷阱,最为简单有效的方式是调整每次带入训练的样本数量,通过局部规律规律的不一致性来规避“非全域最小值但梯度为0”的陷阱,这就是所谓的随机梯度下降和小批量梯度下降 。

1.数据规律可以用损失函数表示,损失函数形态不同代表其背后构造损失函数的数据规律不同;
2.一般来说,对于一个数据集来说,局部规律之间和局部规律与整体规律之间就存在一定的差异,但也存在一定的统一性;
3.利用局部规律之间的“对立统一”的特性,我们就能够在参数移动过程中改变参数移动方向,从而避免局部最小值或者鞍点陷阱。

  • 随机梯度下降(Stochastic Gradient Descent)

定义:将梯度下降从“每次带入所有数据进行计算”改为“每次带入一个数据进行计算”

特性:迭代结果震荡特性,不同的损失函数“要求”不同的迭代方向,不同数据之间规律的差异性,最后参数陷入了“进退两难”的境地,由于这种结果震荡,当整体损失函数存在局部最小值,但某条数据在该点的梯度不为0,参数就会跨过局部最小值点。但方向不一致的代价是容易会造成整体损失函数在收敛过程不断波动,最终无法收敛到一个稳定的点,要改进这一问题则需要借助额外优化手段。

梯度下降基本原理、优势、局限、改善(SGD和BGD)笔记

  • 小批量梯度下降(Mini-batch Gradient Descent)

定义:所谓小批量梯度下降,其实就是对随机梯度下降过程稍作修改——每次不在是带入一条数据进行计算,而是带入batch_size条数据进行计算。随机梯度下降的计算过程还是“过于”随机了,在确保一定程度随机性的基础上增加一些算法的稳定性。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年3月16日 下午12:00
下一篇 2022年3月16日

相关推荐