64-机器学习与大模型开发数学教程-5-11 本章总结与习题

关键词 :问题建模、梯度家族、二阶与拟二阶、自适应优化、学习率调度、约束优化、KKT、逻辑回归与 SVM。
一句话带走先把问题写清楚(目标+约束)→ 选对更新方向(梯度/曲率/近端/对偶)→ 用好学习率与数值保护 → 用 KKT/残差做收敛与排错。


1. 一页纸总览

  • 问题类型(5-1)

    • 按目标/约束:凸 vs 非凸;线性/二次/非线性;等式/不等式/集合约束。
    • 实战例:权重范数限制、概率单纯形、正定约束。
  • 一阶方法(5-2, 5-3)

    • GD/SGD:简单、可扩展;SGD 对大数据很友好。
    • 最速下降:在当前度量下最陡(等价于做预条件);
    • 动量/带 Nesterov:加速、抗噪、抗鞍点。
  • 共轭梯度(5-4)

    • 解 SPD 线性系统或二次目标的高效迭代法;深度里常用作牛顿-CG的内层求解器。
  • 二阶与拟二阶(5-5)

    • 牛顿法:用 Hessian 拟合二次模型,局部二次收敛;
    • BFGS/L-BFGS:用历史曲率学习逆 Hessian,内存/计算友好。
  • 自适应优化(5-6)

    • AdaGrad → RMSProp → Adam/AdamW/AMSGrad:逐坐标预条件,AdamW 解耦权重衰减为大模型标配。
  • 学习率调度(5-7)

    • Warmup 稳前期,余弦退火 柔性收尾,OneCycle 一次升降兼顾探索与收敛。
  • 约束非线性优化(5-8)

    • 投影/近端惩罚/障碍(内点)增广拉格朗日/ADMM顺序二次规划(SQP)
  • KKT 条件(5-9)

    • 可行、对偶可行、互补松弛、驻点;凸 + Slater ⇒ 充要。
  • 典型应用(5-10)

    • 逻辑回归(交叉熵凸):L-BFGS、牛顿-CG、AdamW;
    • SVM(间隔最大化):Pegasos(原始)、SMO(对偶)、核技巧。

2. 训练闭环:从建模到收敛



建模: 目标+约束
是否有显式约束?
选择: 投影/近端 or ALM/ADMM or 内点/SQP
选择一阶/二阶/拟二阶
设优化器: SGD/动量/AdamW/L-BFGS...
设调度: warmup/余弦/OneCycle
数值保护: 裁剪/稳定化/正则
停止准则: KKT残差/验证集早停
部署与校准

说明能投影先投影 ;深非凸建议一阶 + 预条件 + 调度 ;凸精确求解可选内点/拟二阶 。停止既看训练残差 也看验证集


3. 优化器对照表(极简可抄)

方法 梯度需求 曲率需求 典型步数 单步代价 优点 注意点
SGD / 动量 可扩展、抗噪 需调度;鞍点慢
Nesterov 更快理论界 实现要对齐定义
共轭梯度(解二次) H·v 大维二次很强 SPD 假设/预条件
牛顿-CG H·v 二次收敛 非凸需修正
BFGS 超线性 O(n²) 内存
L-BFGS 低内存、稳 需强 Wolfe
AdaGrad 稀疏友好 可能"刹死"
RMSProp 非平稳稳 β₂ 需调
AdamW 工业默认 解耦衰减

大模型默认起步:AdamW + Warmup + 余弦 ;线性/凸小中规模:L-BFGS/牛顿-CG 很香。


4. 选型流程(中文)


简单集合
复杂



看问题与规模
凸?
约束复杂?
PGD/Prox + L-BFGS
内点/ALM/ADMM/SQP
深网络/非凸?
AdamW/动量 + 调度 + 裁剪
牛顿-CG 或 L-BFGS
监控KKT残差/验证集


5. 工程落地清单(Checklist)

  • 数据与特征:标准化/归一化;类别不均衡→加权/重采样。
  • 数值稳定logsumexp、softplus、梯度/参数裁剪、混合精度下的 loss scale。
  • 学习率 :范围测试找 lr_max;大 batch 用 warmup 与余弦/OneCycle。
  • 权重衰减 :AdamW 解耦;对偏置/归一化层做衰减。
  • 约束:能投影就投影(盒、ℓ2、ℓ1、单纯形、PSD);否则用 ALM/ADMM/内点。
  • 停止与排错 :监控 KKT 残差 / 训练-验证差距;不稳优先查 lr、β、裁剪与数据质量。

