ICLR20 - 旷视研究院提出MABN:解决小批量训练BN不稳定的问题

本次先大体翻译MABN的论文,有机会我会把YOLO中的BN换成MABN在小批次上试试效果。

目录

  • 背景
  • 介绍
  • 批归一化中的统计量
  • 滑动平均批归一化
  • 实验
  • 论文地址

背景

  • 批度归一化(Batch Normalization/BN已经成为深度学习领域最常用的技术之一,但他的表现很受批次(Batch Size)限制小批次样本的批统计量(Batch Statistics)十分不稳定,导致训练的收敛速度比较慢,推理性能不好
  • 因此,很多改良的BN方法被提出,大体可以分成这两类:
  1. 通过纠正批统计量来还原BN在样本批次量充足时的性能,但是这些办法全都无法完全恢复BN的性能
  2. 使用实例级的归一化 (instance level normalization),使模型免受批统计量的影响。这一类方法可在一定程度上恢复BN在小批次上的性能,但是目前看来,实例级的归一化方法不能完全满足工业需求,因为这类方法必须在推理过程(inference)引入额外的非线性运算,大幅增加执行开销。
  • 这里也提到一点,因为原始的BN是在全部训练之后使用整个训练数据的统计量,而不是批统计量,因此BN是一个线性算子,可以再推理中融入卷积层。
  • 由下图1可知,实例级归一化的计算时间几乎是普通BN的两倍,因此在小批次训练中恢复BN的性能而不是推理的过程中引入任何一个非线性运算是一项困难但必要的任务
    图1:不同归一化方法的对比

简介

  • 在这篇论文中作者首次发现了在归一化的前向传播(Forward Propagation/FP)和反向传播(Backward Propagation/BP)中,不只有2个,实际上有4个批统计量参与进来。额外的与BP有关的两个批统计量的时候与模型的梯度有关,饰演了正则化模型的角色。
  • 作者做了一个实验发现(见下图2),由于批次小的缘故,在BP过程中梯度相关联的批统计量的方差甚至比大家都知道的批统计量(feature map的均值和方差)更大,所以作者认为与梯度相关联的批统计量的不稳定性是BN在小批次训练表现不好的关键原因。
    图2:批统计量随训练次数变化的趋势
  • 根据上述的分析,作者提出了一种全新的归一化的方法,叫做滑动平均批归一化(Moving Average Batch Normalization/MABN)。MABN无需在推理过程中引入任何非线性操作就可以完全解决小批次问题。MABN的核心思想是用滑动平均统计量moving average statistics/MAS)代替批统计量归一化输出的feature map
  • 本文用不同类型的滑动平均统计量分别代替参与FP和BP的批统计量,并进行理论分析以证明其合理性。但是在实践中发现,直接使用滑动平均统计量代替批统计量无法使模型训练收敛。
  • 作者将训练不收敛问题归因于训练不稳定引起的梯度爆炸。为避免训练爆炸,本文通过减少批统计量的数量,中心化卷积核的权重(weight centralization),并采用重归一化策略(Renormalization)来改进原始批归一化的形式。本文还从理论上证明了已修改的归一化形式比原始归一化形式更稳定

批归一化中的统计量

回顾普通BN

  • 首先假设BN的输入X \in R^{B×p},其中B代表batch size,p代表feature map的数量,所以被归一化的feature map Y在迭代次数t上被计算为:
    Y = \frac{X-\mu B_t}{\sigma B_t} (1)
  • \mu B_t\sigma ^2_{B_t}是样本的均值和方差,另外参数\gamma,\beta用于对Y进行缩放和偏移:
    Z = Y\gamma + \beta(3)
  • 由于这个线性变换的操作默认所有归一化都会添加,所以以下讨论将会省略。
  • 在局部梯度\frac{\partial L}{\partial Y}\bracevert_{\theta _t,B_t}给定的情况下,其中L代表损失,\theta _t代表迭代t次需要学习的全部参数,那么局部梯度\frac{\partial L}{\partial X}\bracevert_{\theta _t,B_t}可以计算为:
    \frac{\partial L}{\partial X}\bracevert_{\theta _t,B_t}=\frac{1}{\sigma B_t}(\frac{\partial L}{\partial Y}\bracevert_{\theta _t,B_t}-gB_t - Y \cdot\Psi B_t)(4)
  • 其中 \cdot 代表逐元素乘积,gB_t,\Psi B_t的计算为:
    gB_t = \frac{1}{B}\sum_b \frac{\partial L}{\partial Y_{b,:}}\bracevert_{\theta _t,B_t},\Psi B_t=\frac{1}{B}\sum _bY_{b,: \cdot \frac{\partial L}{\partial Y}\bracevert_{\theta _t,B_t}}(5)
  • 由等式(5)可以知道,在BP的过程中,gB_t,\Psi B_t也属于参与BN BP的批统计量,但是以前的研究从没讨论过这两个统计量。

