赞
踩
梯度下降,是一种寻找目标函数局部极小值的方法(甚至全局,这取决于目标函数是否为凸函数)。在机器学习中所谓的目标函数,就是我们所求得的损失函数J(w)。
Repeat iteration{
W := W - learning_rate * dJ(W)/dW
}
通过梯度下降的方法,对目标函数中的参数w进行不断迭代更换,是的Loss值趋近于极小值,从而达到拟合目标值,优化模型的目的。
通常,我们会不断调整学习率α,从而调整梯度更新的步长大小。
α | 优缺点 |
---|---|
小;优点 | 更小的学习率能让模型的精度更高,收敛更加平稳 |
小;缺点 | 精度提高的同时会带来过拟合的风险;除此之外,如果学习的轮数不够,有可能会陷入局部最优点 |
大 ;优点 | 更大的函数能让目标函数更快的收敛,不易过拟合 |
大 ;缺点 | 收敛过程会震荡,导致错过目标函数最优点 |
上式中dJ(W)/dW是参数w的梯度公式,如果w是一个参数矩阵(权重),那么dJ(W)/dW就是每个参数的梯度矩阵。
为什么求目标函数极小值的时候是减小梯度,而不是增加梯度呢?
答:假设我们的损失函数为J(w) = 0.1(w-5)^2,其函数走向如下图所示:
当W=10时,损失函数的值可求得为:
J
(
w
)
=
0.1
∗
(
10
−
5
)
2
=
2.5
J(w) = 0.1*(10-5)^2 = 2.5
J(w)=0.1∗(10−5)2=2.5
根据图中显示,此时还未到达最低点,我们就需要对w进行迭代(。当w=10时,由梯度公式可求得:
d
J
(
w
)
d
w
=
0.1
∗
2
∗
(
10
−
5
)
=
1
\frac{dJ(w)}{dw} = 0.1*2*(10-5) = 1
dwdJ(w)=0.1∗2∗(10−5)=1
将梯度公式求得的值代入迭代公式中,即(此处学习率为0.1)
w
=
w
−
α
∗
d
J
(
w
)
d
w
=
10
−
0.1
∗
1
=
9.9
w = w - α *\frac{dJ(w)}{dw} = 10 - 0.1*1 = 9.9
w=w−α∗dwdJ(w)=10−0.1∗1=9.9
此时的目标函数值为
J
(
w
)
=
0.1
∗
(
9.9
−
5
)
2
=
2.401
J(w) = 0.1*(9.9-5)^2 = 2.401
J(w)=0.1∗(9.9−5)2=2.401
显然,初始参数w减去梯度后,目标函数值变得更小了。如此多轮迭代,w会不断减小,目标函数J(w)也会趋近于极小值。但是需要注意的是,有时会陷入局部最优点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。