梯度下降算步长选择
1. 梯度下降更新规则
梯度下降的基本更新公式:
θnew = θold − η∇L(θold)
其中: - θ:模型参数 - L(θ):损失函数 - ∇L(θold):梯度(一阶导数) - η:学习率(步长)
为简化记号,令 g = ∇L(θold),则更新规则变为:
θnew = θold − ηg
2. 用中值定理表示损失函数的变化
多变量中值定理:存在 ξ 位于 θold 与 θnew 之间,使得:
L(θnew) = L(θold) + ∇L(ξ)⊤ ⋅ (θnew − θold)
3. 代入梯度下降的更新量
将 θnew − θold = − ηg 代入上式:
4. Lipschitz 连续性假设
假设:存在常数 L > 0,使得对任意 x, y 有:
∥∇L(x) − ∇L(y)∥ ≤ L∥x − y∥
这个条件等价于 Hessian 矩阵的最大特征值 ≤ L。
5. Hessian 矩阵简介
Hessian 矩阵 H(θ) 是损失函数对参数向量的二阶偏导数矩阵:
Lipschitz 常数 L 控制 Hessian 的最大曲率:对任意向量 v,有 v⊤H(θ)v ≤ L∥v∥2。
6. 利用二阶泰勒展开推导下降不等式
6.1 二阶泰勒展开(拉格朗日余项)
在 θold 处对 L 展开到二阶,精确等式为:
其中 ξ 位于 θold 与 θnew 之间。
6.2 应用 Lipschitz 条件控制二次型
由 Lipschitz 条件,g⊤H(ξ)g ≤ L∥g∥2,代入得:
这就是最终的不等式。
7. 步长上限推导
为了保证损失函数一定下降,需要
结论:步长必须小于 2/L。
8. 最优步长推导
我们希望最大化每一步的下降量,即最大化系数
令导数为零:
最大值:
结论:最优步长为 η = 1/L,此时每一步损失至少下降
9. 总结表
| 概念 | 公式 | 含义 |
|---|---|---|
| Lipschitz 常数 | L | 梯度的最大变化速率 |
| 步长上限 | η < 2/L | 超过此值可能发散 |
| 最优步长 | η = 1/L | 理论最快收敛步长 |
| 最小下降量 | 每一步至少下降这么多 |
实际建议: - 已知 L 则直接用 η = 1/L - 未知 L 则从小学习率开始尝试(0.001, 0.01, 0.1 等) - 自适应学习率方法(Adam、RMSprop)可自动调整