机器学习的学习过程基于概率和统计学,学习到的知识能用于其它数据的一个基本假设是独立同分布(IID),因此把数据变成同分布是很有必要的。
A.权重归一化: WN
不归一化特征,而是归一化权重。
假设卷积核的向量形式是,感受野的向量形式是,偏置为。一个神经元的输出可以表示为:。把权值写成:,因为,所以。这样,权值向量的模长就是,方向就是。模长和方向不再耦合,可以加速收敛。
损失函数关于的导数:
。
损失函数关于的导数:
。
B.特征归一化: BN、LN、IN、GN、SN
归一化操作
特征归一化就是:
- 求输入数据input_data的均值、方差。
- 把input_data通过线性变换化为均值为0、方差为1的标准正态分布。
- 使用可学习的参数和,把input_data化为均值为、方差为的正态分布。
BN、LN、IN、GN这一系列方法的作用可以表示为:(1),其中是某层中的特征,是一个索引。对2维图像来说,是一个按顺序索引特征的4维向量,其中是batch轴,是通道轴,和是高度和宽度轴。
和是均值和标准差,计算方式是:,,其中是一个值较小的常量,是用于计算均值和标准差的像素集合,是集合的大小。
是标准正态分布。归一化后的特征就是:,其中和是可学习的变量,其均值,方差。所以归一化后的特征。
实现区别
四种特征归一化实现方法的区别在于不同。
- BN中:坐标相同的像素在一块归一化。
- LN中:坐标相同的像素在一块归一化。
- IN中:坐标和坐标都相同的像素在一块归一化。
- GN中:坐标相同的像素分为组,组内的像素在一块归一化。组数是一个预定义的超参数。是每组的通道数。代表向下取整。图1最右的图中,,在中取值时的值为,同理,因此把坐标相同的像素分为2()组,每组的通道数是3()。
如公式(1),BN、LN、IN学习各通道的线性变换以补偿表征能力的可能损失:,其中和是可训练的尺度和偏移。
作用区别
BN
BN是唯一依赖batch size的归一化方法,在batch size较小时误差急剧增大。由于内存限制,检测、分割、视频识别这类任务的batch size一般都较小,所以BN就不合适。
对训练集这个大样本做归一化最符合归一化的目的,但难以实现。一个batch size是大样本中的一个小样本,于是对每个小样本归一化就成为一个可行的选择,所以BN是最常用的方法。当各batch size同分布时,它们较小的分布差异会增加健壮性,但分布差异大时一个batch size就难以代表整个样本的分布,所以训练前需要shuffle。
GN
GN是LN和IN的复合,性能优于LN和IN。如图2,GN对batch size不敏感,因此可以用于batch size较小的情况。
SN
虽然LN、IN对batch size不敏感,但其归一化能力较弱,当batch size较大时不如BN。因此SN组合LN、IN、BN,让网络学习权重参数以自动选择归一化方法:batch size越小,SN中BN的权重系数越小,IN和LN的权重系数越大;batch size越大,SN中BN的权重系数越大,IN和LN的权重系数越小。