xt+1:=xtηf(xt)x^{t+1} := x^t - \eta \nabla f(x^t)

为了让 f(x)f(x) 的值越来越小,需要不断迭代优化 xx 的值,xx 优化是方向是 ff 的梯度的反方向,快慢受到学习率 η\eta 的影响。

梯度下降的本质

梯度下降的本质是,将目标函数 f(x)f(x) 近似为其在某点 xtx_{t} 处的一阶泰勒展开,记为 fˉ(x;xt)\bar{f}(x;x_{t})

f(x)fˉ(x;xt)=f(xt)+f(xt)(xxt)f(x) \approx \bar{f}(x;x_{t})=f(x_{t})+f^\prime(x^t)(x-x^t)

注意,只有在 xtxx_{t}\to x 时误差 f(x)fˉ(x;xt)f(x)-\bar{f}(x;x_{t}) 才趋近于 0,所以,我们要在 xtx_{t} 附近找一点 xt+1=xt+Δx_{t+1}=x_{t}+\Delta ,代入 fˉ\bar{f} 可得:

fˉ(xt+Δ;xt)=f(xt)f(xt)Δ\bar{f}(x_{t}+\Delta ;x_{t})=f(x_{t})-f^\prime(x_{t}) \cdot \Delta

我们希望,f(xt+1)<f(xt)f(x_{t+1})<f(x_{t}) ,也就是 fˉ(xt+1;xt)<f(xt)\bar{f}(x_{t+1};x_{t})<f(x_{t}) ,观察上式可以发现,只要令 f(xt)Δ<0f^\prime(x_{t})\cdot \Delta <0 就能保证 fˉ(xt+1;xt)<f(xt)\bar{f}(x_{t+1};x_{t})<f(x_{t})

其中 Δ\Delta 是可以由我们自由定义的,不妨令 f(xt)Δ=(f(xt))2f^\prime(x_{t})\cdot \Delta=-(f^\prime(x_{t}))^2 ,此时 Δ=f(xt)\Delta=-f^\prime(x_{t}),又因为误差,我们不希望 Δ\Delta 过大,可以再加入学习率 η\eta 来限制,此时

x_{t+1}=x_{t}+\Delta=x_{t}-\eta f^\prime(x_{t})$$此时再将 $f(x)$ 在 $x_{t+1}$ 处近似展开,继续求得 $x_{t+2}$ 的值,不断迭代更新。