首页系统梯度下降法 梯度下降法的基本思想

梯度下降法 梯度下降法的基本思想

编程之家2024-05-29117次浏览

一、梯度下降法的步长到底怎么确定

梯度下降法的搜索方向顾名思义就是梯度方向,也就是当前点所在地形最陡峭的下降方向(你这个图里面只有左右两个方向)。步长的选择要看函数的性质,一般可导函数,只要步长足够小,则保证每次函数值都不会增加,此外:

梯度下降法 梯度下降法的基本思想

1.如果函数可导,且函数的梯度满足李普希兹连续(常数为L),若以小于的步长迭代,则能保证每次迭代的函数值都不增,则保证最终会收敛到梯度为0的点。也可以采用Linesearch确定步长,Linesearch的本质目的其实也是为了保证函数值下降(或称作不增)。

2.2.如果函数还是凸的,则最终会走到最优点。

二、随机梯度下降算法是什么

随机梯度下降算法是基于梯度下降法中最原始的方法——批量梯度下降法(BGD)的缺点而演变出的改良。

在训练过程中常见的损失函数为:

批量梯度下降法(BatchGradientDescent,简称BGD)的方法是先求偏导,再用每个θ各自的梯度负方向依次更新每个θ:

它的效果如图:

梯度下降法 梯度下降法的基本思想

可以看出是一种思路简单、易于实现的算法,并且在较少迭代次数的情况下就可以得到全局最优解,但是每次迭代都要调用全部数据,如果样本数量(上面式子中的m)较大,将会导致计算极其慢。基于这一缺点,随机梯度下降法(StochasticGradientDescent,简称SGD)被提出。它不再每次迭代都用上所有样本,而是每次迭代仅仅对一个样本进行更新,从而达到对于数量庞大的样本只需使用其中的相对少量就把θ最优化的目的。它的方法是在改写损失函数之后,θ的更新是基于每个样本对theta求偏导后所得梯度:

相比BGD算法SGD算法速度大幅提升,几十万条样本基本只需要用上万或者只要上千条样本就饿可以得到结果。但是SGD伴随更多噪音、最优化方向准确度下降的问题。效果如下图,可以看出相比于BGD,SGD迭代次数显著增加,并且并不是每一次迭代都是向着最优化方向。同时,SGD算法在实现难度上不如BGD算法简单。

虽然理论上BGD比SGD得到全局最优,但是在生产场景中,并不是每一个最优化问题中的目标函数都是单峰的,反而是sgd更容易跳出局部最优。

三、梯度下降法原理和步骤

原理

算法目标逐渐逼近损失函数loss的极小值,简单抽象为求函数的极小值。

2.

梯度下降法 梯度下降法的基本思想

算法描述每次取一个增量,使得,每次向函数值更小的地方前进一小步,多次迭代就能做到逐渐逼近函数的极小值。

3.

算法推导展开得到公式。其中H为海森矩阵,暂且不考虑。为使成立,只需要保证。即,当时,,如此即可保证每次更新在逐渐逼近函数的极小值。其中为学习率是一个较小的正数。每次更新时做操作,求得的最小值。

4.

注意上述过程是在逼近极小值,不一定是函数的最小值。是一种下降趋势,整个循环步骤中函数值在下降,并非每个小步骤得到的函数值都比前一次要小。

installfromsdcardcomplete(安卓手机如何通过installfromsdcardcomplete进行系统升级)gtp1000(三星gtp1000)