归一化与标准化


本文选自: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

你可能感兴趣的:(深度学习笔记,深度学习,机器学习,人工智能)