深度学习中的Normalization
本文最后更新于:2022年7月21日 下午
深度学习中的Normalization
[TOC]
Normalization翻译为规范化
或者归一化
,不是标准化。
深度学习模型喜欢独立同分布的数据,独立即n维特征中每一维之间都没有相关性,同分布即特征的每一维都具有相同的均值和方差。在深度学习网络中,因为网络很深,如果数据在某一层开始有偏移,则网络加深会导致其加剧(Internal Covariate Shift, or ICS),而Normalization能够减缓这个问题。
Batch Normalization
BN就是将一个batch内的数据进行归一化,先求得均值和方差,然后对每个元素进行归一化:,下面那个是防止除以0。
之后,使用可学习参数变换为原始的分布:。这一步是为了保证模型表达能力不因为Normalization而下降,变化后数据均值为,方差为。
使用BN时,得注意batch小时这个方法效果可能不佳。
对于图片N C H W
的维度,BN统计的是N H W
的均值和方差,对于每一个通道分开计算。
Layer Normalization
对于图片N C H W
的维度,LN统计的是C H W
的均值和方差,和batch size就没有关系了。
参考文献:
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!