批处理规范化层
批处理归一层对每个通道的所有观测数据分别进行小批处理。为了加快卷积神经网络的训练并降低对网络初始化的敏感性,在卷积层和非线性层之间使用批量归一化层,如ReLU层。
归一化后,该层用一个可学习的比例因子对输入进行缩放γ然后用一个可学习偏移量平移它β.
创建一个批处理规范化层。层
= batchNormalizationLayer
创建一个批处理规范化层并设置可选层
= batchNormalizationLayer (名称,值
)TrainedMean
,TrainedVariance
,ε
,参数和初始化,学习率和正则化,的名字
属性使用一个或多个名称-值对。例如,batchNormalizationLayer('名称',' batchnorm ')
创建名称为的批处理规范化层“batchnorm”
.
批归一化操作将元素归一化x我首先计算平均值μB和方差σB2在空间,时间和观测维度上为每个通道独立。然后,计算归一化激活为
在哪里ϵ是在方差很小时提高数值稳定性的常数。
为了考虑均值和单位方差为零的输入对于后续批处理归一化操作不是最优的可能性,批处理归一化操作使用转换进一步转移和缩放激活
其中偏移量β还有比例因子γ是在网络训练期间更新的可学习参数。
为了在训练后用网络进行预测,批量归一化需要一个固定的均值和方差来归一化数据。这个固定的平均值和方差可以从训练后的训练数据中计算出来,或者在训练期间使用运行统计计算来近似。
如果“BatchNormalizationStatistics”
培训选项为“移动”
,然后软件在训练期间使用运行估计值逼近批归一化统计数据,并在训练后设置TrainedMean
而且TrainedVariance
属性分别为移动估计的均值和方差的最新值。
如果“BatchNormalizationStatistics”
培训选项为“人口”
,然后在网络训练结束后,软件再次遍历数据并设置TrainedMean
而且TrainedVariance
属性分别为从整个训练数据集计算出的平均值和方差。
该层使用TrainedMean
而且TrainedVariance
在预测过程中对输入进行归一化。
约菲、谢尔盖和克里斯蒂安·塞格迪。“批处理归一化:通过减少内部协变量移位加速深度网络训练。”预印本,2015年3月2日提交。https://arxiv.org/abs/1502.03167。
trainNetwork
|trainingOptions
|reluLayer
|convolution2dLayer
|fullyConnectedLayer
|groupNormalizationLayer
|layerNormalizationLayer