梯度下降法线性回归模拟
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−αn▽F(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=1∑n(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
∂w1∂S=n2∑i=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))
以上是关于梯度下降法线性回归模拟的主要内容,如果未能解决你的问题,请参考以下文章