跳转至

优化算法

一维梯度下降

稍微偏数学一点的视角

\(f(x + \epsilon) = f(x) + \epsilon f'(x) + O(\epsilon ^2)\)

\(f(x - \eta f'(x)) = f(x) - \eta f'^2(x) + O(\eta^2f'^2(x))\)

\(f(x - \eta f'(x)) \lessapprox f(x)\)

\(\eta\)就是学习率

自适应方法

牛顿法

Hessian矩阵

\(H_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}\)

  1. 对角线元素:\(H_{ii} = \frac{\partial^2 f}{\partial x_i^2}\)

  2. 正数:向上凹(碗形),往两边走损失都会变大 → 这里是稳定低谷

  3. 负数 < 0:向下凸(山峰),往两边走损失都会变小 → 这里是山顶
  4. 接近 0:很平,梯度下降走不动(神经网络里的平坦极小值)

某个权重的对角线值越大,说明这个参数稍微动一点,损失变化特别剧烈,学习率要调小。

  1. 非对角线元素:\(H_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}\)

代表:改参数 i,参数 j 对损失的影响会怎么变

  • 正数:两个参数正相关,一起变大 / 变小,损失一起涨 / 跌
  • 负数:两个参数负相关,一个涨一个跌,损失抵消
  • 接近 0:两个参数基本独立,互不影响

非对角线越大 → 参数耦合越严重 → 普通梯度下降震荡、难收敛。