6. 微型"公式抽屉"

  • 动量(Nesterov 变体)
    v t + 1 = μ v t + g ( θ t − μ v t ) v_{t+1}= \mu v_t + g(\theta_t - \mu v_t) vt+1=μvt+g(θt−μvt), θ t + 1 = θ t − η v t + 1 \theta_{t+1}=\theta_t - \eta v_{t+1} θt+1=θt−ηvt+1
  • AdamW
    m t = β 1 m t − 1 + ( 1 − β 1 ) g t m_t=\beta_1 m_{t-1}+(1-\beta_1)g_t mt=β1mt−1+(1−β1)gt, v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 v_t=\beta_2 v_{t-1}+(1-\beta_2)g_t^2 vt=β2vt−1+(1−β2)gt2;
    m ^ t = m t / ( 1 − β 1 t ) \hat m_t=m_t/(1-\beta_1^t) m^t=mt/(1−β1t), v ^ t = v t / ( 1 − β 2 t ) \hat v_t=v_t/(1-\beta_2^t) v^t=vt/(1−β2t);
    先 θ ← θ − η λ θ \theta\leftarrow \theta-\eta \lambda \theta θ←θ−ηλθ(衰减),再 θ ← θ − η   m ^ t / ( v ^ t + ε ) \theta\leftarrow \theta-\eta\,\hat m_t/(\sqrt{\hat v_t}+\varepsilon) θ←θ−ηm^t/(v^t +ε)。
  • L-BFGS 两遍递推 :后向算 α i = ρ i s i ⊤ q \alpha_i=\rho_i s_i^\top q αi=ρisi⊤q,前向补回 r r r,得方向 p = − r p=-r p=−r。
  • KKT 四件套 :可行 g ≤ 0 , h = 0 g\le0,h=0 g≤0,h=0;对偶可行 λ ≥ 0 \lambda\ge0 λ≥0;互补 λ ⊙ g = 0 \lambda\odot g=0 λ⊙g=0;驻点 ∇ x L = 0 \nabla_x L=0 ∇xL=0。
  • PGD 投影:盒/球/单纯形/ℓ1 球------线性或近线性时间均可实现。

7. 习题(含提示与部分参考答案)

注:* 号题目给出参考答案/要点 ;其余给出 提示

A. 基础与直觉

  1. * (判断)逻辑回归的负对数似然是凸函数吗?为什么?
    :是。二阶导 X ⊤ W X X^\top W X X⊤WX 半正定,配 L2 正则变强凸。
  2. (选择)下列哪种情况优先考虑 AdamW?
    a) 小数据线性回归;b) 10^8 参数 Transformer;c) QP;d) 低维凸优化。
    提示:看维度与非凸性。
  3. * (推导)写出带 L2 正则的逻辑回归梯度与 Hessian。
    : ∇ w = 1 n X ⊤ ( y ^ − y ) + λ w \nabla_w=\frac1n X^\top(\hat y-y)+\lambda w ∇w=n1X⊤(y^−y)+λw, ∇ w 2 = 1 n X ⊤ W X + λ I \nabla^2_w=\frac1n X^\top W X+\lambda I ∇w2=n1X⊤WX+λI。

B. 学习率与调度

  1. (计算)设 warmup 步数 T w T_w Tw、目标 LR η max ⁡ \eta_{\max} ηmax。写出线性 warmup 的分段函数。
    提示 :前 T w T_w Tw 线性升,之后恒定/接余弦。
  2. * (应用)解释为什么 OneCycle 中动量要与 LR 反向变化。
    :LR 高阶段需更多探索(小动量避免惯性过强),LR 低阶段需稳收敛(大动量降抖动)。

