BatchNorm的“平替”?TUM提出KNConvNets,消除CNN中BatchNorm的缺点
©PaperWeekly 原创 · 作者 | Jason
研究方向 | 计算机视觉
现有的深度卷积神经网络(CNN)结构通常依赖于 batch normalization(BatchNorm)来有效地训练模型。BatchNorm 显著提高了模型性能,但在小 batch 情况下性能较差。为了克服这一局限性,作者提出了核归一化(kernel normalization)和核归一化卷积层,并将它们作为主要的构建块集成到核归一化卷积网络(KNConvNets)中。
作者实现了与最先进的 CNN(如 ResNet 和DenseNet)相对应的 KNConvNets,同时放弃了 BatchNorm 层。通过大量实验,作者表明,KNConvNet 在准确性和收敛速度方面始终优于 BatchNorm,GroupNorm 和 LayerNorm,同时保持了有竞争力的计算效率。
论文地址:
Motivation
然而,BatchNorm 的缺点是打破了 batch 中样本之间的独立性。这是因为 BatchNorm 沿着 batch 维度执行归一化(上图 a),因此,与给定样本相关的归一化值取决于 batch 中其他样本的统计信息。因此,BatchNorm 的有效性在很大程度上取决于 batch 大小。使用大 batch,BatchNorm 可以更准确地估计 batch 统计信息,从而有效地训练模型,但会产生较高的内存开销。另一方面,对于小 batch,BatchNorm 会导致模型精度的大幅降低。
为了克服 BatchNorm 的局限性,引入了与 Batch 无关的归一化层,包括层归一化(LayerNorm),instance 归一化(InstanceNorm),group 归一化(GroupNorm),位置归一化(PositionalNorm),局部上下文归一化(LocalContextNorm)。它们分别对 batch 中的每个样本执行归一化。虽然这些层没有 BatchNorm 的缺点,但它们通常无法实现与 BatchNorm 相当的性能。因此,尽管存在上述限制,BatchNorm 仍然是大多数深层 CNN 中的归一化层。这促使作者开发与 batch 无关但与 BatchNorm 一样有效的替代层。
本文的主要贡献是提出了两个新的 batch 处理无关层,称为核归一化(KernelNorm)层和核归一化卷积(KNConv)层,以进一步提高深层 CNN 的性能。KernelNorm 类似于池化层,但是它对核窗口指定的元素进行归一化,而不是计算元素的平均值/最大值(如上图g)。
为了解决这个问题,作者提出了一种计算效率高的 KNConv,其中卷积的输出使用归一化单位的均值和方差进行调整。这样,就不需要对元素进行归一化,从而将计算时间提高了几个数量级。以 KernelNorm 和计算效率高的 KNConv 为主要构建块,作者实现了与流行的 CNN(包括 VGG、DenseNet 和 ResNet)相对应的核归一化卷积网络(KNConvNets)。
方法
3.1 KernelNorm
KernelNorm 将核大小 、步长、填充 和 dropout 概率 p 作为超参数。如果指定了 padding,则用零填充输入。KernelNorm 沿着通道、高度和宽度维度执行规范化,但与 batch 维度无关(上图g)。KernelNorm 沿着通道、高度和宽度维度执行归一化,但独立于 Batch 维度。
式中,p 是 dropout 概率, 是 dropout 操作,U 是归一化单位, 是 dropped-out 单位, 和 区域和 dropout 单位的平均值和方差, 是 normalized 单位。KernelNorm 在训练过程中引入了正则化效果,通过使用对 dropped-out 单元 ′ 计算的统计量,归一化原始单元 U 的元素,提高了模型的泛化能力。
KernelNorm 的第一个归一化单元被限定到由高度和宽度维度中的对角线点(1,1)和 指定的窗口。下一个归一化单元的坐标是 和 ,这是通过沿宽度尺寸滑动窗口 个元素获得的。如果在宽度维度中没有足够的元素用于 kernel,则窗口将在高度维度中按 个元素滑动,并重复上述过程。
KernelNorm 是一个 batch 无关的局部归一化层,但与现有的归一化层有两个不同之处:
1)输入中的原始元素与输出中的归一化元素之间不一定存在一一对应关系。如果步长小于 kernel 大小,则某些输入元素会在输出中使用多次。对于大于 kernel 大小的步长值,在归一化过程中会完全忽略一些输入元素。因此,KernelNorm 的输出形状可能与输入形状不同;
2)KernelNorm 不需要移位和缩放可训练参数,因为它的输出通常提供给卷积或平均池层,而不是非线性激活函数,如 ReLU。
3.2 KNConv
如上图所示,KNConv 是 KernelNorm 和传统卷积层的组合。它采用与卷积层完全相同的输入通道数 、输出通道数 、核大小 、步长 和 padding 以及 dropout 概率 p 作为超参数。KNConv 首先将带有核大小、步长、padding 和 dropout 概率 p 的 KernelNorm 应用于输入张量。
接下来,它将具有 通道、 滤波器、内核大小、步长 和零填充的卷积层应用于 KernelNorm 的输出。也就是说,卷积层的内核大小和步长值都与 KernelNorm 中使用的核大小相同。
实验
总结
BatchNorm 显著提高了模型的收敛速度和精度,但对于较小的 batch 大小,其性能较差。尽管 GroupNorm 和 LayerNorm 等与 batch 无关的替代方案不会受到这些缺陷的影响,但它们无法与 BatchNorm 的性能竞争。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
微信扫码关注该文公众号作者