拿下技术面上传简历

你手写了一个两层全连接网络(输入 784 → 隐层 256 + ReLU → 10 类 softmax 交叉熵)和完整的前向/反向传播,但训练完全不收敛。你打算用数值梯度检验(有限差分)来确认反向传播写对了。请具体说明:你用什么误差度量判断"通过"、epsilon 取多大、用 float32 还是 float64、用多少参数和多少条样本做检验、要不要关掉随机性;以及如果解析梯度和数值梯度在 1e-2 量级对不上,你如何定位到是哪一层、哪个公式写错了。

深度学习基础神经网络基础3-5 年知识点 1 个

面试官在考什么

判断候选人是否真自己实现过反向传播,能否把"梯度检验"设计成一个可控的工程实验,而不是只会调库。

反向传播

回答框架 · 前两步

  1. 用相对误差 |num−ana| / max(|num|+|ana|, ε) 作为判据;float64 下 1e-7 量级合格,1e-4 可疑,1e-2 基本可以判定实现有 bug。不用绝对差,因为各参数梯度的量级差异可跨越几个数量级。
  2. 必须用 float64:float32 的舍入误差本身就在 1e-4~1e-3 量级,会淹没真实误差;epsilon 取 1e-4~1e-6,太小被舍入噪声淹没,太大被二阶截断误差污染。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「深度学习基础」方向页

同一能力域的其他题