在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent) 是最常采用的方法之一,另一种常用的方法是最小二乘法。
目前正在学习这方面相关的内容,因此简单谈谈与梯度下降法相关的内容。
梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最陡下降法,但是不该与近似积分的最陡下降法(英语:Method of steepest descent)混淆。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的 反方向 的规定步长距离点进行迭代搜索。如果相反地向梯度 正方向 迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。
上述对梯度下降法的描述来自于维基百科,简单概括一下就是 选取适当的初值 x0,不断迭代更新 x的值,极小化目标函数,最终收敛;
在进行算法推导时,我们还需要注意一些概念:
步长(Learning rate)
:步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。特征(feature)
:指的是样本中输入部分,比如2个单特征的样本( (x(0),y(0)),((x(1),y(1)),则第一个样本特征为 x^(0),第一个样本输出为 y^(0)。假设函数(hypothesis function)
:在监督学习中,为了拟合输入样本,而使用的假设函数,记为 hθ(x)。比如对于单个特征的 m 个样本( (x^(i),y^(i))(i=1,2,...,m),可以采用拟合函数如下: hθ(x)=θ0+θ1x损失函数(loss function)
:为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。 比如对于 m 个样本 (xi,yi)(i=1,2,...,m),采用线性回归,损失函数为:其中 xi表示第 i个样本特征,yi 表示第 i个样本对应的输出,hθ(xi)为假设函数。
先决条件: 在线性回归的前提下,确认优化模型的假设函数和损失函数。
1、确定当前位置的损失函数的梯度,对于 θi,其梯度表达式如下:
2、用步长 α (这里指机器学习中的学习率更为合适) 乘以损失函数的梯度,得到当前位置下降的距离,即
3、确定是否所有的 θi,梯度下降的距离都小于 ε,如果小于 ε 则算法终止,当前所有的 θi(i=0,1,...n) 即为最终结果,否则进入步骤4;
4、更新所有的 θ,对于 θi,其更新表达式如下,更新完毕后继续转入步骤1;
TIP
损失函数如前面先决条件所述:
则在算法过程步骤1中对于 θi的偏导数计算如下:
由于样本中没有 x0,上式中令所有的 x0^j为1,步骤4中 θi 的表达式更新如下:
从这个例子可以看出当前点的梯度方向是由所有的样本决定的;
上述就是本篇博文的所有内容了,比较细致的介绍了梯度以及梯度下降算法相关的内容,下一篇博文 【AI】浅谈梯度下降算法(实战篇) 我们将结合代码,通过实战对梯度下降知识点进行巩固和加深印象,深入理解其中的奥义!
参考: