在当前点 x0x_0x0 处做二阶泰勒展开:
f(x)≈f(x0)+(x−x0)Tg+12(x−x0)TH(x−x0)f(x) \approx f(x_0) + (x-x_0)^T g + \frac{1}{2}(x-x_0)^T H (x-x_0)f(x)≈f(x0)+(x−x0)Tg+21(x−x0)TH(x−x0)其中 ggg 是梯度, HHH 是 x0x_0x0 点的 Hessian 矩阵。
如果设定学习率(步长)为 ϵ\epsilonϵ, 则x=x0−ϵgx=x_0 - \epsilon gx=x0−ϵg上式变成
f(x0−ϵg)≈f(x0)+ϵgTg+12ϵ2gTHgf(x_0-\epsilon g) \approx f(x_0) + \epsilon g^T g + \frac{1}{2}\epsilon^2 g^T Hgf(x0−ϵg)≈f(x0)+ϵgTg+21ϵ2gTHg
其中有3 项:函数的原始值、函数斜率导致的预期改善、函数曲率导致的校正。

从上图可以看出,我们使用沿负梯度方向大小为 ϵ\epsilonϵ 的下降步,假设当前点梯度是1。如果不考虑函数曲率导致的校正:
- 如果二阶导数是0,代价函数将下降 ϵ\epsilonϵ。
- 如果二阶导数是负的,函数曲线向下凹陷(向上凸出),因此代价函数将下降的比 ϵ\epsilonϵ 多。
- 如果二阶导数是正的,函数曲线是向上凹陷(向下凸出),因此代价函数将下降的比 ϵ\epsilonϵ 少。
当 gTHgg^THggTHg 为零或负时,近似的泰勒级数表明增加 ϵ\epsilonϵ 将永远使 f(x)f(x)f(x) 下降。在实践中,泰勒级数不会在 ϵ\epsilonϵ 大的时候也保持准确,因此在这种情况下我们必须采取更启发式的选择。当 gTHgg^THggTHg 为正时,通过计算可得,使近似泰勒级数下降最多的最优步长为
ϵ∗=gTggTHg\epsilon^* = \frac{g^Tg}{g^THg}ϵ∗=gTHggTg
Hessian 的特征值决定了最优学习率的量级。
因为
λmin(H)≤gTHggTg≤λmax(H)\lambda_{min}(H) \leq \frac{g^THg}{g^Tg} \leq \lambda_{max}(H)λmin(H)≤gTggTHg≤λmax(H)所以
1λmax≤ϵ∗≤1λmin\frac{1}{\lambda_{max}}\leq \epsilon^* \leq \frac{1}{\lambda_{min}}λmax1≤ϵ∗≤λmin1

本文探讨了在机器学习中使用二阶泰勒展开来近似函数,并分析了学习率(步长)如何影响函数下降的速度。通过考虑函数的斜率和曲率,我们能够理解不同条件下学习率的选择策略,以及Hessian矩阵特征值如何决定最优学习率的量级。
2680

被折叠的 条评论
为什么被折叠?



