机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,它是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。
而BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。
为什么深度神经网络随着网络深度加深,训练起来越困难,收敛越来越慢?这是个在DL领域很接近本质的好问题。
很多论文都是解决这个问题的,比如ReLU激活函数,再比如Residual Network,BN本质上也是解释并从某个不同的角度来解决这个问题的。
covariate shift的概念:如果ML系统实例集合<X,Y>中的输入值X分布老是变,这不符合IID假设。
对于深度学习这种包含很多隐藏层的网格结构,在训练过程中,因为各层参数在变,所以每个隐层都会临covariate shift 的 问题,也就是在训练过程中,隐层的输入分布老是变来变去,这就是所谓的”Internal Covatiate Shift“。Internal 指的是深层网络的隐层,是发生在网络内部的事情&#x