【学习笔记】Devils in BatchNorm
Devils in BatchNorm Facebook人工智能实验室研究工程师吴育昕 该视频主要讨论Batch Normalization的一些坑。 Batch Norm后还有一个channel-wise仿射,是一个退化的卷积层,这里不讨论。 Batch Norm的训练和测试具有不一致性,测试时vanilla BN方法是更新一个exponential moving average,也就是图中的 \(u_{EMA}\) 为什么可以训练和测试不一致? DropOut和Data Augmentation也是这样——可以理解为训练是在测试的基础上加噪声,测试是训练的平均。 不过噪声本身也是一种正则化。 BN什么时候会失败? 当 \(\mu_{EMA}\) , \(\sigma_{EMA}\) 不接近 \(\mu_{B}\) 时, \(\sigma_{B}\) 当EMA计算不合理 当$ \mu_{B} \(,\) \sigma_{B}$不稳定时 - 不能很好地近似 a)数据不稳定 b)不稳定的模型 EMA计算不合理的情况 \[\mu_{E M A} \leftarrow \lambda \mu_{E M A}+(1-\lambda) \mu_{B}, \sigma_{E M A}^{2} \leftarrow \cdots \] \(\lambda\) 过小,EMA \(\lambda\)