简述
梯度下降法又被称为最速下降法(Steepest descend method),其理论基础是梯度的概念。梯度与方向导数的关系为梯度的方向与取得最大方向导数值的方向一致,而梯度的模就是函数在该点的导数的最大值。
一.梯度下降的直观解释
比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是每走到一个新位置的时候,求解当前位置的梯度,然后沿着梯度的负方向(梯度是导数的高维形式,导数是增长的方向,所以梯度其实是增长的方向,那么,梯度的反方向就是增长的反方向,下降。),也是当前梯度最陡峭的方向走下一步,然后继续求解当前位置的梯度,向当前位置的负方向走下一步。这样一步一步的走下去,直到我们感觉到了山的最低端(当然也有可能不是山的最低端,而是到达了某一局部山峰的最低处。
所以梯度下降算法不一定能找到全局最优解,有可能是一个局部最优解。
二.梯度下降的相关概念
- 步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度。
2.特征(feature):指的是样本中输入部分,比如2个单特征的样本(x(0),y(0)),(x(1),y(1))(x(0),y(0)),(x(1),y(1)),则第一个样本特征为x(0)x(0),第一个样本输出为y(0)y(0)。
-
假设函数(hypothesis function):在监督学习中,为了拟合输入样本,而使用的假设函数,记为F(x)。比如对于单个特征的m个样本(x(i),y(i))(i=1,2,...m)(x(i),y(i))(i=1,2,...m),可以采用拟合函数如下: F(x)= wx + b
-
损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。比如对于m个样本(xi,yi)(i=1,2,...m)(xi,yi)(i=1,2,...m),采用线性回归,损失函数为:
J(w,b) = ∑i=1m(F(xi)−yi)2
其中xi表示第i个样本特征,yi表示第i个样本对应的输出,F(x)为假设函数。
三.梯度下降算法有代数法和向量法两种
梯度下降法的代数方法描述
1.先决条件: 确认优化模型的假设函数和损失函数。
比如对于线性回归,假设函数表示为 hθ(x1,x2,...xn)=θ0+θ1x1+...+θnxn, 其中θi(i = 0,1,2... n)为模型参数,xi(i = 0,1,2... n)为每个样本的n个特征值。这个表示可以简化,我们增加一个特征x0=1,这样
同样是线性回归,对应于上面的假设函数,损失函数为:
2.算法相关参数初始化:主要是初始化θ0,θ1...,θn,算法终止距离ε以及步长α。
3.算法过程:
1)确定当前位置的损失函数的梯度,对于θiθi,其梯度表达式如下:
2)用步长乘以损失函数的梯度,得到当前位置下降的距离,即
对应于山例子中的某一步。
3)确定是否所有的θiθi,梯度下降的距离都小于εε,如果小于εε则算法终止,当前所有的θiθi(i=0,1,...n)即为最终结果。否则进入步骤4.
4)更新所有的θθ,对于θiθi,其更新表达式如下。更新完毕后继续转入步骤1.
步骤4中θiθi的更新表达式如下:
梯度下降法的矩阵方式描述
这一部分主要讲解梯度下降法的矩阵方式表述,相对于代数法,要求有一定的矩阵分析的基础知识,尤其是矩阵求导的知识。
1.先决条件:需要确认优化模型的假设函数和损失函数。 损失函数的表达式为:
,其中Y是样本的输出向量,维度为mx1.
2.算法相关参数初始化: θ向量可以初始化为默认值,或者调优后的值。算法终止距离ε,步长α。
3.算法过程:
1)确定当前位置的损失函数的梯度,对于θθ向量,其梯度表达式如下:
2)用步长乘以损失函数的梯度,得到当前位置下降的距离,即
对应于前面登山例子中的某一步。
3)确定θθ向量里面的每个值,梯度下降的距离都小于εε,如果小于εε则算法终止,当前θθ向量即为最终结果。否则进入步骤4.
4)更新θθ向量,其更新表达式如下。更新完毕后继续转入步骤1.