🐳批量归一化
2021-11-30
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 

为什么需要批量归一化?

  1. 数据预处理的方式通常对最终结果产生巨大影响,直观地说,标准化可以很好地与优化器配合使用,因为它可以将参数的量级进行统一
  1. 对于典型的多层感知机或卷积神经网络。当训练时,中间层中的变量(例如,多层感知机中的仿射变换输出)可能具有更广的变化范围:不论是沿着从输入到输出的层,跨同一层中的单元,或是随着时间的推移,模型参数的随着训练更新变幻莫测。 批量规范化的发明者非正式地假设,这些变量分布中的这种偏移可能会阻碍网络的收敛。 直观地说,我们可能会猜想,如果一个层的可变值是另一层的100倍,这可能需要对学习率进行补偿调整。
  1. 更深层的网络很复杂,容易过拟合。 这意味着正则化变得更加重要
 
notion image
 
 
 
损失出现在最后,后面的层训练较快
数据在最底部:
  • 底部的层训练较慢
  • 底部层一变化所有都得跟着变
  • 最后的那些层需要重新学习多次
  • 导致收敛变慢
我们可以在学习底部层的时候避免变化顶部层吗?
 
批量规范化应用于单个可选层(也可以应用到所有层)
  • 作用在
    • 全连接层和卷积层输出上,激活函数前
    • 全连接层和卷积层输入上
  • 对全连接层,作用在特征维
  • 对卷积层,作用在通道维
 

原理

在每次训练迭代中,首先规范化输入,即通过减去其均值并除以其标准差,其中两者均基于当前小批量处理。 接下来应用比例系数和比例偏移。 正是由于这个基于批量统计的标准化,才有了批量规范化的名称。
注意:如果尝试使用大小为1的小批量应用批量规范化,将无法学到任何东西。 这是因为在减去均值之后,每个隐藏单元将为0。 所以,只有使用足够大的小批量,批量规范化这种方法才是有效且稳定的。 在应用批量规范化时,批量大小的选择可能比没有批量规范化时更重要。
 
从形式上来说,用表示一个来自小批量的输入,批量规范化:
是小批量的样本均值, 小批量的样本标准差
方差估计值中添加一个小的常量以确保永远不会尝试除以零,即使在经验方差估计值可能消失的情况下也是如此
应用标准化后,生成的小批量的平均值为0和单位方差为1。
由于单位方差(与其他一些魔法数)是一个主观的选择,因此我们通常包含拉伸参数(scale)偏移参数(shift),它们的形状与相同。是需要与其他模型参数一起学习的参数。
 
事实证明,这是深度学习中一个反复出现的主题。 由于尚未在理论上明确的原因,优化中的各种噪声源通常会导致更快的训练和较少的过拟合:这种变化似乎是正则化的一种形式。 在一些初步研究中, 将批量规范化的性质与贝叶斯先验相关联。 这些理论揭示了为什么批量规范化最适应50∼100范围中的中等批量大小的难题。
另外,批量规范化层在”训练模式“(通过小批量统计数据规范化)和“预测模式”(通过数据集统计规范化)中的功能不同。 在训练过程中,我们无法得知使用整个数据集来估计平均值和方差,所以只能根据每个小批次的平均值和方差不断训练模型。 而在预测模式下,可以根据整个数据集精确计算批量规范化所需的平均值和方差
 
 
notion image
 

从零实现

 
 

简明实现

可以直接使用深度学习框架中定义的BatchNorm
 
 
 

争议

直观地说,批量规范化被认为可以使优化更加平滑。 然而,我们必须小心区分直觉和对我们观察到的现象的真实解释。 回想一下,我们甚至不知道简单的神经网络(多层感知机和传统的卷积神经网络)为什么如此有效。 即使在暂退法和权重衰减的情况下,它们仍然非常灵活,因此无法通过常规的学习理论泛化保证来解释它们是否能够泛化到看不见的数据。
在提出批量规范化的论文中,作者除了介绍了其应用,还解释了其原理:通过减少内部协变量偏移(internal covariate shift)。 据推测,作者所说的“内部协变量转移”类似于上述的投机直觉,即变量值的分布在训练过程中会发生变化。 然而,这种解释有两个问题: 1、这种偏移与严格定义的协变量偏移(covariate shift)非常不同,所以这个名字用词不当。 2、这种解释只提供了一种不明确的直觉,但留下了一个有待后续挖掘的问题:为什么这项技术如此有效?
随着批量规范化的普及,“内部协变量偏移”的解释反复出现在技术文献的辩论,特别是关于“如何展示机器学习研究”的更广泛的讨论中。 Ali Rahimi在接受2017年NeurIPS大会的“接受时间考验奖”(Test of Time Award)时发表了一篇令人难忘的演讲。他将“内部协变量转移”作为焦点,将现代深度学习的实践比作炼金术。 他对该示例进行了详细回顾,概述了机器学习中令人不安的趋势。 此外,一些作者对批量规范化的成功提出了另一种解释:在某些方面,批量规范化的表现出与原始论文中声称的行为是相反的。
然而,与机器学习文献中成千上万类似模糊的说法相比,内部协变量偏移没有更值得批评。 很可能,它作为这些辩论的焦点而产生共鸣,要归功于目标受众对它的广泛认可。 批量规范化已经被证明是一种不可或缺的方法。它适用于几乎所有图像分类器,并在学术界获得了数万引用。
  • PyTorch
  • GoogLeNet 含并行连结的网络ResNet 残差网络
    目录