外观
数学基础与梯度优化
目录
- 1. 学习目标
- 2. 面试结论
- 3. 面试官为什么问
- 4. 概念与边界
- 5. 原理剖析
- 6. 实现与代码
- 7. 实际项目案例
- 8. 方案权衡与常见误区
- 9. 面试题与参考答案
- 10. 递进追问
- 11. 实践任务
- 12. 相关知识与参考资料
- 13. 简明总结
1. 学习目标
- 理解标量、向量、矩阵、张量及其维度在 AI 模型中的含义;
- 能够用期望、方差、条件概率和似然解释数据不确定性与训练目标;
- 能够从线性回归的均方误差推导参数梯度和梯度下降更新;
- 能够解释链式法则、全批量/随机/小批量梯度下降及学习率的影响;
- 能够实现并验证一个不依赖第三方库的线性回归训练循环;
- 能够排查损失不下降、振荡、NaN、尺度不一致和目标函数错配。
2. 面试结论
2.1 30 秒回答
AI 中的线性代数负责表达数据和参数,概率统计负责描述不确定性与从样本推断总体,优化则把“模型好坏”写成可计算的目标函数。梯度是目标函数对参数的一阶敏感度;在欧氏范数约束和足够小步长下,负梯度给出局部最陡下降方向,梯度下降按
2.2 一分钟复述版
我会把训练看成四步:先用向量、矩阵表示一批输入和参数;模型前向计算预测;损失函数把预测与目标的偏差压缩为标量;再用微分和链式法则得到每个参数对损失的梯度。对线性回归,
3. 面试官为什么问
- 核心考察点:是否真正理解训练为何能更新参数,能否读懂公式、张量形状和优化日志;
- 对应岗位与级别:应用工程师至少要解释损失与学习率,算法/高级岗位还要推导梯度、分析条件数、方差和收敛边界;
- 优秀回答的区分度:不把梯度等同于误差,能说清局部线性近似、链式法则、尺度和凸/非凸边界;
- 工程信号:遇到损失异常时,先验证数据、目标、前向和梯度,再调整优化器,而不是盲目换模型。
4. 概念与边界
小白先这样理解:大雾里一步步下山
想象你在浓雾中的山坡上,看不见整座山,只能用脚感受当前位置哪边更陡。山的高度对应损失函数,所在位置对应当前参数,脚下最陡上坡的方向就是梯度;因此往它的反方向走,通常能让损失下降。每一步迈多远是学习率:太大可能跨过谷底来回震荡,太小则迟迟走不到低处。只问附近几位向导所得的带噪方向,像用 Mini-batch 估计梯度;汇总所有人的观察则像全批量梯度。
类比边界: 真实优化发生在高维参数空间,梯度是依赖坐标与度量的一阶导数,不是一支肉眼可见的箭头;局部下坡也不保证找到全局最低点,随机梯度的噪声、鞍点和非凸地形都需要正文中的数学条件来分析。
4.1 线性代数对象
| 对象 | 记号示例 | 含义 | AI 中的例子 |
|---|---|---|---|
| 标量 | 单个数值 | 损失、学习率、温度 | |
| 向量 | 有序的一维特征 | 单个样本、Embedding、梯度 | |
| 矩阵 | 行列组织的二维数据 | 一批 | |
| 张量 | 多维数组的工程称呼 | batch × token × hidden state |
“张量”在深度学习框架中通常指多维数组;严格数学中的张量概念更广。维度必须显式检查:若
4.2 概率与统计对象
- 随机变量
:把随机结果映射为数值; - 期望
:长期平均或分布加权中心,不等于每次观测; - 方差
:波动程度; - 条件概率
:已知输入后目标的不确定性; - 似然
:给定参数 时观察到数据 的可能性,训练常通过最大化似然或最小化负对数似然估计参数; - 先验与后验:贝叶斯公式
将先验认识与数据证据结合。
概率模型不是“输出一个概率就结束”。概率还需要校准,决策还要结合误判代价和阈值。
4.3 损失、目标、指标与梯度
| 概念 | 作用 | 例子 | 边界 |
|---|---|---|---|
| 单样本损失 | 衡量一次预测误差 | 平方误差、交叉熵 | 通常为训练可导性设计 |
| 目标函数 | 聚合损失并加入约束/正则 | 平均损失 + L2 | 优化器实际最小化的量 |
| 评测指标 | 对齐业务判断 | Recall、F1、MAE | 可以不可导,不一定直接训练 |
| 梯度 | 各参数方向的一阶变化率 | 是局部信息,不保证跨越非凸障碍 | |
| 超参数 | 训练前或外循环选择 | 学习率、批大小 | 不由本次梯度直接拟合 |
梯度不是“参数应该变成的值”,也不是预测误差本身;它描述参数微小变化会怎样改变目标。
5. 原理剖析
5.1 向量与矩阵为何适合机器学习
将
其中,
点积
5.2 从概率到常用损失
若假设回归噪声
二分类中若
其中,
5.3 线性回归梯度推导
定义均方误差目标:
令残差
推导核心是链式法则:平方项先对残差求导得到
5.4 梯度下降为什么沿负梯度
目标函数在参数
当限制
其中,
对二次函数
教学插图:损失地形上的学习率差异

