归一化与标准化
Posted K同学啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归一化与标准化相关的知识,希望对你有一定的参考价值。
本文选自:🔗365天深度学习训练营 (免费辅导
、免费咨询
)
🥂 数据缩放
归一化
与标准化
是特征缩放的两种形式,其作用是:
- 使不同量纲的特征处于同一数值量级,减少方差大的特征的影响,使模型更准确。
- 加快学习算法的收敛速度。
归一化是将数据“拍扁”统一到区间(仅由极值决定),而标准化是更加“弹性”和“动态”的,和整体样本的分布有很大的关系
归一化
:把数变为(0,1)之间的小数;缩放仅仅跟最大、最小值的差别有关。标准化
:将数据按比例缩放,使之落入一个小的特定区间;缩放与每个点都有关
🍧 归一化(Normalization)
一般来说用的是min-max归一化,缩放到0-1之间,即:
对于图片来说,由于max是255,min是0,也就是直接除以255就可以完成归一化。
代码实现:
# 将像素的值标准化至0到1的区间内。
train_images, test_images = train_images / 255.0, test_images / 255.0
参考实例: 🔗深度学习100例-卷积神经网络(CNN)实现mnist手写数字识别 | 第1天
🔔 为什么要进行归一化:
不归一化处理时 ,如果特征值较大时,梯度值也会较大,特征值较小时,梯度值也会较小。在模型反向传播时,梯度值更新与学习率一样,当学习率较小时,梯度值较小会导致更新缓慢,当学习率较大时,梯度值较大会导致模型不易收敛,因此为了 使模型训练收敛平稳
,对图像进行归一化操作,把不同维度的特征值调整到相近的范围内,就可以采用统一的学习率加速模型训练
🍦 标准化(Standardization)
将数据变换成均值为0,标准差为1的分布(但不一定为正态):
代码实现:
transforms.Normalize(mean = (0.485, 0.456, 0.406), std = (0.229, 0.224, 0.225))
🔔 为什么要进行标准化:
提升模型的泛化能力。
本文参考链接:
- https://www.zhihu.com/question/20455227
- https://www.zhihu.com/question/20467170
- https://blog.csdn.net/qq_40714949/article/details/115267174
以上是关于归一化与标准化的主要内容,如果未能解决你的问题,请参考以下文章