机器学习的学习过程基于概率和统计学,学习到的知识能用于其它数据的一个基本假设是独立同分布(IID),因此把数据变成同分布是很有必要的。
1. 权重归一化
1.1 作用
权重归一化不归一化特征,而是归一化权重。假设卷积核的向量形式是w,感受野的向量形式是x,偏置为b。一个神经元的输出可以表示为:
y=ϕ(w⋅x+b).
把w写成w=∣∣v∣∣g⋅v。因为gw=e,所以∣∣w∣∣=g。这样,权值向量w的模长就是g,方向就是∣∣v∣∣v。模长和方向不再耦合,利于加速收敛。
1.2 梯度
训练的过程中要更新g和v,所以要求损失函数对它们的导数。
损失函数关于g的导数:
∇gL=∇wL⋅∣∣v∣∣∇wL⋅v.
损失函数关于v的导数:
∇vL=∇wL⋅∂v∂w=∇wL⋅g⋅(∣∣v∣∣2v′∣∣v∣∣−v∣∣v∣∣′)=∇wL⋅g(∣∣v∣∣1−∣∣v∣∣2v⋅∣∣v∣∣v)=∇wL⋅g⋅∣∣v∣∣1−∇wL⋅g⋅∣∣v∣∣v⋅∣∣v∣∣2v=∣∣v∣∣g⋅∇wL−∣∣v∣∣2g⋅∇gL⋅v
2. 特征归一化
特征归一化方法有BN、LN、IN、GN、SN。
2.1 归一化方法
特征归一化就是:
-
求输入数据input_data的均值μ、方差σ:
{μi=m1∑k∈Sixk,σi=m1∑k∈Si(xk−μi)2+ϵ.
其中ϵ是一个值较小的常量,Si是用于计算均值和标准差的像素集合,m是集合的大小。
-
把input_data通过线性变换σinput_data−μ化为均值为0、方差为1的标准正态分布:
x^i=σi1(xi−μi).
-
使用可学习的参数γ和β,把input_data化为均值为β、方差为γ2的正态分布:
yi=γx^i+β.
均值和方差分别是:
{E(yi)=γE(x^i)+β=β,D(yi)=γ2D(x^i)=γ2.
所以归一化后的特征y∼N(β,γ2).
2.2 归一化区别
四种特征归一化实现方法的区别在于Si不同,蓝色的特征Si被归一化为相同的均值和方差:
- BN中Si={k∣kC=iC}:C坐标相同的像素在一块归一化。
- LN中Si={k∣kN=iN}:N坐标相同的像素在一块归一化。
- IN中Si={k∣kN=iN,kC=iC}:N坐标和C坐标都相同的像素在一块归一化。
- GN中Si={k∣kN=iN,⌊C/GkC⌋=⌊C/GiC⌋}:N坐标相同的像素分为G组,组内的像素在一块归一化。
组数G是一个预定义的超参数。GC是每组的通道数。⌊⋅⌋代表向下取整。最右的图中C=6,G=2,kC在{0,1,2,3,4,5}中取值时⌊C/GkC⌋的值为{0,0,0,1,1,1},iC同理,因此把N坐标相同的像素分为2(G)组,每组的通道数是3(C/G)。