替代文本: 同一损失地形中,小学习率用密集短步缓慢接近低谷;合适学习率以较少、稳定的步骤下降;过大学习率反复跨越低谷并可能向外发散。
读图结论: 负梯度只提供当前点附近的一阶下降方向,学习率决定沿该方向走多远;步长过大时,局部近似可能失效,不能保证损失继续下降。
图中的二维地形只是高维参数空间的概念投影,也不表示负梯度会自动找到非凸目标的全局最优点。
5.5 优化循环可视化
图 1:梯度优化闭环(替代文本:一批数据经过前向计算产生预测和标量损失,反向计算梯度,检查梯度与数值状态后更新参数,再以停止条件决定继续或冻结模型。)
图表加载中…
读图结论: 优化器只是闭环中的更新规则;数据、前向、损失、梯度检查和停止条件任何一环错误,换优化器都无法根治。
5.6 Batch、SGD 与 Mini-batch
设完整数据目标为
- Batch Gradient Descent:每步使用全部
个样本,梯度确定但单步成本高; - Stochastic Gradient Descent(SGD):每步用一个样本,单步快但方差大;
- Mini-batch Gradient Descent:每步用
个样本,利用向量化并以适度噪声换取吞吐,实践最常见。
若小批量均匀采样,其梯度通常是全量梯度的无偏估计,但方差受样本分布、批大小和采样策略影响。类别不均衡采样、梯度累积和分布式数据并行会改变“一个 step/epoch”的含义,日志必须记录有效批大小。
5.7 学习率、尺度与数值稳定性
- 学习率过大:损失振荡、上升或出现 Inf/NaN;
- 学习率过小:损失缓慢变化,看似不学习;
- 特征尺度差异大:不同方向曲率差异大,优化路径之字形;
- 梯度爆炸:梯度范数迅速增大,可先定位异常层,再考虑裁剪;
- 浮点溢出:指数、对数、除法和低精度累积最常见,应使用稳定公式和合适精度;
- 训练目标错配:即使损失下降,业务指标也可能恶化,需检查损失假设和评测切片。
6. 实现与代码
6.1 最小可运行示例:手写线性回归与梯度下降
运行环境:Python 3.10+,仅使用标准库。数据是明确标注的合成样本,用来验证梯度更新,不代表真实业务效果。
python
def mse(xs, ys, weight, bias):
errors = [(weight * x + bias) - y for x, y in zip(xs, ys)]
return sum(error * error for error in errors) / len(errors)
def train_linear_regression(xs, ys, learning_rate=0.05, steps=1000):
if len(xs) != len(ys) or not xs:
raise ValueError("xs 和 ys 必须非空且长度相同")
weight, bias = 0.0, 0.0
losses = [mse(xs, ys, weight, bias)]
for _ in range(steps):
errors = [(weight * x + bias) - y for x, y in zip(xs, ys)]
grad_weight = 2.0 * sum(error * x for error, x in zip(errors, xs)) / len(xs)
grad_bias = 2.0 * sum(errors) / len(xs)
weight -= learning_rate * grad_weight
bias -= learning_rate * grad_bias
losses.append(mse(xs, ys, weight, bias))
return weight, bias, losses
# 明确的合成关系:y = 3x + 2。
xs = [-3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0]
ys = [3.0 * x + 2.0 for x in xs]
weight, bias, losses = train_linear_regression(xs, ys)
assert losses[-1] < losses[0], "训练后损失应低于初始损失"
assert all(value == value for value in losses), "损失中不应出现 NaN"
print("observed_weight=", weight)
print("observed_bias=", bias)
print("initial_loss=", losses[0], "final_loss=", losses[-1])6.2 关键实现说明
- 前向计算
,再按解析公式计算 grad_weight和grad_bias; - 代码保存初始和每一步损失,用断言验证“确实下降”而不是预填一个结果;
- 单步时间复杂度为
,总复杂度为 ,其中 是迭代步数;当前实现每步保存长度为 的 errors,并保留个损失,峰值辅助空间为 。若流式累计梯度且只保留当前/最终损失,可优化到 ; - 合成数据特意以 0 为中心,减少权重与偏置梯度的耦合;真实特征通常需要基于训练集统计量标准化;
- 可用中心差分
做小规模梯度检查,但数值梯度成本高,不用于正常训练。
6.3 边界条件与验证
- 把
learning_rate改得很大,观察损失是否振荡或溢出; - 将
xs全部乘以较大常数但不改学习率,观察尺度对稳定性的影响; - 给
ys加入一个极端异常值,比较 MSE 与 MAE 对异常点的敏感度; - 真实代码应检查空数据、非有限值、单位、重复样本和训练/验证切分;
- 梯度检查只验证导数实现,不证明损失函数、数据口径和业务目标正确。
6.4 技术清单与证据边界
线性代数、微积分和梯度下降是数学机制,不绑定 Python、NumPy 或自动微分框架。下表列出本文最小实验与生产实现的参考验证栈;除 Python 标准库示例外,不能据此声称仓库已经采用某个第三方框架。
| 技术点 ID | 技术点/环节 | 类型 | 采用方案 | 链路职责 | 版本/证据边界 |
|---|---|---|---|---|---|
| TP-01 | 向量、矩阵与损失计算 | 数值计算 | 教学采用 Python 标准库标量循环;生产参考向量化张量库 | 完成前向预测、误差聚合和稳定损失计算 | 文中代码要求 Python 3.10+;数学公式与具体张量库无关,第三方版本需项目锁定 |
| TP-02 | 梯度计算与正确性验证 | 求导与测试 | 采用解析梯度,并用中心差分做小规模梯度检查 | 计算参数方向并证明手写导数与数值近似一致 | 文中给出解析式和检查方法;自动微分框架仅为参考候选,未在本文实测 |
| TP-03 | 参数优化与稳定性控制 | 优化算法 | 教学采用全批量梯度下降;生产根据噪声、规模和资源比较 SGD 系与 AdamW | 根据梯度更新参数,并控制学习率、数值异常和收敛证据 | 教学代码可运行;生产优化器结论必须来自固定数据与预算下的实验,不能由框架默认值推断 |
6.5 横向对比与选型
| 技术点 ID | 候选方案 | 优点 | 缺点/代价 | 适用场景 | 不适用场景 | 选择结论与依据 |
|---|---|---|---|---|---|---|
| TP-01 | Python 标准库标量循环 | 每个中间量可见,便于把公式逐项映射到代码 | 性能低、形状检查和数值算子需要手工实现 | 小规模教学、公式验证和故障最小复现 | 大矩阵、GPU 或生产批训练 | 本文采用它建立机制证据,因为可读性比吞吐更重要 |
| TP-01 | NumPy/张量库向量化 | 利用成熟线性代数内核,表达矩阵公式更直接 | 广播和形状错误可能隐蔽;不同设备/精度仍需验证 | CPU 向量实验或框架张量训练 | 需要逐元素教学追踪,或依赖尚未锁定时 | 数据规模增加后采用,但必须增加形状、有限值和数值一致性测试 |
| TP-02 | 解析梯度 + 中心差分 | 独立于自动微分实现,能发现符号、缩放和链式法则错误 | 参数多时成本近似按参数数量增长,且受浮点误差影响 | 小模型、定制算子和单元测试 | 大模型正常训练或非光滑点附近的精确判断 | 本文采用它验证手写梯度;只抽样少量参数,不进入主训练路径 |
| TP-02 | 自动微分(PyTorch/JAX 等) | 自动记录组合算子并按链式法则求梯度,适合复杂模型 | 可能因 detach、原地修改或控制流产生错误图;仍不能证明目标定义正确 | 生产神经网络、复杂可微程序 | 不可微业务决策或只需闭式解的问题 | 模型复杂后采用自动微分,同时保留小规模数值梯度和已知公式测试 |
| TP-03 | 全批量或 Mini-batch SGD | 状态少、更新规则透明;噪声有时有助泛化 | 对学习率和尺度敏感,可能收敛慢 | 教学、凸基线、可容纳批量数据或希望控制优化路径 | 梯度稀疏、尺度差异大且调参预算很低时 | 本文采用全批量形式展示更新;生产通常从 Mini-batch SGD 基线开始 |
| TP-03 | AdamW | 自适应缩放,早期优化通常更稳,对不同参数尺度更宽容 | 额外维护一阶/二阶矩,显存和状态成本更高;泛化不必然更优 | 深度网络、稀疏或尺度差异明显的梯度 | 极紧内存、简单凸问题或必须最小化优化器状态时 | 只有在同数据、同预算对比中证明价值后采用,并记录状态与超参数版本 |
6.6 参考实现架构
图:架构|从数值输入到参数更新与验证证据的计算组件
替代文本: 数据批次进入前向计算得到预测,损失组件比较预测与目标,梯度引擎可走解析求导或自动微分;优化器更新参数,有限值、梯度检查和验证指标组成旁路门禁,异常时阻断更新并保留故障证据。
图表加载中…
读图结论: 优化训练不是“调用一个 optimizer”就结束,而是前向、损失、梯度、更新和独立验证共同组成的闭环,其中数值门禁位于参数被污染之前。
架构图给出静态分工:数学机制由前向、损失和梯度定义,框架负责高效执行,验证与监控负责证明实现没有偏离公式和业务目标。
6.7 技术调用流程
图:技术调用流程|单个训练步的正常更新与非有限值分支
替代文本: 训练器读取 batch 后依次执行前向、损失、求梯度和门禁检查;正常时优化器更新参数并记录指标,发现 NaN、Inf 或梯度检查失败时跳过更新,保存故障 batch 和中间量后调整数据、公式、精度或学习率。
图表加载中…
读图结论: 参数更新只能发生在损失和梯度通过有限值门禁之后;异常分支应保留可重放证据,而不是继续迭代并期待数值自行恢复。
调用流程强调时序边界:梯度检查证明局部导数实现,验证集证明泛化趋势,两者均不能替代对损失定义和业务目标的审查。
7. 实际项目案例
示例项目:AI 视频渲染时长预测基线。 下述方案用于连接数学与工程,不代表仓库已有实现,不包含实测数据或收益。
7.1 背景、目标与约束
- 目标:在视频合成任务入队时估计渲染时长,用于队列调度和超时预算;
- 输入候选:成片时长、分辨率像素数、帧率、镜头数、特效数量、字幕轨数量、编码器类型;
- 输出:预计渲染秒数或一个时间区间;
- 约束:硬件、编码器版本和素材复杂度会改变分布;极慢任务是业务上重要的长尾;
- 非目标:简单线性模型不负责解释所有非线性交互,也不直接替代超时兜底。
7.2 架构与调用链
- 工作流服务在任务创建时记录预测时可见特征;
- 特征服务统一单位,并只用训练窗口统计量做标准化;
- 线性回归作为可解释基线,输出预测与模型版本;
- 调度器将预测作为优先级和超时预算的参考,而非唯一规则;
- 任务完成后记录真实时长、机器类型、失败原因和排队时间;
- 监控残差分布,按编码器、分辨率、机器池和时间切片定位漂移。
7.3 损失与方案权衡
- MSE 强调大误差,但少数异常任务可能主导训练;
- MAE 对异常值更稳健,但在零点不可导,框架用次梯度或平滑近似处理;
- 若业务需要“多数任务不超时”,可考虑分位数回归而不是只预测条件均值;
- 若残差随视频长度增长,可预测对数时长或使用加权损失,但转换后的业务解释必须还原;
- 在线性基线无法表达硬件与特效交互时,再评估树模型或神经网络,不能跳过基线和误差分析。
7.4 异常处理、监控与测试
| 现象 | 根因 | 解决 | 验证 |
|---|---|---|---|
| 损失一开始就是 NaN | 输入含 NaN/Inf、单位错误或前向数值溢出 | 拒绝非法样本、统一单位并改用稳定计算 | 对每列做有限值/范围断言,故障 batch 重放后损失和梯度均有限 |
| 损失上下振荡 | 学习率过大或特征尺度差异造成狭长优化地形 | 降低学习率,只用训练集统计量标准化并使用调度 | 对比损失曲线、梯度范数和参数更新比,应不再周期性放大 |
| 训练损失下降但验证损失不降 | 过拟合、时间漂移或训练/验证分布不一致 | 正则化、重建切分、补充可靠特征或数据 | 比较时间/机器切片残差与学习曲线,在冻结验证集上确认改善 |
| 总体误差正常但慢任务持续低估 | 目标长尾且 MSE/MAE 与超时业务代价不一致 | 使用分位数目标、分段模型或经过验证的保守安全裕量 | 检查高分位残差与超时相关切片,而不只看总体均值 |
| 新编码器上线后预测出现系统偏差 | 新类别未见且硬件/编码器改变了条件分布 | 启用回退规则,收集新版本数据并做版本化再训练 | 按编码器版本监控残差,影子/灰度评测通过后再扩大流量 |
7.4.1 故障演练:新编码器上线后时长预测系统性偏低
- 现象与影响:新编码器任务的预测时长整体偏低,调度器过量接单,队列等待和超时率上升。
- 定位证据:按编码器版本对比残差分布、目标长尾、特征缺失率和单位;用同一输入重放新旧特征与模型输出。
- 根因:训练数据没有覆盖新编码器,且编码器类别被默认值吞掉,模型把新的条件分布当成旧硬件路径。
- 临时止损:对新编码器启用保守规则或旧版基线,限制并发,不让错误预测继续驱动调度。
- 长期修复:显式表示编码器版本,补充带真实完成时间的新样本,重新选择损失与安全分位数,并将预处理和模型共同版本化。
- 回归验证:在冻结时间窗口上比较 MAE、目标分位残差和超时相关切片;影子流量达到门槛后再逐步放量。
- 防复发:监控按硬件和编码器分桶的残差、未知类别率与回退率;新版本接入必须先通过数据覆盖和漂移门禁。
测试包括:公式梯度与数值梯度对比、单位转换测试、训练集统计量边界测试、不同学习率故障注入、模型序列化一致性和新编码器回退测试。
7.5 结果与复盘
不在示例中预填误差或调度收益。真实项目应保存损失曲线、按切片的 MAE/分位误差、梯度与参数范数、数据和硬件版本、失败样本以及基线对比。面试时重点说明为什么选目标、如何处理长尾和怎样证明预测对调度有帮助。
8. 方案权衡与常见误区
8.1 适用与不适用场景
- 梯度法适合目标对参数可微或可用次梯度/近似梯度的问题;
- 参数很少且有闭式解时,解析解可作为正确性基线,但矩阵求逆可能数值不稳或不适合超大规模;
- 离散决策、不可导黑盒或强组合约束可能需要搜索、强化学习、进化算法或连续松弛;
- 凸目标更容易讨论全局最优,非凸深度网络通常依赖初始化和经验优化策略;
- 训练损失可导不代表业务指标已对齐,阈值和代价仍在外层选择。
8.2 替代与改进方案
| 方法 | 优点 | 局限 |
|---|---|---|
| 闭式最小二乘 | 无迭代学习率,适合小规模基线 | 高维矩阵分解成本和数值问题 |
| Batch GD | 梯度稳定、便于分析 | 单步扫描全量数据 |
| SGD | 更新频繁、适合流式或大数据 | 方差大、对学习率敏感 |
| Mini-batch | 硬件吞吐和梯度方差折中 | 批大小影响内存、泛化和有效学习率 |
| Momentum/Adam | 改善方向累积或自适应缩放 | 增加状态;仍需调度与验证泛化 |
8.3 常见错误回答
- “梯度就是误差”——误差是预测与目标差异,梯度是损失对参数的导数;
- “负梯度一定到全局最优”——只在额外凸性等条件下可作此保证;
- “学习率越小越稳定,所以越好”——过小会导致训练成本过高或停在有限预算内的差解;
- “标准化改变真实规律,不能做”——训练集拟合的线性标准化通常改善条件数,推理时按同一变换即可;
- “损失下降说明模型上线有效”——还要看验证、业务指标、分切片和数据链路。
8.4 生产排障顺序
- 检查输入、标签、单位、缺失值和批次是否正确;
- 用极小数据尝试过拟合,验证前向、损失和梯度链路;
- 做解析梯度/数值梯度检查,定位实现错误;
- 记录每层或每参数组的梯度范数、参数范数和更新比;
- 再调整学习率、调度、批大小、初始化和优化器;
- 最后评估模型容量和数据是否足够,避免优化问题与建模问题混淆。
9. 面试题与参考答案
问题 1:梯度下降为什么沿负梯度方向更新?
- 难度:基础;
- 考察点:梯度几何意义和一阶近似;
- 合格答案要点:梯度是局部上升最快方向,负梯度在固定小步长下使一阶近似下降最快;
- 优秀答案加分项:写出泰勒一阶展开,说明结论是局部的、学习率过大时不保证下降;
- 常见错误:把梯度说成“离最优点的距离”;
- 可继续追问:不同范数约束下最陡下降方向是否仍等于普通负梯度?
问题 2:学习率过大和过小分别会怎样?
- 难度:基础;
- 考察点:优化稳定性与诊断;
- 合格答案要点:过大可能越过低谷、振荡或发散,过小收敛慢;
- 优秀答案加分项:结合曲率、特征尺度、warmup、衰减、梯度范数和有效批大小解释;
- 常见错误:认为自适应优化器完全不需要学习率;
- 可继续追问:为什么增大 batch 后常需要重新调整学习率?
问题 3:为什么特征尺度会影响梯度下降?
- 难度:中级;
- 考察点:目标几何、条件数和预处理边界;
- 合格答案要点:尺度差异使不同方向曲率差异大,等高线狭长,统一学习率难以兼顾;
- 优秀答案加分项:联系 Hessian 条件数,强调标准化统计量只能从训练集拟合;
- 常见错误:只说“数值会变大”但说不清优化路径;
- 可继续追问:BatchNorm、LayerNorm 和输入标准化分别解决什么问题?
问题 4:链式法则在神经网络训练中做了什么?
- 难度:中级;
- 考察点:计算图与反向传播基础;
- 合格答案要点:复合函数的导数是局部导数沿依赖路径相乘并在分支汇合处相加;
- 优秀答案加分项:说明反向模式自动微分复用中间量,求标量损失对大量参数梯度更高效;
- 常见错误:把反向传播当成独立于链式法则的新优化算法;
- 可继续追问:长链 Jacobian 连乘为何导致梯度消失或爆炸?
10. 递进追问
10.1 追问清单
- 基础概念:梯度、导数、偏导数和方向导数有什么关系?
- 原理细节:MSE 为什么可由高斯噪声下的最大似然推出?
- 实现边界:怎样用有限差分检查手写梯度,
为什么不能无限小? - 工程权衡:Batch、SGD、Mini-batch 如何在吞吐、方差和内存之间取舍?
- 系统设计:分布式训练中如何定义和监控有效 batch、学习率与梯度同步?
- 项目复盘:训练损失正常下降但线上业务指标变差,怎样判断是目标错配、漂移还是服务错误?
10.2 回答检查点
- 一元导数是特例,梯度汇总各偏导,方向导数为梯度与方向的内积;
- 写出高斯似然取负对数后保留平方残差项,并说明噪声假设;
- 使用中心差分,在截断误差与浮点消减误差之间选择适中
; - 结合数据规模、硬件并行、梯度方差和训练预算,不给固定批大小;
- 记录每卡 batch、梯度累积步和并行副本数,明确平均/求和语义与失败重试;
- 依次核对指标口径、数据/标签、模型与特征版本、漂移切片,再讨论重新设计损失。
11. 实践任务
- [ ] 最小实现:运行第 6 节代码,并用纸笔推导两个梯度公式;
- [ ] 梯度检查:实现中心差分,比较解析梯度与数值梯度的相对误差;
- [ ] 对比实验:分别使用三个学习率,记录每步损失而不是只看最终参数;
- [ ] 尺度实验:将输入某一维放大,比较标准化前后的收敛路径;
- [ ] 故障注入:加入 NaN、极端标签和异常学习率,为每种故障写诊断日志;
- [ ] 面试口述:用 30 秒解释负梯度,用 1 分钟推导线性回归并补充工程排障顺序。
验收标准:能独立写出前向、损失、梯度和更新;能通过数值梯度验证实现;能根据损失与梯度日志区分数据、实现和超参数问题。
12. 相关知识与参考资料
12.1 相关知识
- 前置知识:AI 学习框架与数据集划分;
- 后续主题:传统机器学习与评测、神经网络训练与反向传播;
- 迁移方向:Attention 的矩阵运算、反向传播的 Jacobian 链和 LLM 训练优化都建立在本主题之上。
12.2 参考资料
以下仅使用作者教材、原始论文或官方文档,访问日期均为 2026-07-10:
- Boyd and Vandenberghe, Convex Optimization,作者在 Stanford 发布的教材与资料;
- Boyd and Vandenberghe, Introduction to Applied Linear Algebra,作者公开教材;
- Robbins and Monro, A Stochastic Approximation Method,原始论文;
- Goodfellow, Bengio, Courville, Deep Learning — Numerical Computation and Optimization,作者公开教材;
- Goodfellow, Bengio, Courville, Deep Learning — Optimization for Training Deep Models,作者公开教材;
- NumPy, Linear algebra,官方文档;
- PyTorch, torch.optim,官方文档。
本次参考验证栈横评另核对 JAX Automatic differentiation 官方文档,访问日期为 2026-07-11。
13. 简明总结
一句话记忆: 数学把数据、误差和参数变化写成可计算对象,梯度下降则用局部一阶信息反复降低目标。
- 向量和矩阵表达批量数据与参数,概率假设决定似然和常用损失;
- 梯度是损失对参数的局部敏感度,负梯度只在足够小的局部步长下给出下降方向;
- 学习率、特征尺度、批大小、曲率和数值精度共同决定训练稳定性;
- 损失不下降时先查数据、前向、损失和梯度,再换优化器或模型;
- 面试必讲公式、维度、假设和工程边界,不能只背更新式。