损失函数 Loss、梯度 grad、参数 ω 和 学习率 lr 之间的关系

举一个简单的函数 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∑1​g(ω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−1​g(ω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 ω 更新后,损失函数不但没有缩小,反而增大,此时将进一步增大梯度,最终造成梯度爆炸。