批统计量的不稳定性

  • 根据原始BN的论文,理想的归一化方法是使用基于整个训练数据集的期望和方差进行特征归一化操作:
    Y = \frac{X-EX}{\sqrt{Var[X]}}(6)
  • 但是,在随机梯度下降SGD(Stochastic Gradient Descent/SGD)的情形下使用全数据集的统计量是不切实际的。因此,原始BN使用随机梯度训练中的小批次(mini-batch)计算统计量以代替全数据统计量。这种简化使得将均值和方差纳入反传图中成为可能。
  • 批统计量像\mu B_t,\sigma^2_{B_t}是一种蒙特卡洛估计(Monte Carlo Estimatior),它的方差与样本数量成反比,因此,当批次较小时,批统计量的方差会急剧增加。图2给出了在ImageNet训练期间,ResNet-50的一个具体的归一化层的批统计量的变化。
  • 批统计量包含总体的均值和方差随着模型更新而变化的信息,以便随着权重更新正确地正则化模型梯度,从而在个体样本变化与总体变化的平衡方面发挥重要作用。因此,精确估算总体统计量(population statistics)十分关键
  • 小批次统计量的不稳定性从两个方面降低了模型的性能:
  1. 小批次统计量的不稳定性使训练不稳定,导致收敛缓慢
  2. 小批次统计量的不稳定性会在批统计量和总体统计量之间产生巨大差异
  • 由于模型训练使用批统计量,评估模型使用总体统计量,因此批统计量和总体统计量之间的差异将导致训练和推理不一致,使得模型在评估集上的表现不好。

滑动平均批归一化

  • 根据上述讨论,我们知道恢复BN性能的关键是解决小批次统计量的不稳定性。因此作者给出了两种解决方案:
  1. 使用滑动平均统计量(MAS)估计总体统计量.
  2. 通过改进归一化形式减少统计量的数量。

滑动平均统计量代替批统计量

  • 当批次较小时,MAS似乎可以替代批统计量来估计总体统计量。本文考虑两类MAS:简单移动平均统计量(Simple Moving Average Statistics/SMAS)和指数移动平均统计量(Exponetial Moving Average Statistics/EMAS)。下述定理1表明,在一般条件下,SMAS和EMAS比批统计量更稳定:


    image
  • 定理1既证明了MAS比批统计量有更小的方差,也证明了在统计量收敛的时候(式(8))如果动量\alpha比较大,EMAS优于SMAS,方差更低。FP统计量满足收敛性,所以用SMAS代替FP统计量;BP统计量并不一定满足这一条件,所以BP统计量仅用SMAS代替。理论分析之外,实验还有力地表明MAS替代小批次统计量的有效性。此外作者也说明了本质上BN就是用EMA代替FP批统计量。

通过减少统计量的数量稳定归一化

  • 为了进一步稳定小批次的训练过程,作者考虑用EX^2而不是EXVar(X)归一化特征图X,归一化等式可以修改为:
    Y = \frac{X}{\chi B_t},Z=Y \cdot \gamma + B_t(15)
  • 这样修改的好处也是显然的:在FP和BP期间只剩下两个批统计量,那么相比于原来的归一化形式,改进后的归一化层的不稳定性降低,本文也用了定理2给出修改理论的证明:


    image
  • 但是,因为消去了中心化feature的过程,模型的性能有所降低,我们可以通过增加中心化权重,逆补中心化feature map的损失。

实验

  • 作者在ImageNet、COCO数据集上都进行了测试,并且取得了不错的效果。

ImageNet

表1:ImageNet分类任务中ResNet-50 top-1错误率对比
  • 其中Regular代表batch_size=32,small表示batch_size为2。作者还做了ablation study,验证了MABN每个部分的作用:


    表2:红框里的结果是批次为正常大小时的结果(batch size=32);蓝框里的结果是批次特别小时的结果(batch size=2)
  • 可以看到只有MABN在小批次的情况下达到跟正常批次BN的表现。

COCO

  • 本文按照Mask R-CNN的基本设定在COCO数据集上进行实验,并比较了MABN和它的baseline在不同训练情形下的表现。


    image

论文地址

Towards Stablizing Batch Statistics in Backward Propagation of Batch Normalization

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容