机器学习与模式识别 第十二章 自适应学习优化器 考点压缩

第十二章:SGD & Adam --- 知识点笔记

综合来源:Lecture 12 PDF(25页)、课堂笔记(CSDN)


占位图

12.1 学习率调度(Learning Rate Schedules)

调度策略 公式 适用
线性(Linear) η(τ)=(1−τT)ηstart+τTηend\eta^{(\tau)} = (1-\frac{\tau}{T})\eta_{start} + \frac{\tau}{T}\eta_{end}η(τ)=(1−Tτ)ηstart+Tτηend 简单任务
幂律(Power-law) η(τ)=ηstart(1+τs)−c\eta^{(\tau)} = \eta_{start}(1+\frac{\tau}{s})^{-c}η(τ)=ηstart(1+sτ)−c 最常用
指数(Exponential) η(τ)=ηstart⋅cτ\eta^{(\tau)} = \eta_{start} \cdot c^{\tau}η(τ)=ηstart⋅cτ ---
余弦(Cosine) η(τ)=ηmin+ηmax−ηmin2(1+cos⁡(πτT))\eta^{(\tau)} = \eta_{min} + \frac{\eta_{max}-\eta_{min}}{2}(1+\cos(\pi\frac{\tau}{T}))η(τ)=ηmin+2ηmax−ηmin(1+cos(πTτ)) LLM常用

12.2 自适应学习率 ⭐⭐

AdaGrad

  • 对每个参数维度独立调整学习率
  • 累积梯度平方和→梯度大的维度学习率减小

ri=ri+(∂E∂wi)2r_i = r_i + \left(\frac{\partial E}{\partial w_i}\right)^2ri=ri+(∂wi∂E)2

wi=wi−ηri+ϵ⋅∂E∂wiw_i = w_i - \frac{\eta}{\sqrt{r_i + \epsilon}} \cdot \frac{\partial E}{\partial w_i}wi=wi−ri+ϵ η⋅∂wi∂E

问题 :rrr单调增长→学习率过度减小→早期大梯度导致后期停滞

RMSProp

  • 指数加权移动平均替代AdaGrad的累积和→关注近期梯度

ri=βri+(1−β)(∂E∂wi)2r_i = \beta r_i + (1-\beta)\left(\frac{\partial E}{\partial w_i}\right)^2ri=βri+(1−β)(∂wi∂E)2

  • β≈0.9\beta \approx 0.9β≈0.9:越近的梯度权重越大

12.3 Adam ⭐⭐⭐

Adam = RMSProp + Momentum

si(τ)=β1si(τ−1)+(1−β1)∂E∂wi(Momentum: 一阶矩)s_i^{(\tau)} = \beta_1 s_i^{(\tau-1)} + (1-\beta_1)\frac{\partial E}{\partial w_i} \quad \text{(Momentum: 一阶矩)}si(τ)=β1si(τ−1)+(1−β1)∂wi∂E(Momentum: 一阶矩)

ri(τ)=β2ri(τ−1)+(1−β2)(∂E∂wi)2(RMSProp: 二阶矩)r_i^{(\tau)} = \beta_2 r_i^{(\tau-1)} + (1-\beta_2)\left(\frac{\partial E}{\partial w_i}\right)^2 \quad \text{(RMSProp: 二阶矩)}ri(τ)=β2ri(τ−1)+(1−β2)(∂wi∂E)2(RMSProp: 二阶矩)

偏差校正 (解决初始步过小问题):

s^i=si1−β1τ,r^i=ri1−β2τ\hat{s}_i = \frac{s_i}{1-\beta_1^\tau}, \quad \hat{r}_i = \frac{r_i}{1-\beta_2^\tau}s^i=1−β1τsi,r^i=1−β2τri

更新

wi=wi−ηs^ir^i+ϵw_i = w_i - \eta \frac{\hat{s}_i}{\sqrt{\hat{r}_i} + \epsilon}wi=wi−ηr^i +ϵs^i

