3.1 梯度下降法学习——梯度下降法的原理及分析

梯度下降法:

不是一种机器学习的算法,而是一种基于搜索的最优化方法,通过当前点的梯度方向找到新的迭代点,并从当前点移动到新的迭代点继续寻找新的迭代点直到找到最优解,作用是在最小化目标函数。如果是最大化效用函数则使用的是梯度上升法。训练模型的本质其实就是在最小化一个损失函数,而有的模型求不到最优的数学解就需要使用梯度下降法来基于搜索找到最优解。

(一维平面中)纵坐标为损失函数,横坐标为参数变化。最小化损失函数就是寻找合适的参数找到损失函数的最小值。

3.1 梯度下降法学习——梯度下降法的原理及分析

图中某个点的切线的斜率就是该点的导数,即参数单位变化时,损失函数J相应的变化了多少,导数也代表了纵坐标增大的方向如图当初始点在左边时,导数为负值,x轴的负方向为J增大的方向,要找最小值所以往x轴正方向走,导数相应乘以一个步长结果为负再取负,即为参数向右移动,如上图所示

3.1 梯度下降法学习——梯度下降法的原理及分析

如图当初始点在右边时,导数为正值,x轴的负方向为J增大的方向,要找最小值所以往x轴负方向走,导数乘以一个步长结果为正再取负,即参数向左移动,如上图。以寻找最小值

在一维平面中是导数,在多维平面中则为梯度,如图

3.1 梯度下降法学习——梯度下降法的原理及分析

步长即为学习率,它的取值影响获得最优解的速度,太小时,收敛的速度比较慢,较大时,会出现震荡的闲暇,在最优解附近徘徊。所以它的取值对于梯度下降法的效果尤为重要,它是梯度下降法的一个超参数。

太小:

3.1 梯度下降法学习——梯度下降法的原理及分析

太大:

3.1 梯度下降法学习——梯度下降法的原理及分析

#很多情况并不是只有一个极值点,可能有局部最优解,如图

3.1 梯度下降法学习——梯度下降法的原理及分析

解决方法:

多次运行,随机化初始点:

初始点也是一个超参数,所以需要搜索最优的参数值