1.总结:
作用:
- 归一化后加快了梯度下降求最优解的速度;
- 归一化有可能提高精度。
- 防止梯度消失或爆炸
常见:
- 最值归一化。比如把最大值归一化成1,最小值归一化成-1;或把最大值归一化成1,最小值归一化成0。适用于本来就分布在有限范围内的数据。
- 均值方差归一化,一般是把均值归一化成0,方差归一化成1。适用于分布没有明显边界的情况,受outlier影响也较小。
举例:
- BatchNorm2d最常用于卷积网络中(防止梯度消失或爆炸),设置的参数就是卷积的输出通道数:
-
Batch Normalization对每个batch中同一维特征做normalization。
self.conv=nn.Sequential(
nn.Conv2d(in_channel, out_channel, kernel_size, stride,padding, bias=False),
nn.BatchNorm2d(out_channel),
nn.ReLU(inplace=True)
),
几种不同的归一化: https://www.jianshu.com/p/48cb47c670fc
Batch Normalization:对每个batch中同一维特征做normalization。
Layer Normalization:针对单个训练样本的所有维度做normalization,不用保存mini_batch的均值和方差。BN中同一个batch的样本中的不同特征经过处理后分布在不同的区间,而LN则是将同一个样本中的特征处理到同一区间中。比如对于图片提取的三维特征图,经过BN后每层特征图的分布是不相同的,但是经过LN后每层特征图的分布是相同。
Instance Normalization: instance norm和batch norm的区别只有一点不同,那就是BN是作用于一个batch,而IN则是作用于单个样本。也就是说,BN是同一个batch中所有样本的同一层特征图抽出来一起求mean和variance,而IN只是对一个样本中的每一层特征图求mean和variance。这么说的话似乎instance norm只对3D数据有用,也就是只对图像特征有用。(如果是一维特征,那么用了instance norm结果还是自身,因为参与计算的值只有1个
Weight Normalization:不是利用数据特性对数据进行变换,而是利用网络参数W的特性对数据进行变换。
BN、LN和IN都是用输入数据的方差对输入数据进行scale,而WN则是用模型参数W的欧氏范式对输入数据进行scale。
Group Normalization
相当于对每张特征图进行区域划分,对每一部分求mean和variance。
4种normalization方法对比图

解释:
-
加快:
下图椭圆表示目标函数(如损失函数)的等高线(横截面),两个坐标轴代表两个特征。目标函数:

本文总结了归一化和标准化的作用,包括加快梯度下降速度和提高精度。介绍了常见的归一化方法,如最值归一化和均值方差归一化,并举例说明了BatchNorm2d、Layer Normalization、Instance Normalization和Weight Normalization等。内容还探讨了何时使用归一化和标准化,以及哪些机器学习算法不需要归一化,如决策树。
最低0.47元/天 解锁文章
4930

被折叠的 条评论
为什么被折叠?



