论文Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift的学习记录。
一、提出问题:Internal covariate shift内部协变量转移
由于前面层的参数会发生变化,导致后面每层输入的分布在训练过程中同样会发生变化。这将要求较低的学习率和仔细的参数初始化减慢了训练,并且使具有饱和非线性的模型训练起来非常困难,使训练深度神经网络更加复杂。
1、随机梯度下降(SGD)
这里的SGD指的是所说的小批量梯度下降,SGD优化网络参数Θ来最小化损失。考虑大小为m的小批量数据来近似损失函数关于参数的梯度。
优点:简单有效。使用小批量数据既能大大减小收敛的迭代次数,同时使收敛的结果更加接近使用整个数据集梯度下降的效果。
缺点:需要仔细调整模型的超参数,特别是优化中使用的学习速率以及模型参数的初始值。但由于每层的输入都会受到前面所有层参数的影响,当网络变得更深时,网络参数的微小变化就会被放大。
出现问题:层输入分布的变化会使训练更复杂
对于网络计算,我们可以用以下公式表示通过学习参数Θ1,Θ2以最小化损失ℓ。我们可以将F1(u,Θ1)看作输入x送入子网络,这样当x的分布是固定时,训练Θ2是很容易收敛的;但当x的分布不断变换时,Θ2必须重新调整来补偿x分布的变化。
同理,对于梯度下降公式可以等价于输入为x的单独网络F2。