深度学习四种不同归一化方式对比
作者:互联网
深度学习中数据的维度⼀般是【N, H, W, C】格式,其中 N 是batch size,H、W是特征图的⾼和宽,C是特征图的通道数。如下图所⽰,
是 BN、LN、IN 与 GN 作⽤⽅式的对⽐图。
下⾯分别来解释这四种不同的归⼀化⽅式:
- 批归⼀化BN:对批次⽅向(N)做归⼀化
- 层归⼀化LN:在通道⽅向(C)上做归⼀化,主要对RNN作⽤明显
- 实例归⼀化IN:在⼀个图像像素内做归⼀化,主要⽤于风格化迁移
- 组归⼀化GN:在通道⽅向上分组,然后再每个组内做归⼀化
组归⼀化的优点:组归⼀化将通道分成组,并在每组内计算归⼀化的均值和⽅差。组归⼀化的计算与批量⼤⼩⽆关,所以其准确度在各种批量⼤⼩都很稳定。
10、BN 和 WN ⽐较
WN(Weight Normalization)是权重归⼀化,它与BN都属于参数重写的⽅法,只是采⽤的⽅式不同。WN 是对⽹络权值 W进⾏归⼀化, BN 是对⽹络某⼀层输⼊数据进⾏归⼀化。
WN 相⽐ BN 的优势在于:
- 通过重写深度学习⽹络的权重W的⽅式来加速深度学习⽹络参数收敛,没有引⼊ minbatch 的依赖,适⽤于 RNN、LSTM⽹络;⽽BN 不能直接⽤于RNN,原因在于:(1) RNN 处理的 Sequence 是变长的;2) RNN 是基于时间状态 计算,如果直接使⽤ Batch Normalization 处理,需要保存每个时间状态下mini btach 的均值和⽅差,效率低且占内存)。
- Batch Normalization 基于⼀个 mini batch 的数据计算均值和⽅差,⽽不是基于整个 Training set 来做,相当于进⾏梯度计算式引⼊噪声。因此,Batch Normalization 不适⽤于对噪声敏感的强化学习、⽣成模型。相反,Weight Normalization 对通过标量g和向量v对权重W进⾏重写,重写向量v是固定的,因此,基于 Weight Normalization 的 Normalization 可以看做⽐ Batch Normalization 引⼊更少的噪声。
- 不需要额外的存储空间来保存 mini batch 的均值和⽅差,同时实现 Weight Normalization 时,对深度学习⽹络进⾏正向信号传播和反向梯度计算带来的额外计算开销也很⼩。因此,要⽐采⽤ Batch Normalization 进⾏ normalization 操作时,速度快。
11、归⼀化和标准化的联系与区别
- 联系:都能取消由于量纲不同引起的误差;都是⼀种线性变换;都是对向量按照⽐例压缩再进⾏平移。
- 区别:归⼀化是将样本的特征值转换到同⼀量纲下,把数据映射到 [0, 1] 或 [-1, 1] 区间内,区间放缩法是归⼀化的⼀种。标准化是将样本转换成标准正太分布,使其和整体样本分布相关,每个样本点都能对标准化产⽣影响。
标签:RNN,WN,BN,归一化,Batch,四种,深度,组归,Normalization 来源: https://www.cnblogs.com/end/p/16394450.html