M3-006M3: Deep Learning FoundationsBackprop & AutodiffHard
Mastery:
Backprop & Autodiff: 什么是可微编程?它改变了哪些系统设计?
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 把'可学习组件'嵌入任意程序,端到端用梯度优化;使系统从'手写规则'转向'可学习管线'。
📌 Key Takeaways
- •代表:可微渲染、可微物理仿真、可微排序/检索
- •关键挑战:离散操作的梯度(松弛/STE/REINFORCE)
📐 Mathematical Derivations
核心思想:传统编程是'写规则',可微编程是'写可微的计算流程,让梯度自动优化其中的可学习参数'。它把自动微分从'神经网络训练'推广到<strong>任意可微程序</strong>(渲染器、物理引擎、数据库查询、排序算法),实现<strong>端到端优化</strong>。<strong>典型应用</strong>:① <strong>可微渲染</strong>——渲染过程(光栅化)可微,使'从图像反推 3D 场景参数'成为可能(NeRF、3D Gaussian Splatting 的优化基础);② <strong>可微物理仿真</strong>——仿真器可微,可优化机器人控制策略与物理参数;③ <strong>可微排序/检索</strong>——把排序(离散)松弛为可微的 soft ranking(如 Sinkhorn、NeuralSort),使'直接优化 NDCG/Recall'成为可能;④ <strong>可微数据增强/特征工程</strong>——把预处理参数化为可学习模块;⑤ <strong>神经符号系统</strong>——把逻辑推理与神经网络结合。<strong>关键挑战是离散操作的不可微性</strong>:argmax、排序、采样、Top-K 等操作的梯度为零或不存在,需用三种手段处理。
🏭 Production Trade-offs
为离散操作提供梯度的三种手段:① <strong>松弛(Relaxation)</strong>——用可微的软替代(softmax 替代 argmax、Sinkhorn 替代最优传输、SoftSort 替代排序),在温度趋于 0 时逼近原操作;优点是简单、梯度有偏但方向可用;缺点是温度调度需调(太高则偏离原操作,太低则梯度消失)。② <strong>直通估计器(STE,Straight-Through Estimator)</strong>——前向用离散操作,反向直接用恒等梯度'穿透';简单有效但梯度有偏(量化感知训练、二值网络的标准做法)。③ <strong>强化学习/得分函数估计</strong>——把离散选择视为随机动作,用 REINFORCE 估计梯度(无偏但方差大),或 Gumbel-Softmax 做可微采样(低方差有偏)。<strong>实践建议</strong>:优先用松弛(如 Gumbel-Softmax、Sinkhorn),因为它能给出稠密梯度且实现简单;STE 适合'前向必须精确离散'的场景(如量化);REINFORCE 适合不可松弛的组合优化。此外,<strong>端到端 vs 分阶段</strong>的取舍也很关键——端到端训练能联合优化(通常更好),但可能不稳定且难调试;分阶段(先训模块再联合微调)更稳但次优。
⚠️ Common Interview Pitfalls
- ✕认为所有操作都能自动可微(离散操作需特殊处理)
- ✕用松弛后不调温度(偏离原操作或梯度消失)
🎯 Interviewer Follow-ups
- ?离散操作为什么不可微?
- ?如何为排序/检索提供梯度?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.