在这个视频和这个答案中,提到批量标准化不允许任何特定隐藏层的参数的均值和方差随着前一层节点值的变化而变化太大。假设我们有一个这样的网络(取自视频):
当我们改变训练神经网络的小批量时,输入特征相对于不同小批量的分布可能是不同的。据我了解,这称为协变量移位。协变量偏移的一个问题是,输入特征相对于验证集示例的分布可能与训练集不同(参考链接视频中的黑猫/彩色猫示例),并且分布在不同的小批量中是不同的。
因此,由于将输入层连接到下一层的学习权重取决于输入特征分布,因此学习权重将随着每个小批量而相应变化。因此,下一个隐藏层中的激活也将在不同的 mini-batch 中分布不同。
第一个问题:到目前为止我的理解是否正确?
现在我可以理解,只有当小批量(或训练集和验证集之间)的分布基本相同但参数不同时,限制输入特征或隐藏层激活的均值和方差才能解决协变量偏移问题(不是神经网络参数——我的意思是和标准差)。粗略地说,如果不同 mini-batch 的输入特征分布是正常的,但参数(mean 和 stddev)不同,那么 batch normalization 似乎没问题。
问题 2:但是,如果输入特征在一个 mini-batch 中具有正态分布,而在另一个 mini-batch 中具有完全不同的分布呢?我看不出限制均值和方差会有什么帮助。也许我忽略了一些关键假设。
问题 3:为什么限制隐藏层分布的变化会加速收敛?