C. 二阶与拟二阶

  1. (证明)牛顿方向是二次模型 m ( p ) = f + ∇ f ⊤ p + 1 2 p ⊤ H p m(p)=f+\nabla f^\top p+\frac12 p^\top H p m(p)=f+∇f⊤p+21p⊤Hp 的最优解。
    提示 :一阶条件 H p = − ∇ f Hp=-\nabla f Hp=−∇f。
  2. * (判断)BFGS 保持逆矩阵正定的关键是哪个条件?
    :曲率条件 y ⊤ s > 0 y^\top s>0 y⊤s>0(强 Wolfe 或阻尼 BFGS 保证)。
  3. (实现)给出 L-BFGS 的两遍递推伪代码。
    提示 :后向存 α \alpha α,前向用 H 0 H_0 H0 缩放再回加 s ( α − β ) s(\alpha-\beta) s(α−β)。

D. 约束与 KKT

  1. (计算)把点 z z z 投影到概率单纯形 { p ≥ 0 , ∑ p = 1 } \{p\ge0,\sum p=1\} {p≥0,∑p=1}。
    提示:排序阈值法(Duchi)。
  2. * (手算)求 min ⁡ 1 2 ∥ x ∥ 2 \min \tfrac12\|x\|^2 min21∥x∥2 s.t. a ⊤ x = b a^\top x=b a⊤x=b 的 KKT 解。
    :KaTeX parse error: Undefined control sequence: \* at position 3: x^\̲*̲= \frac{b}{\|a\...,KaTeX parse error: Undefined control sequence: \* at position 5: \nu^\̲*̲ = \frac{b}{\|a...。
  3. (判断)凸问题满足 Slater 条件 ⇒ KKT 是充要条件且强对偶成立。对/错?
    :对。

E. 应用与编程

  1. (实现)用 Pegasos 训练线性 SVM,写出更新与 L2 球投影。
    提示 :若 y w ⊤ x < 1 y w^\top x < 1 yw⊤x<1 则加梯度步并收缩;否则仅收缩;投影到 ∥ w ∥ ≤ 1 / λ \|w\|\le 1/\sqrt{\lambda} ∥w∥≤1/λ 。
  2. * (实验)在同一数据上比较固定 LR、Warmup+余弦、OneCycle 的收敛曲线(损失/准确率)。
    :通常 Warmup+余弦和 OneCycle 更快、更稳,后期更低验证损失。
  3. (诊断)训练不稳定:loss 剧烈震荡、验证不降。给出三条定位步骤。
    提示 :先降 lr 或加 warmup;看梯度范数/裁剪;检查数据/正则/归一化;打印 KKT/对偶残差(若有约束)。

F. 进阶(选做)

  1. (非凸)在 Rosenbrock 上比较 GD / Nesterov / BFGS / AdamW 的轨迹与迭代次数。
  2. (对偶)写出软间隔 SVM 的对偶问题与 KKT,说明哪类样本成为支持向量。
  3. (ALM)实现增广拉格朗日求解等式约束最小化,画原始/对偶残差收敛图。

8. 参考训练循环

python 复制代码
# 伪代码:通用训练闭环(含调度与裁剪)
θ = init()
opt = AdamW(θ, lr=lr_max, wd=wd)
sched = WarmupCosine(T_total=steps, warmup_steps=int(0.05*steps),
                     lr_max=lr_max, lr_min=lr_min)
for t in range(steps):
    x, y = next_batch()
    loss = L(f(θ, x), y) + reg(θ)           # 稳定实现: logsumexp/softplus
    g = grad(loss, θ)
    g = clip_by_global_norm(g, 1.0)         # 梯度裁剪
    opt.step(g)                             # AdamW: 先衰减再自适应步
    sched.step()                            # warmup + 余弦退火
    if t % eval_every == 0:
        val()
        # 若有约束,可计算 KKT 残差: ||∇x L||, ||[g(x)]_+||, ||λ∘g||

9. 本章小结

  1. 问题优先:把目标与约束写清楚,想好是否凸、是否能投影、是否可分解。
  2. 方法选型 :大模型默认 AdamW + 调度 ;凸小中规模用 L-BFGS/牛顿-CG ;复杂约束选 PGD/近端、ALM/ADMM、内点/SQP
  3. 数值与诊断 :用学习率调度/裁剪/稳定化 护航;用KKT 残差与验证曲线做收敛与排错的"仪表盘"。
相关推荐
NAGNIP1 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab2 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab2 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP6 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年6 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼6 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS6 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区8 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈8 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang8 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx