60 秒回答模板

假设单样本 MSE 是 L=(yhat-y)^2,或者带 1/2 系数写成 L=1/2*(yhat-y)^2。对 yhat 求导分别是 2*(yhat-y) 或 yhat-y。反向传播时这个梯度先到输出层,再乘上输出对上一层激活和参数的偏导,逐层用链式法则传回去。如果是 batch,就对样本求平均。回答时要说明系数只影响尺度,不影响优化方向,关键是误差项和链式法则。

考点 误差项
难度 真实面经题
回答目标 讲清方法、取舍和追问

深入解析

01

先写清损失定义

MSE 衡量预测值和真实值的平方误差。常见写法有 L=(1/n)sum(yhat-y)^2,也有人加 1/2 方便求导。不同系数只改变梯度尺度,不改变最优点。

02

再对预测值求导

对单个输出而言,dL/dyhat=2*(yhat-y),如果损失前有 1/2 就变成 yhat-y。这个项就是回传到输出层的误差信号。

03

用链式法则传参数

如果 yhat 来自线性层 z=w*x+b,再经过激活函数,那么 dL/dw=dL/dyhat * dyhat/dz * dz/dw。每一层都接收上游梯度并乘本层局部导数。

04

Batch 训练要平均

多个样本训练时,通常对每个样本的损失或梯度求平均。这样 batch size 改变时梯度尺度更稳定,学习率也更容易调。

05

回答要联系反传

面试手推不只是公式计算,还要说清梯度如何从输出层沿计算图反向流动,以及每层参数如何利用局部偏导更新。

易错点

  • 不要只写 dL/dyhat 而不说明如何继续回传到参数。
  • 不要把 1/2、1/n 等系数差异当作本质差异。
  • 不要忽略 batch 平均和学习率对梯度尺度的影响。

面试官追问

为什么有的公式前面加 1/2?

加 1/2 是为了抵消平方求导产生的 2,方便书写,不改变优化目标。

MSE 用在分类任务有什么问题?

分类输出通常是概率分布,交叉熵更直接优化真实类别概率,MSE 梯度可能更弱且收敛不如交叉熵。

梯度爆炸或消失怎么办?

可以用合适初始化、归一化、残差连接、梯度裁剪和激活函数选择来缓解。