序言:上一讲中我们谈到了Batch_size的选取以及其大小对模型效果的影响,那么在这一讲中,我们来总结一下归一化。
1.为什么要归一化
2.归一化的优点
3.归一化有哪些类型
4.局部响应归一化作用
一、为什么要归一化
1.避免神经元饱和。就是当神经元的激活在接近 0 或者 1 时会饱和,在这些区域,梯度几乎为 0,这样,在反向传播过程中,局部梯度就会接近 0,这会有效地“杀死”梯度。
2.保证输出数据中数值小的不被吞食。加快收敛。
3.数据中常存在奇异样本数据,奇异样本数据存在所引起的网络训练时间增加,并可能引起网络无法收敛,为了避免出现这种情况及后面数据处理的方便,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于 0 或与其均方差相比很小。
二、归一化的优点
1.提升模型的收敛速度
如下图,x1的取值为0-2000,而x2的取值为1-5,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢,相比之下,右图的迭代就会很快
2.提升模型的精度
归一化的另一好处是提高精度,这在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,上图中x2的取值范围比较小,涉及到距离计算时其对结果的影响远比x1带来的小,所以这就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同。
三、归一化有哪些类型
1.线性归一化
适用范围:比较适用在数值比较集中的情况。
缺点:如果 max 和 min 不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。
2.标准差归一化
经过处理的数据符合标准正态分布,即均值为 0,标准差为 1
- 非线性归一化
适用范围:经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。
四、局部响应归一化的作用
这里,提供一个参考链接局部归一化详解,作者在这里详细介绍局部归一化。
最后推荐大家看看这篇博客为什么要做特征归一化/标准化