下面来详细解析选择性批归一化(Selective Batch Normalization, SBN)涉及的公式,并对每个参数符号进行解释。
为了帮助你更清晰地理解,我们将标准批归一化(Standard BN)和**选择性批归一化(SBN)**的公式进行对比讲解。
1. 标准 BN 的问题回顾
在标准BN中,对于一个包含 $n$ 张图像的混合 Batch(既有干净也有损坏),其特征 $\tilde{x}$ 的归一化过程是统一的:
$$ \tilde{x} = \gamma \cdot \frac{\tilde{x} - \mu_{\mathcal{B}}}{\sqrt{\sigma_{\mathcal{B}}^2 + \epsilon}} + \beta $$这里的 $\mu_{\mathcal{B}}$ 和 $\sigma_{\mathcal{B}}^2$ 是所有图像(干净+损坏)混在一起计算出来的。这正是问题的根源——损坏图像污染了统计量。
2. 选择性 BN 的公式解析
为了解决上述问题,论文提出了选择性批归一化(SBN)。它在计算归一化统计量时,根据输入图像的来源(干净或某种特定损坏)进行了选择。
论文中的公式如下:
$$ \tilde{x} = \gamma \cdot \frac{\tilde{x} - E[\mathcal{X}_C^b]}{\sqrt{Var[\mathcal{X}_C^b] + \epsilon}} + \beta, \quad x \in \mathcal{X}_C^b $$ $$ \tilde{x} = \gamma \cdot \frac{\tilde{x} - E[\mathcal{X}_j^b]}{\sqrt{Var[\mathcal{X}_j^b] + \epsilon}} + \beta, \quad x \in \mathcal{X}_j^b $$参数符号详解
1. 核心变量 $x$ 与 $\tilde{x}$
- $x$:输入图像。
- $\tilde{x}$:特征。指图像 $x$ 在经过卷积层后、尚未进入分类器之前的特征图。
2. 数据集符号(关键理解点)
- $\mathcal{X}^b$:代表当前正在处理的这一个 Mini-Batch(小批量) 中的所有数据。
- $\mathcal{X}_C^b$:代表当前 Mini-Batch 中干净图像的集合。这里的上标 $b$ 表示“属于当前这个 Batch”,下标 $C$ 表示“Clean(干净)”。
- $\mathcal{X}_j^b$:代表当前 Mini-Batch 中经过第 $j$ 种损坏的图像集合。下标 $j$ 表示第 $j$ 种损坏类型(例如噪声 $j=1$,模糊 $j=2$)。
3. 统计量符号
- $E[\mathcal{X}_C^b]$:干净图像集合的均值。它只计算当前 Batch 中那些干净图像的特征 $\tilde{x}$ 的平均值。
- $Var[\mathcal{X}_C^b]$:干净图像集合的方差。只计算干净图像的特征的方差。
- $E[\mathcal{X}_j^b]$ 和 $Var[\mathcal{X}_j^b]$:分别指针对第 $j$ 种损坏图像计算的特征均值和方差。
- $\epsilon$:一个极小的常数(例如 $10^{-5}$),防止分母为零,保证数值稳定性。
4. 可学习参数
- $\gamma$ (Gamma):缩放参数。这是BN层固有的可学习参数,用于恢复模型的表达能力。归一化后的数据分布会被限制,$\gamma$ 可以放大或缩小它。
- $\beta$ (Beta):平移参数。这也是可学习参数,用于对归一化后的数据进行偏移。
3. 选择性 BN 的更新规则
除了前向计算,BN 还需要维护全局的统计量(供推理时使用)。论文对此也做了选择性处理。
传统BN的更新(含污染数据):
$$ \mu \leftarrow \frac{1}{n}\sum_{i=1}^{n}x, \quad x \in \mathcal{X}^b $$选择性BN的更新(只选干净数据):
$$ \mu \leftarrow \frac{1}{n}\sum_{i=1}^{n}x, \quad x \in \mathcal{X}_C^b $$ $$ \sigma^2 \leftarrow \frac{1}{n}\sum_{i=1}^{n}(x - \mu)^2, \quad x \in \mathcal{X}_C^b $$参数符号解释(更新规则)
- $\mu$ 和 $\sigma^2$:这是 BN 层最终学习到的全局均值和全局方差,用于推理阶段。在选择性BN中,它们只由干净图像 ($\mathcal{X}_C^b$) 来更新。
- $n = |\mathcal{X}_C^b|$:表示当前 Batch 中干净图像的数量。
- 箭头 ($\leftarrow$):表示更新操作,通常通过滑动平均的方式(如 $\mu \leftarrow momentum \cdot \mu + (1-momentum) \cdot \mu_{batch}$)实现。
总结
选择性BN的本质是通过数据来源选择不同的归一化路径:
- 前向计算时:如果 $x$ 是干净的,就减去干净均值 $E[\mathcal{X}_C^b]$;如果 $x$ 是噪声损坏的,就减去噪声均值 $E[\mathcal{X}_j^b]$。
- 统计量更新时:只使用干净数据 $x \in \mathcal{X}_C^b$ 来更新用于最终推理的全局参数。
这样设计的结果是:主分类器在训练和推理时始终面对的是符合“干净数据分布”的特征,从而保证了精度。