在**样本极度不平衡**的情况下(比如正负样本 500:1),通过**简单地把损失函数权重调到 500:1**,确实“看起来合理”,但在实际深度学习训练中**往往会引发一系列问题**。下面我从**优化层面、模型行为、泛化风险和工程可控性**几个维度系统讲清楚。
---
当某一类样本权重极大时:
[
L = w_{pos} L_{pos} + w_{neg} L_{neg}, \quad w_{pos} \gg w_{neg}]
会导致:
* **正样本的梯度被放大 500 倍**
* 优化方向几乎完全由极少数样本决定
* 每个 batch 中只要出现 1 个正样本,就“主宰”反向传播
**结果:**
* loss 曲线剧烈震荡
* 学习率变得极其敏感
* 很容易出现 NaN / Inf
> ⚠️ 你可能会发现:
> “batch size、lr 原来挺稳的,一加权重就不收敛了”
---
正样本本来就少:
* 有的 batch **没有正样本 → 梯度≈0**
* 有的 batch **1 个正样本 → 梯度×500**
👉 梯度分布高度不平稳,优化器(Adam / SGD)**难以估计真实方向**
---