深度学习面试八股文(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 不仅用于目标检测,在任何类别极度不平衡且简单样本占主导的分类任务中,都是提升性能的神器。"

相关推荐
测试人社区-千羽4 小时前
AI测试中的伦理考虑因素
运维·人工智能·opencv·测试工具·数据挖掘·自动化·开源软件
南龙大魔王4 小时前
spring ai Alibaba(SAA)学习(二)
java·人工智能·spring boot·学习·ai
Elastic 中国社区官方博客4 小时前
在 Google MCP Toolbox for Databases 中引入 Elasticsearch 支持
大数据·人工智能·elasticsearch·搜索引擎·ai·语言模型·全文检索
EXtreme354 小时前
【数据结构】打破线性思维:树形结构与堆在C语言中的完美实现方案
c语言·数据结构·算法··heap·完全二叉树·topk
非著名架构师4 小时前
从预测到预调:疾风大模型如何驱动能源电力系统实现“气象自适应”调度?
大数据·人工智能·风光功率预测·高精度光伏功率预测模型·高精度气象数据·高精度天气预报数据·galeweather.cn
cici158744 小时前
含风电场的十机24时系统机组出力优化算法
人工智能·算法·机器学习
Yeats_Liao4 小时前
CANN Samples(十九):特色场景:机器人 AI 绘画 手写识别等
人工智能·目标跟踪·机器人
亿坊电商4 小时前
AI数字人交互系统架构全解析:从多模态输入到实时渲染的闭环设计!
人工智能·系统架构·交互
热点速递4 小时前
AI成广告新引擎:从百度、快手到Meta,智能技术如何拯救互联网广告下滑!
人工智能·百度