损失函数 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)=xy=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=x0lrg(x0)=x0lr2x0=(12lr)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=(12lr)xn1=(12lr)2xn2=...=(12lr)nx0

由上述式子可以看出,因为 1 − 2 ∗ l r < 0 1 - 2 * lr < 0 12lr<0,所以当 1 − 2 ∗ l r < − 1 1 - 2 * lr < -1 12lr<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)=ω0L

更新后
ω 1 = ω 0 − l ∗ g ( ω 0 ) \omega_1=\omega_0 - l*g(\omega_0) ω1=ω0lg(ω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=ω1lg(ω1)=ω0lg(ω0)lg(ω1)=ω0lg(ω0)lg(ω1)=ω0li=01g(ωi)

所以
ω n = ω 0 − l ∑ i = 0 n − 1 g ( ω i ) \omega_n = \omega_0 -l\sum_{i=0}^{n-1} g(\omega_i) ωn=ω0li=0n1g(ωi)

n n n 次的权重值 ω n \omega_n ωn,由权重初始值 ω 0 \omega_0 ω0 和前 n − 1 n-1 n1 次的梯度之和确定。当梯度稳定变小时,表明损失函数接近最优值,越接近最优值时,梯度 g ( ω i ) g(\omega_i) g(ωi) 趋近于 0 0 0,此时 ω n \omega_n ωn 将几乎不再变化,函数收敛。

损失函数 Loss、梯度 grad、参数 ω 和 学习率 lr 之间的关系_第1张图片

如上图所示,梯度 grad 由 损失函数 Loss 确定,损失函数越大时,梯度也越大。待优化参数 ω \omega ω 由梯度 grad 和 学习率 lr 共同确定,参数更新后,损失函数也将缩小,从而进一步缩小梯度,直到损失函数最小,梯度为 0,此时得到最优解。如果参数 ω \omega ω 更新后,损失函数不但没有缩小,反而增大,此时将进一步增大梯度,最终造成梯度爆炸。

你可能感兴趣的:(机器学习)