深度学习面试八股文(2)——训练

利用自己构建的agent总结的算法面试八股,会从机器学习,深度学习一直到大语言模型,多模态大模型,llm发展到现在,在这个领域已经基本没有幻觉现象了,是个不错的复习手段。持续更新...

21. 混淆矩阵与基础指标 (TP/TN/FP/FN)

问题: 请解释混淆矩阵中的 TP, TN, FP, FN,并写出查准率 (Precision) 和查全率 (Recall) 的计算公式。
答案:

  • 定义
    • TP (True Positive):真阳性。实际为正,预测也为正。
    • FN (False Negative):假阴性 (漏报)。实际为正,预测为负。
    • FP (False Positive):假阳性 (误报)。实际为负,预测为正。
    • TN (True Negative):真阴性。实际为负,预测也为负。
  • 公式
    • Precision (查准率) :预测为正的样本中有多少是真的正样本。
      Precision=TPTP+FPPrecision = \frac{TP}{TP + FP}Precision=TP+FPTP
    • Recall (查全率/召回率) :所有真实的正样本中有多少被预测出来了。
      Recall=TPTP+FNRecall = \frac{TP}{TP + FN}Recall=TP+FNTP

面试官视角:

"面试中常考场景题:'在垃圾邮件拦截系统中,我们更看重 Precision 还是 Recall?' 答案是 Precision,因为我们宁愿漏掉一封垃圾邮件 (FN),也不能把用户的重要邮件误判为垃圾邮件 (FP)。"

22. F1 Score 的计算与意义

问题: 怎么计算 F1 Score?为什么使用调和平均数而不是算术平均数?
答案:

  • 计算公式 :F1 是 Precision 和 Recall 的调和平均数。
    F1=2×Precision×RecallPrecision+RecallF1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}F1=2×Precision+RecallPrecision×Recall
  • 为什么用调和平均
    • 调和平均数对极小值更敏感。
    • 如果 Precision 和 Recall 其中一个很低 (例如 P=1, R=0.01),算术平均数可能是 0.5 (虚高),但 F1 会接近 0。这强制要求模型在 P 和 R 两方面都要表现均衡,不能偏科。

面试官视角:

"如果这道题你答得很快,面试官通常会让你手推一下:当 β≠1\beta \neq 1β=1 时,FβF_{\beta}Fβ Score 的公式是什么?以此来考察你对'更看重P还是更看重R'的数学表达。"

23. ROC 曲线与 AUC 值 (计算与物理含义)

问题: 如何绘制 ROC 曲线?AUC 值的物理含义是什么?
答案:

  • 绘制方法
    1. 横轴为 FPR (假正类率,FP/(FP+TN)FP / (FP+TN)FP/(FP+TN)),纵轴为 TPR (Recall, TP/(TP+FN)TP / (TP+FN)TP/(TP+FN))。
    2. 设定不同的分类阈值 (Threshold),从 0 到 1 移动,计算每组 (FPR, TPR) 并在图上描点连线。
  • AUC 物理含义
    • 从所有正样本中随机抽取一个 §,从所有负样本中随机抽取一个 (N)。
    • AUC 值等于 模型对 P 的预测分值 > 模型对 N 的预测分值 的概率。
    • AUC=0.5 代表随机猜测,AUC=1 代表完美分类。

面试官视角:

"关键点:AUC 对正负样本比例不敏感。在风控、点击率预测 (CTR) 等正负样本极度不平衡 (1:1000) 的场景下,AUC 是比 Accuracy 更靠谱的核心指标。"

24. P-R 曲线 (Precision-Recall Curve)

问题: 既然有了 ROC,为什么还需要 P-R 曲线?两者有什么区别?
答案:

  • 区别
    • ROC 关注 TPR 和 FPR,两者分母分别是真实正样本和真实负样本,互不干扰。
    • P-R 曲线关注 Precision 和 Recall,Precision 的分母包含 FP (误判为正的负样本)。
  • 适用场景
    • 负样本极多且不重要时 (如大规模搜索、推荐系统),ROC 曲线往往看起来都很完美 (FPR 很难升高),无法区分模型优劣。
    • 此时 P-R 曲线能更敏锐地反映模型在"正样本"上的表现。如果模型产生了大量 FP,P-R 曲线会迅速下降,而 ROC 变化不明显。

面试官视角:

"看图题:如果一条 P-R 曲线完全包住了另一条,说明前者性能优于后者。如果两条曲线相交,则看 BEP (Break-Even Point, P=R 时的值) 或 F1 Score。"


板块二:梯度与训练动态 (Gradient & Dynamics)
25. 模型训练不收敛的原因

问题: 训练过程中 Loss 不下降或震荡 (不收敛),通常有哪些原因?
答案:

  1. 学习率 (Learning Rate) 不当:过大导致震荡发散,过小导致收敛极慢甚至卡在鞍点。
  2. 数据问题
    • 标签错误 (Label Noise)。
    • 数据未归一化 (Unnormalized inputs),导致损失曲面呈狭长山谷状,优化困难。
  3. 模型结构
    • 梯度消失/爆炸 (未加 BN,网络过深)。
    • 参数初始化不合理。
  4. Batch Size:太小导致梯度噪声过大,震荡剧烈。

面试官视角:

"排查口诀:'一图二率三数据'。先画 Loss 图,再调学习率,最后查数据清洗逻辑。"

26. 训练不收敛的解决方法 (Debug 流程)