典型超参数 :β1=0.9,β2=0.99,ϵ=10−8\beta_1=0.9, \beta_2=0.99, \epsilon=10^{-8}β1=0.9,β2=0.99,ϵ=10−8

Adam是最广泛使用的梯度下降变体!


12.4 Batch GD → SGD → Mini-batch ⭐⭐

Batch GD的代价

  • 每步计算N个数据点的梯度→**O(ND)\mathcal{O}(ND)O(ND)**
  • 大数据集→每步都极昂贵

SGD(随机梯度下降)

  • 每步随机选1个 数据点→O(D)\mathcal{O}(D)O(D)
  • 梯度有噪声→但便宜+快
  • 噪声可能帮助逃离局部最小值!

Mini-batch SGD

  • 每步随机选B个 数据点→O(BD)\mathcal{O}(BD)O(BD)
  • 在噪声和精度之间取得平衡

三种方法对比

方法 每步梯度 代价 特点
Batch GD 全部N点 O(ND)\mathcal{O}(ND)O(ND) 精确但昂贵
SGD 1个点 O(D)\mathcal{O}(D)O(D) 噪声大但便宜+快
Mini-batch SGD B个点 O(BD)\mathcal{O}(BD)O(BD) 最优折中

训练误差=测试误差的经验估计

1N∑nL(tn,fw(xn))≈Ep(t,x)L(t,fw(x))\frac{1}{N}\sum_n L(t_n, f_w(x_n)) \approx \mathbb{E}_{p(t,x)}L(t, f_w(x))N1n∑L(tn,fw(xn))≈Ep(t,x)L(t,fw(x))

  • 大N→训练误差≈期望测试误差(大数定律)

12.5 Epoch与Shuffling

Epoch

  • 1 Epoch = 完整遍历全部N个数据点一次

Shuffling

  • 每个Epoch开始前随机打乱数据顺序
  • Mini-batch按序取B个→自然随机

每Epoch步数

  • Batch size B → 每Epoch ⌈N/B⌉\lceil N/B \rceil⌈N/B⌉ 步

选择Batch Size

大B 小B
梯度估计更准 计算便宜→更多步
GPU并行更好 随机性帮助逃离局部最优
→先增大B填满GPU →η\etaη可随B成比例增大

笔记中的图片索引

序号 图片内容描述 来源位置
图1 四种学习率调度策略曲线 Lecture 12 第2-3页
图2 Batch/SGD/Mini-batch梯度估计谱 Lecture 12 第18-19页
图3 Epoch与Shuffling循环 Lecture 12 第21页

笔记整理时间:2026年6月29日

相关推荐
暂时先用这个名字几秒前
安装deepseek harness及插件
人工智能·ai·npm·pnpm·deepseek·深度求索·harness
水如烟几秒前
孤能子视角:EIS认识论分册总纲——同一认知呼吸的四次显影
人工智能
海兰1 分钟前
mcporter — 安装部署及使用完全指南(一)
人工智能·agent·mcp
skywalk81634 分钟前
用WorkBuddy成功把Deepseek Harness移植到FreeBSD
人工智能·deepseek·harness
JavaPub-rodert4 分钟前
我把 OpenAI 协议塞进了 Go 工具库:go-commons 开始支持 AI 了
开发语言·人工智能·golang
HZZD_HZZD6 分钟前
非侵入式负荷监测选`Seq2Point`还是`LSTM`?合众致达实测:洗衣机分解F1达0.87、`NDE`误差降27%,附PyTorch完整实现
人工智能·pytorch·lstm
嘟哩DuliDuli12 分钟前
AI 账单变高的技术原因:重复上下文和用量归属
android·人工智能·安全·ai·软件工程
Tom·Ge12 分钟前
AI创业者通识日报 | 2026年8月13日
人工智能·大模型·ai创业·ai创业者
tech讯息14 分钟前
企业 AI 办公平台如何标准化落地?哪些云方案适配企业统一部署?—— 优先评估统一工作台、权限管控与系统集成能力
人工智能
IT_陈寒26 分钟前
搞不定JavaScript的数组去重?你可能漏了这两个坑
前端·人工智能·后端