梯度下降法线性回归模拟

Posted 迟钝皮纳德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了梯度下降法线性回归模拟相关的知识,希望对你有一定的参考价值。

梯度下降法原理

梯度下降法(Gradient descent)是一个一阶最优化算法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法
梯度下降方法基于以下的观察:如果实值函数 F ( x ⃗ ) F(\\vecx ) F(x )在点处可微且有定义,其中 x ⃗ = ( x 1 , x 2 , . . . , x n ) \\vecx=(x_1,x_2,...,x_n ) x =(x1,x2,...,xn)为自变量构成的向量,那么函数 F ( x ) F(x) F(x)在点 a ⃗ \\veca a 沿着梯度相反的方向下降最快。
因而,如果
b ⃗ = a ⃗ − α ▽ F ( a ⃗ ) \\vecb=\\veca -\\alpha \\bigtriangledown F(\\veca ) b =a αF(a )
对于为一个够小数值 α > 0 \\alpha>0 α>0时成立,那么 F ( a ⃗ ) > F ( b ⃗ ) F(\\veca )>F(\\vecb ) F(a )>F(b )
考虑到这一点,我们可以从函数F的局部极小值的初始估计出发,并考虑如下序列使得
x n + 1 ⃗ = x n ⃗ − α n ▽ F ( x n ⃗ ) \\vecx_n+1 =\\vecx_n -\\alpha_n \\bigtriangledown F(\\vecx_n ) xn+1 =xn αnF(xn )
因此可得到
F ( x 0 ⃗ ) ≥ F ( x 1 ⃗ ) ≥ F ( x 2 ⃗ ) ≥ . . . F(\\vecx_0 )\\ge F(\\vecx_1 )\\ge F(\\vecx_2 )\\ge... F(x0 )F(x1 )F(x2 )...

如果顺利的话序列 x n ⃗ \\vecx_n xn 收敛到期望的极值。注意每次迭代步长可以改变。

对于给定点集 ( x i , y i ) (x_i,y_i ) (xi,yi)我们希望找到一条拟合直线(或其他曲线)来描述之。例如采用回归直线 y ^ = w 1 x + w 0 \\haty=w_1 x+w_0 y^=w1x+w0来描述。
该方法的由来是保证样本点到回归直线的度量和最小。度量可以是坐标差,欧氏距离等等,这些度量的极值点是一样的。但是对于非线性的处理可能无法直接得到度量极值点的解析解,因此需要梯度下降的数值解法来求解
梯度下降法迭代过程:定义损失函数(用方差来代替)
S ( w 1 , w 0 ) = 1 n ∑ i = 1 n ( y i − ( w 1 x i + w 0 ) ) 2 S (w_1,w_0) =\\frac1n \\sum_i=1^n (y_i -(w_1x_i +w_0))^2 S(w1,w0)=n1i=1n(yi(w1xi+w0))2
我们要求 S ( w 1 , w 0 ) S (w_1,w_0) S(w1,w0)的最小值。

∂ S ∂ w 1 = 2 n ∑ i = 1 n ( y i − ( w 1 x i + w 0 ) ) x i \\frac\\partial S\\partial w_1 =\\frac2n \\sum_i=1^n (y_i -(w_1x_i +w_0))x_i w1S=n2i=1n(yi(w1xi+w0))xi
∂ S ∂ w 0 = 2 n ∑ i = 1 n ( y i − ( w 1 x i + w 0 ) ) \\frac\\partial S\\partial w_0 =\\frac2n \\sum_i=1^n (y_i -(w_1x_i +w_0)) 以上是关于梯度下降法线性回归模拟的主要内容,如果未能解决你的问题,请参考以下文章

机器学习入门之单变量线性回归(上)——梯度下降法

1回归 一元线性回归 代价函数 梯度下降法

线性回归-API

梯度下降法求解多元线性回归

机器学习入门系列一(关键词:单变量线性回归,梯度下降法)

关于梯度下降 - 线性回归的