梯度下降算法在
机器学习中如何工作?
梯度下降是业界最常用的机器学习算法之一。然而,它使许多新来者感到困惑。
我明白了!如果您刚开始,梯度提升背后的数学并不容易。我的目的是帮助您在本文中获得关于梯度下降的直觉。
机器学习库C ++
我们将快速了解成本函数的作用,解释梯度下降,如何选择学习参数以及梯度下降中的过冲效应。让我们开始!
什么是成本函数?
它是一项针对任何给定数据衡量模型性能的功能。成本函数可量化预测值和期望值之间的误差,并以单个实数的形式呈现。
在对初始参数进行假设之后,我们计算出Cost函数。为了降低成本函数,我们通过对给定数据使用梯度下降算法来修改参数。这是它的数学表示形式:
资料来源:Coursera
什么是梯度下降?
百万美元的问题!
假设您正在玩的游戏中,玩家在山顶,然后要求他们到达山顶。另外,它们被蒙住了眼睛。那么,您认为哪种方法可以使您到达湖泊呢?
在继续阅读之前,请花点时间考虑一下。
最好的方法是观察地面并找到土地下降的地方。从该位置开始,沿下降方向迈出一步,重复此过程,直到到达最低点。
在丘陵景观中寻找最低点。(来源:Fisseha Berhane)
梯度下降是一种迭代优化算法,用于查找函数的局部最小值。
要使用梯度下降找到函数的局部最小值,我们必须采取与当前点函数的梯度负值(远离梯度)成比例的步骤。如果我们采取与梯度正值成比例的步骤(朝梯度移动),我们将逼近函数的局部最大值,该过程称为“梯度上升”。
梯度下降最初是由CAUCHY在1847年提出的。也称为最陡下降。
资料来源:千里眼
梯度下降算法的目标是最小化给定函数(例如成本函数)。为了实现此目标,它反复执行两个步骤:
计算梯度(斜率),该函数在该点的一阶导数
在与渐变相反的方向上执行一个步骤(移动),从当前点开始,将相反的坡度方向从当前点开始增加Alpha倍于该点处的渐变
资料来源:Coursera
Alpha称为学习率–优化过程中的调整参数。它决定了步骤的长度。
绘制梯度下降算法
当我们有一个参数(theta)时,我们可以在y轴上绘制因变量成本,在x轴上绘制theta。如果有两个参数,我们可以进行3-D图绘制,其中一个轴为成本,而另两个轴为两个参数(θ)。
沿z轴的成本以及沿x轴和y轴的参数(theta)(来源:Research Gate)
也可以使用“轮廓”将其可视化。这显示了二维的3-D图,其中沿两个轴的参数均以轮廓为响应。响应的值远离中心增加,并且与环一起具有相同的值。响应与点到中心(沿方向)的距离成正比。
使用等高线图进行梯度下降。(来源:Coursera)
Alpha –学习率
我们已经有了前进的方向,现在我们必须确定必须采取的步骤的大小。
*必须仔细选择,以得出局部最小值。
如果学习率太高,我们可能会越过最小值并不断跳动,而没有达到最小值
如果学习率太小,则训练可能会太长
资料来源:Coursera
a)学习率是最佳的,模型收敛到最小
b)学习率太小,需要更多时间,但收敛到最低限度
c)学习率高于最佳值,虽然过冲但会收敛(1 / C <η<2 / C)
d)学习率非常高,它过冲和发散,偏离最小值,学习成绩下降
资料来源:researchgate
注意:随着朝向局部最小值的方向梯度减小,步长减小。因此,学习率(alpha)可以在优化过程中保持恒定,而无需迭代地进行更改。
局部极小值
成本函数可能包含许多最低点。梯度可以落在最小值的任何一个上,这取决于初始点(即初始参数θ)和学习率。因此,优化可以收敛到具有不同起点和学习率的不同点。
成本函数在不同起点上的收敛(来源:Gfycat)
题库