理解MAE损失梯度震荡
MAE损失梯度震荡完整示例
重点关注:求导公式,几乎只依赖x,误差e只有在大于0和小于0时会变成±1, 梯度大小恒定,不随误差缩小。
一、统一符号与基础公式
1. 变量定义
| 符号 | 含义 |
|---|---|
| xxx | 模型输入特征 |
| WWW | 网络权重 |
| y^\hat{y}y^ | 模型预测值 |
| yyy | 真实标签 |
| eee | 误差,e=y^−ye=\hat{y}-ye=y^−y |
| LLL | MAE损失,$L= |
| η\etaη | 学习率 |
2. 核心公式
- 线性预测(简化无偏置 b=0b=0b=0):
y^=W⋅x\hat{y}=W \cdot xy^=W⋅x - 链式梯度求导:
dLdW=dLde⋅dedy^⋅dy^dW\frac{dL}{dW}=\frac{dL}{de} \cdot \frac{de}{d\hat{y}} \cdot \frac{d\hat{y}}{dW}dWdL=dedL⋅dy^de⋅dWdy^
- dedy^=1\displaystyle \frac{de}{d\hat{y}}=1dy^de=1
- dy^dW=x\displaystyle \frac{d\hat{y}}{dW}=xdWdy^=x
- e>0e>0e>0:dLde=1\displaystyle \frac{dL}{de}=1dedL=1;e<0e<0e<0:dLde=−1\displaystyle \frac{dL}{de}=-1dedL=−1
- 权重更新规则:
Wnew=Wold−η⋅dLdWW_{new}=W_{old} - \eta \cdot \frac{dL}{dW}Wnew=Wold−η⋅dWdL
二、案例1:输入x=1x=1x=1,学习率η=0.1\eta=0.1η=0.1(不会跨过零点)
固定已知参数
真实标签 y=5y=5y=5,初始权重 Wold=5.2W_{old}=5.2Wold=5.2
步骤1:计算初始预测值与初始误差
y^old=Wold⋅x=5.2×1=5.2eold=y^old−y=5.2−5=0.2 \begin{align} \hat{y}_{old} &= W_{old} \cdot x = 5.2 \times 1 = 5.2 \\ e_{old} &= \hat{y}_{old} - y = 5.2 - 5 = 0.2 \end{align} y^oldeold=Wold⋅x=5.2×1=5.2=y^old−y=5.2−5=0.2
eold=0.2>0e_{old}=0.2>0eold=0.2>0
步骤2:计算梯度
dLdW=1×1×1=1 \frac{dL}{dW} = 1 \times 1 \times 1 = 1 dWdL=1×1×1=1
步骤3:更新权重
Wnew=Wold−η⋅dLdW=5.2−0.1×1=5.1 W_{new} = W_{old} - \eta \cdot \frac{dL}{dW} = 5.2 - 0.1 \times 1 = 5.1 Wnew=Wold−η⋅dWdL=5.2−0.1×1=5.1
步骤4:计算更新后的预测值与新误差
y^new=Wnew⋅x=5.1×1=5.1enew=5.1−5=0.1 \begin{align} \hat{y}_{new} &= W_{new} \cdot x = 5.1 \times 1 = 5.1 \\ e_{new} &= 5.1 - 5 = 0.1 \end{align} y^newenew=Wnew⋅x=5.1×1=5.1=5.1−5=0.1
误差由 0.20.20.2 缩小至 0.10.10.1,向0靠近,未跨零点。
再迭代一轮
e=0.1>0e=0.1>0e=0.1>0,梯度仍为1
W=5.1−0.1=5.0,e=5.0−5=0 W = 5.1 - 0.1 = 5.0,\quad e=5.0-5=0 W=5.1−0.1=5.0,e=5.0−5=0
刚好到达最优误差0。
三、案例2:输入x=3x=3x=3,学习率η=0.1\eta=0.1η=0.1(一步跨过零点,产生震荡)
固定已知参数
真实标签 y=5y=5y=5,初始权重 Wold=1.7333W_{old}=1.7333Wold=1.7333
步骤1:初始预测、初始误差
y^old=Wold⋅x=1.7333×3=5.2eold=5.2−5=0.2>0 \begin{align} \hat{y}_{old} &= W_{old} \cdot x = 1.7333 \times 3 = 5.2 \\ e_{old} &= 5.2 - 5 = 0.2>0 \end{align} y^oldeold=Wold⋅x=1.7333×3=5.2=5.2−5=0.2>0
步骤2:计算梯度
dLdW=1×1×3=3 \frac{dL}{dW}=1 \times 1 \times 3 = 3 dWdL=1×1×3=3
步骤3:更新权重
Wnew=Wold−η⋅dLdW=1.7333−0.1×3=1.4333 W_{new}=W_{old} - \eta \cdot \frac{dL}{dW}=1.7333 - 0.1 \times 3 = 1.4333 Wnew=Wold−η⋅dWdL=1.7333−0.1×3=1.4333
步骤4:计算新预测、新误差
y^new=1.4333×3=4.3enew=4.3−5=−0.1 \begin{align} \hat{y}_{new} &= 1.4333 \times 3 = 4.3 \\ e_{new} &= 4.3 - 5 = -0.1 \end{align} y^newenew=1.4333×3=4.3=4.3−5=−0.1
现象:误差从正数 0.20.20.2 直接变为负数 −0.1-0.1−0.1,跨过最优零点。
下一轮迭代(梯度符号反转,反向拉回)
当前 e=−0.1<0e=-0.1<0e=−0.1<0,dLde=−1\dfrac{dL}{de}=-1dedL=−1
dLdW=−1×1×3=−3 \frac{dL}{dW}=-1 \times 1 \times 3=-3 dWdL=−1×1×3=−3
Wnext=1.4333−0.1×(−3)=1.7333 W_{next}=1.4333 - 0.1 \times (-3)=1.7333 Wnext=1.4333−0.1×(−3)=1.7333
权重回到初始值,误差变回 0.20.20.2,形成来回横跳、损失持续震荡。
核心总结
- MAE梯度大小由输入特征 xxx 固定,不会随误差变小自动缩小;
- 输入特征数值较大时,单次更新修正幅度超过当前误差,会直接冲过误差=0的最优零点;
- 跨过零点后梯度符号翻转,下一轮反向更新,误差在0两侧反复跳动,无法稳定精准拟合;
- MSE无此问题:梯度随误差同步缩小,越靠近最优值更新步长越平缓,收敛稳定。
更多推荐




所有评论(0)