深度学习归一化简介
我们假定数据输入的图像是[patch, width, height, channel]
- N:patch
- C:channel
BN(批归一化):
- 求出x的均值
- 求出x的方差
- 利用正态分布的标准化,使其服从标准正态分布
- 但是破坏原来的数据分布,所以需要第四步进行重构,gama 和 beta 是可以学习到的参数;当gama = std, beta = mean 就会恢复到原来的分布
优点:
- 对参数解空间进行了约束,相当于进行了正则,可以取消Dropout 和 正则项
- 加快网络的收敛:归一化数据收敛快,如果每一批数据都不是同一个分布,则网络需要适应新的分布
- 破坏数据的分布,能一定程度防止过拟合
- 减少了对学习率的要求
- 可以不在使用局部归一化,因为BN本身就是归一化网络
缺点:
- 对batch_size 有依赖,当size较大时有不错的效果,所以有下面的变种
IN(instance norm):在一个channel内做归一化
GN(Group norm): 先对channel进行分组,在对每个组进行归一化
LN(layer norm): 对所有的chanel进行归一化