1何为梯度
在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数
f
(
x
,
y
)
f(x,y)
f(x,y), 分别对x,y求偏导数,求得的梯度向量就是
(
∂
f
/
∂
x
,
∂
f
/
∂
y
)
T
(∂f/∂x, ∂f/∂y)^T
(∂f/∂x,∂f/∂y)T,简称
g
r
a
d
f
(
x
,
y
)
grad f(x,y)
gradf(x,y)或者
▽
f
(
x
,
y
)
▽f(x,y)
▽f(x,y)。对于在点(x0,y0)的具体梯度向量就是
(
∂
f
/
∂
x
0
,
∂
f
/
∂
y
0
)
T
(∂f/∂x0, ∂f/∂y0)^T
(∂f/∂x0,∂f/∂y0)T.或者
▽
f
(
x
0
,
y
0
)
▽f(x0,y0)
▽f(x0,y0),如果是3个参数的向量梯度,就是
(
∂
f
/
∂
x
,
∂
f
/
∂
y
,
∂
f
/
∂
z
)
T
(∂f/∂x, ∂f/∂y,∂f/∂z)^T
(∂f/∂x,∂f/∂y,∂f/∂z)T,以此类推。
2.梯度下降的相关概念
-
步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度。
-
特征(feature):指的是样本中输入部分,比如2个单特征的样本( x 0 , y 0 x_0,y_0 x0,y0),( x 1 , y 1 x_1,y_1 x1,y1)( x 0 , y 0 x_0,y_0 x0,y0),( x 1 , y 1 x_1,y_1 x1,y1)则第一个样本特征为 x 0 x_0 x0,第一个样本输出为 y 0 y_0 y0。
-
假设函数(hypothesis function):在监督学习中,为了拟合输入样本,而使用的假设函数,记为hθ(x)hθ(x)。比如对于单个特征的m个样本( x i , y i x_i,y_i xi,yi)( i = 1 , 2 , . . . m i=1,2,...m i=1,2,...m)( x i , y i x_i,y_i xi,yi) ( i = 1 , 2 , . . . m ) (i=1,2,...m) (i=1,2,...m),可以采用拟合函数如下: h θ ( x ) = θ 0 + θ 1 x h_θ(x)=θ_0+θ_1x hθ(x)=θ0+θ1x
-
损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。比如对于m个样本( x i , y i x_i,y_i xi,yi) ( i = 1 , 2 , . . . m ) (i=1,2,...m) (i=1,2,...m)( x i , y i x_i,y_i xi,yi)( i = 1 , 2 , . . . m i=1,2,...m i=1,2,...m),采用线性回归,损失函数为: J ( θ 0 , θ 1 ) = ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(θ_0,θ_1)=\sum_{i=1}^m{(h_θ(x_i)−y_i)}^2 J(θ0,θ1)=i=1∑m(hθ(xi)−yi)2
其中 x i x_i xi表示第 i i i个样本特征, y i y_i yi表示第 i i i个样本对应的输出, h θ ( x i ) h_θ(xi) hθ(xi)为假设函数。
- 简单举例实现梯度下降( J ( w ) = w 2 + 2 w + 1 J_{(w)}=w^2+2w+1 J(w)=w2+2w+1)
def J(w):
return w**2+2*w+1
J(1)
def G(w):
return 2*w+2
G(1)
epoch = 10
alpha = 0.1
w = 1
epoch = 10
a = 0.1
w = 1
for i in range (epoch):
w = w-a*G(w)
print (w)
计算结果:
迭代次数越多就会越接近最小值