梯度
在二元函数的情形,设函数
f(x,y)
在平面区域
D
内具有一阶连续偏导数,则对于每一点
这向量称为函数 f(x,y) 在点 P0(x0,y0) 的梯度,记为 ∇f(x0,y0) 或 grad(x0,y0) ,即
其中 ∇ (nabla)表示向量微分算子。
通俗的说梯度就是该点的沿函数的增长最快的方向的那个向量,模值等于最大的方向导数。
范例
函数 φ=2x+3y2−sin(z) 的梯度为:
∇φ=(∂φ∂x,∂φ∂y,∂φ∂z)=(2,6y,−cos(z)) 。
梯度下降
梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。
描述
梯度下降方法基于以下的观察:如果实值函数 F(x) 在点 a 处可微且有定义,那么函数 F(x) 在 a 点沿着梯度相反的方向 −∇F(a) 下降最快。
因而,如果
对于 γ>0 为一个够小数值时成立,那么 F(a)≥F(b) 。
考虑到这一点,我们可以从函数 F 的局部极小值的初始估计 x0 出发,并考虑如下序列 x0,x1,x2,… 使得
因此可得到
如果顺利的话序列 (xn) 收敛到期望的极值。注意每次迭代步长 γ 可以改变。
图片示例了这一过程,这里假设 F 定义在平面上,并且函数图像是一个碗形。蓝色的曲线是等高线(水平集),即函数 F 为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数 F 值最小的点。
应用
对给定数据集拟合多元线性回归方程
如果变量只有一个,我们高中都学过最小二乘法直接求出回归线的参数(斜率、截距),下面我们用梯度下降求多元线性回归方程的参数。
如果我们已经有了一个n个变量的m个元素的数据集 {(Xi(x1,x2,...,xn),yi)|i=1,2,...,m} ,设待求参数向量为 A(a0,a1,a2,...,an) ,我们设一个函数
为了方便我们取
Xi(x0=1,x1,x2,...,xn)
那么
我们定义损失函数,(为什么这样定义,因为该函数具有反应离理想目标误差程度的特性,并且方便计算)
现在我们需要求 J(A) 取最小值时 A 的取值
我们随机取一个点
对于任意 k=0,1,...,n
其中xk是Xi(x0,x1,...,xn)中的xk
我们取一个适当的步长 γ ,对参数 A0 进行修正,即每次令
重复以上过程,直至 J(A) 不再变小我们就找到了待求的 A(a0,a1,a2,...,an)
如有谬误 恳请指正
By chutpzah
参考 :
1. 维基 梯度下降法
2. 梯度下降(Gradient Descent)小结
3. 同济大学《高等数学》