举一个简单的函数 y = x 2 y = x^2 y=x2,梯度为 g ( x ) = ∂ y ∂ x = 2 x g(x) = \frac{\partial{y}}{\partial{x}} = 2x g(x)=∂x∂y=2x。设学习率为 l r lr lr,那么
更新一次梯度后为: x 1 = x 0 − l r ∗ g ( x 0 ) = x 0 − l r ∗ 2 x 0 = ( 1 − 2 ∗ l r ) x 0 x_1 = x_0 - lr * g(x_0) = x_0 - lr * 2x_0 = (1 - 2 * lr)x_0 x1=x0−lr∗g(x0)=x0−lr∗2x0=(1−2∗lr)x0
更新 n 次后的梯度为 x n = ( 1 − 2 ∗ l r ) x n − 1 = ( 1 − 2 ∗ l r ) 2 x n − 2 = . . . = ( 1 − 2 ∗ l r ) n x 0 x_n = (1 - 2 * lr)x_{n-1} = (1 - 2 * lr)^2 x_{n-2} = ... = (1 - 2 * lr)^{n}x_0 xn=(1−2∗lr)xn−1=(1−2∗lr)2xn−2=...=(1−2∗lr)nx0
由上述式子可以看出,因为 1 − 2 ∗ l r < 0 1 - 2 * lr < 0 1−2∗lr<0,所以当 1 − 2 ∗ l r < − 1 1 - 2 * lr < -1 1−2∗lr<−1 即 l r > 1 lr > 1 lr>1 时,几个迭代后梯度将会出现爆炸的情况。
设 损失函数
L
L
L 在
ω
0
\omega_0
ω0 处的梯度为
g
(
ω
0
)
=
∂
L
∂
ω
0
g(\omega_0) = \frac{\partial{L}}{\partial{\omega_0}}
g(ω0)=∂ω0∂L
更新后
ω
1
=
ω
0
−
l
∗
g
(
ω
0
)
\omega_1=\omega_0 - l*g(\omega_0)
ω1=ω0−l∗g(ω0)
继续上述过程,可以得到
ω
2
=
ω
1
−
l
∗
g
(
ω
1
)
=
ω
0
−
l
∗
g
(
ω
0
)
−
l
∗
g
(
ω
1
)
=
ω
0
−
l
∗
g
(
ω
0
)
−
l
∗
g
(
ω
1
)
=
ω
0
−
l
∑
i
=
0
1
g
(
ω
i
)
\begin{aligned} \omega_2 &= \omega_1 - l * g(\omega_1) \\ &=\omega_0 - l*g(\omega_0)-l*g(\omega_1) \\&= \omega_0 - l*g(\omega_0)-l*g(\omega_1) \\&=\omega_0 -l\sum_{i=0}^{1} g(\omega_i) \end{aligned}
ω2=ω1−l∗g(ω1)=ω0−l∗g(ω0)−l∗g(ω1)=ω0−l∗g(ω0)−l∗g(ω1)=ω0−li=0∑1g(ωi)
所以
ω
n
=
ω
0
−
l
∑
i
=
0
n
−
1
g
(
ω
i
)
\omega_n = \omega_0 -l\sum_{i=0}^{n-1} g(\omega_i)
ωn=ω0−li=0∑n−1g(ωi)
第 n n n 次的权重值 ω n \omega_n ωn,由权重初始值 ω 0 \omega_0 ω0 和前 n − 1 n-1 n−1 次的梯度之和确定。当梯度稳定变小时,表明损失函数接近最优值,越接近最优值时,梯度 g ( ω i ) g(\omega_i) g(ωi) 趋近于 0 0 0,此时 ω n \omega_n ωn 将几乎不再变化,函数收敛。
如上图所示,梯度 grad 由 损失函数 Loss 确定,损失函数越大时,梯度也越大。待优化参数 ω \omega ω 由梯度 grad 和 学习率 lr 共同确定,参数更新后,损失函数也将缩小,从而进一步缩小梯度,直到损失函数最小,梯度为 0,此时得到最优解。如果参数 ω \omega ω 更新后,损失函数不但没有缩小,反而增大,此时将进一步增大梯度,最终造成梯度爆炸。