问题: 遇到模型不收敛,你会采取哪些具体的 Debug 步骤?
答案:

  1. Overfit a Single Batch (过拟合单个 Batch) :这是最有效的手段。取 5-10 个样本,去掉正则化,训练模型。如果 Loss 不能降到 0,说明模型代码实现有 Bug 或模型容量不足,与数据分布无关。
  2. 检查梯度:打印每层的梯度范数 (Gradient Norm),确认是否有层梯度为 0 (消失) 或 NaN (爆炸)。
  3. 调整超参:降低学习率,加上 Warmup,检查 Batch Size。
  4. 数据检查:可视化输入数据,确认 Preprocessing (如 Resize, Normalize) 结果符合预期。

面试官视角:

"一定要提到'过拟合单个 Batch'。这是大神和菜鸟的分水岭。它能迅速区分是'数据/优化难'的问题,还是'代码写错'的问题。"

27. 梯度下降的速度与哪些因素有关?

问题: 影响梯度下降收敛速度的数学和物理因素有哪些?
答案:

  1. 学习率 (η\etaη):步长大小。步长合适则快,步长太小则慢。
  2. 损失函数的曲率 (Curvature):即 Hessian 矩阵的条件数 (Condition Number)。如果不同方向的曲率差异很大 (山谷地形),标准 SGD 会在山谷壁间震荡,收敛极慢。
  3. 特征归一化:归一化后的损失曲面更像正圆形 (各向同性),梯度方向直指圆心 (极小值),收敛最快。
  4. 优化器的动量 (Momentum):动量项能加速在正确方向的移动,抑制震荡。

面试官视角:

"这里可以引出牛顿法 (Newton's Method)。为什么深度学习不用二阶牛顿法?因为计算 Hessian 矩阵及其逆矩阵的计算量是 O(N3)O(N^3)O(N3),参数量过大时不可行。"

28. 鞍点 (Saddle Point) vs 局部极小值

问题: 在高维非凸优化中,模型更容易卡在局部极小值还是鞍点?为什么?
答案:

  • 结论 :在高维空间中,鞍点是更主要的问题,而非局部极小值。
  • 原因
    • 局部极小值要求在所有维度上梯度都上升。维度越高,所有方向同时上升的概率越低。
    • 鞍点是指在一个维度下降、另一个维度上升的点 (形状像马鞍)。在高维空间中,这种点无处不在。
    • 在鞍点处,梯度为 0 (或接近 0),导致 SGD 停滞。
  • 解决 :使用带有动量 (Momentum) 的优化器或加入随机噪声,可以帮助模型冲出鞍点。

面试官视角:

"这是一个反直觉的知识点。初学者总担心掉进局部最优,其实在高维深度网络中,很多局部最优解的 Loss 值已经足够低,足够好用了。真正可怕的是卡在高原 (Plateau) 或鞍点。"


板块三:损失函数 (Loss Function)
29. Cross Entropy (交叉熵) vs MSE (均方误差)

问题: 在分类任务中,为什么一定要用 Cross Entropy 而不建议用 MSE?(从梯度角度解释)
答案:

  • MSE + Softmax/Sigmoid
    • 假设输出 y=σ(z)y = \sigma(z)y=σ(z)。对 MSE 求导会包含 σ′(z)=σ(z)(1−σ(z))\sigma'(z) = \sigma(z)(1-\sigma(z))σ′(z)=σ(z)(1−σ(z)) 这一项。
    • 当预测值接近 0 或 1 时,σ′(z)\sigma'(z)σ′(z) 趋近于 0,导致梯度消失。即使预测错得很离谱 (Error 很大),梯度依然很小,模型学不动。
  • Cross Entropy + Softmax/Sigmoid
    • Cross Entropy 中的 log⁡\loglog 运算正好抵消了 Softmax 中的指数运算。
    • 求导后的梯度形式为 Prediction−LabelPrediction - LabelPrediction−Label。
    • 误差越大,梯度越大,模型修正速度越快。这是凸优化性质的完美体现。

面试官视角:

"这道题是考察你是否推导过公式。'数学上的抵消'是核心关键词。"

30. Focal Loss (焦点损失)

问题: Focal Loss 的公式是什么?它是如何解决正负样本不平衡和难易样本不平衡的?
答案:

  • 背景:在单阶段目标检测 (如 RetinaNet) 中,背景样本 (简单负样本) 极多,主导了梯度的更新。
  • 公式
    FL(pt)=−(1−pt)γlog⁡(pt)FL(p_t) = -(1 - p_t)^\gamma \log(p_t)FL(pt)=−(1−pt)γlog(pt)
  • 机制
    • 解决难易不平衡 :引入调制因子 (1−pt)γ(1 - p_t)^\gamma(1−pt)γ。
      • 对于简单样本 (Easy Example),预测概率 pt≈1p_t \approx 1pt≈1,则 (1−pt)γ≈0(1-p_t)^\gamma \approx 0(1−pt)γ≈0,Loss 被大幅降低。
      • 对于困难样本 (Hard Example),ptp_tpt 较小,权重保留。
    • 结果:模型在训练时会自动忽略大量简单的背景样本,专注于那些难以区分的样本。

面试官视角:

"Focal Loss 不仅用于目标检测,在任何类别极度不平衡且简单样本占主导的分类任务中,都是提升性能的神器。"

相关推荐
NAGNIP12 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab13 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab13 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP17 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年17 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼17 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS17 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区18 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈18 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang19 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx