第 8 题:样本权重重采样 vs 损失函数加权,在梯度更新层面的等价性条件?
题目
样本权重重采样 vs 损失函数加权,在梯度更新层面的等价性条件?
完整讲解
一、两种做法
- 损失加权:对样本 $i$ 的损失乘权重 $w_i$,总损失 $\mathcal{L} = \sum_i w_i \ell_i$,梯度 $\nabla = \sum_i w_i \nabla \ell_i$。
- 重采样:按权重改变样本被采到的概率(如 $p_i \propto w_i$),每轮 batch 内样本 $i$ 出现次数期望 $\propto w_i$,梯度为 $\sum_{i \in \mathrm{batch}} \nabla \ell_i$(未再乘 $w_i$),但期望等于「按 $w_i$ 加权的梯度」当采样概率正比于 $w_i$ 时。
二、等价性条件
- 期望意义:若重采样时样本 $i$ 被采中的概率 $p_i \propto w_i$,且每个被采样本的梯度贡献为 $\nabla \ell_i$(不再乘权),则一个 epoch 内梯度的期望 = $\sum_i p_i \nabla \ell_i \propto \sum_i w_i \nabla \ell_i$,与「损失加权后求梯度」在期望上一致(差一个全局常数倍,可由学习率吸收)。
- 等价条件:
1)采样概率严格正比于 $w_i$(如带放回采样);
2)batch 内每个样本只计一次梯度(不按出现次数再乘);
3)比较的是同一优化步数/同一数据扫过次数下的期望梯度。
满足时,期望梯度等价;单步方差可能不同(重采样带来采样方差)。
三、实现差异与注意点
- 加权:实现简单,每个 batch 固定,梯度就是 $\sum_i w_i \nabla \ell_i$;但若 $w_i$ 差异大,可能梯度方差大,需配合梯度裁剪或小学习率。
- 重采样:过采样少数类时,同一少数样本会重复出现,等价于给该样本更大「有效权重」;欠采样多数类时,多数样本被看到次数少,等价于降权。与加权在期望上可一致,但 epoch 内看到的样本集合不同(重采样会重复/缺失),一个 epoch 的更新次数可能不同,需注意「一个 epoch」的定义(按样本数还是按 batch 数)。
面试要点
- 能说清:重采样使样本出现概率 $\propto w_i$、梯度不乘权时,期望梯度 $\propto \sum_i w_i \nabla \ell_i$,与损失加权等价(期望意义)。
- 等价条件:采样概率正比权重、每样本梯度贡献不重复乘权、在期望与同一数据扫过下比较。
- 实现:加权简单;重采样有采样方差,且 epoch 定义需统一。
记忆要点
- 加权:$\mathcal{L}=\sum w_i \ell_i$;重采样:采中概率 $\propto w_i$,梯度 $\nabla \ell_i$,期望 $\propto \sum w_i \nabla \ell_i$。
- 等价:期望梯度一致,当采样概率正比 $w_i$、每样本梯度不重复乘权时成立。
- 差异:加权实现简单;重采样有采样方差,epoch 内样本分布不同。