神经网络中的批量归一化Batch Normalization(BN)原理总结

技术交流QQ群:1027579432,欢迎你的加入!

0.概述

  • 深层神经网络存在的问题(从当前层的输入的分布来分析):在深层神经网络中,中间层的输入是上一层神经网络的输出。因此,之前的层的神经网络参数的变化会导致当前层输入的分布发生较大的差异。在使用随机梯度下降法来训练神经网络时,每次参数更新都会导致网络中每层的输入分布发生变化。越是深层的神经网络,其输入的分布会改变的越明显。
  • 解决方法(归一化操作):从机器学习角度来看,如果某层的输入分布发生了变化,那么其参数需要重新学习,这种现象称为内部协变量偏移。为了解决内部协变量偏移问题,就要使得每一层神经网络输入的分布在训练过程中要保持一致。最简单的方法是对每一层神经网络都进行归一化操作,使其分布保持稳定

1.批量归一化

  • 协变量偏移介绍
    • 在传统机器学习中,一个常见的问题是协变量偏移。协变量是一个统计学概念,是可能影响预测结果的统计变量。在机器学习中,协变量可以看作是输入。一般的机器学习算法都要求输入在训练集和测试集上的分布式相似的。如果不满足这个假设,在训练集上学习到的模型在测试集上的表现会比较差,如下图所示:
      协变量偏移
  • BN原理介绍
    • 批量归一化方法是一种有效的逐层归一化的方法,可以对神经网络中任意的中间层进行归一化操作。对一个深层神经网络来说,令第l层的净输入为\mathbf{z}^{(l)}, 经过激活函数后的输出是\mathbf{a}^{(l)},即
      \mathbf{a}^{(l)}=f\left(\mathbf{z}^{(l)}\right)=f\left(W \mathbf{a}^{(l-1)}+\mathbf{b}\right)
      其中,f(\cdot)是激活函数,W和b是权重和偏置参数。
    • 为了减少内部协变量偏移问题,就要使得净输入\mathbf{z}^{(l)}的分布一致,比如都归一化到标准正态分布。虽然归一化操作可以应用在输入\mathbf{a}^{(l-1)}上,但其分布性质不如\mathbf{z}^{(l)}稳定。因此,在实践中归一化操作一般应用在仿射变换之后,在下一次激活函数之前。利用数据预处理方法对\mathbf{z}^{(l)}进行归一化,相当于每一层都进行一次数据预处理,从而加速收敛速度。但是,逐层归一化需要在中间层进行操作,要求效率比较高,因此复杂度比较高的白话方法就不太合适。为了提高归一化效率,一般使用标准归一化,将净输入\mathbf{z}^{(l)}的每一维都归一到标准正态分布。
      \hat{\mathbf{z}}^{(l)}=\frac{\mathbf{z}^{(l)}-\mathbb{E}\left[\mathbf{z}^{(l)}\right]}{\sqrt{\operatorname{var}\left(\mathbf{z}^{(l)}\right)+\epsilon}}
      其中,\mathbb{E}\left[\mathbf{z}^{(l)}\right]\operatorname{var}\left(\mathbf{z}^{(l)}\right)是当前参数下,\mathbf{z}^{(l)}的每一维度在整个训练集上的期望和方差。因为目前主要的训练方法是基于Mini-Batch的随机梯度下降算法,所以准确地计算\mathbf{z}^{(l)}的期望和方差是不可行的。因此,\mathbf{z}^{(l)}的期望和方差通常用当前小批量Mini-Batch样本集的均值和方差近似估计。
    • 给定一个包含K个样本的小批量样本集合,第l层神经元的净输入\mathbf{z}^{(1,l)},....,\mathbf{z}^{(K,l)}的均值和方差为:
      \begin{aligned} \mu_{\mathcal{B}} &=\frac{1}{K} \sum_{k=1}^{\mathrm{N}} \mathbf{z}^{(k, l)} \\ \sigma_{\mathcal{B}}^{2} &=\frac{1}{K} \sum_{k=1}^{K}\left(\mathbf{z}^{(k, l)}-\mu_{\mathcal{B}}\right) \odot\left(\mathbf{z}^{(k, l)}-\mu_{\mathcal{B}}\right) \end{aligned}
    • 对净输入\mathbf{z}^{(l)}的标准归一化会使得其取值集中到0附近,如果使用sigmoid激活函数时,这个取值区间刚好是接近线性变换区间,从而减弱了神经网络非线性变换的性质。因此,为了使归一化操作不对网络的表示能力造成负面影响,可以通过一个附加的缩放和平移变换改变取值区间
      \hat{\mathbf{z}}^{(l)}=\frac{\mathbf{z}^{(l)}-\mu_{\mathcal{B}}}{\sqrt{\sigma_{\mathcal{B}}^{2}+\epsilon}} \odot \gamma+\beta\triangleq \mathrm{BN}_{\gamma, \beta}\left(\mathbf{z}^{(l)}\right)
      其中,\gamma\beta分别表示缩放和平移的参数向量。从最保守的角度考虑,可以通过标准归一化的逆变换来使得归一化的变量可以被还原为原来的值。即:当\gamma=\sqrt{\sigma_{\mathcal{B}}^{2}}\beta=\mu_{\mathcal{B}}时,\hat{\mathbf{z}}^{(l)}=\mathbf{z}^{(l)}
    • 批量归一化操作可以看作是一个特殊的神经网络层,该层是加在每一层非线性激活函数之前,即:
      \mathbf{a}^{(l)}=f\left(\mathbf{B} \mathbf{N}_{\gamma, \beta}\left(\mathbf{z}^{(l)}\right)\right)=f\left(\mathbf{B} \mathbf{N}_{\gamma, \beta}\left(W \mathbf{a}^{(l-1)}\right)\right)
      其中,因为批量归一化本身具有平移变换,因此非线性变换W \mathbf{a}^{(l-1)}就不再需要偏置参数b。
    • 注意:每次小批量样本的\mu_{\mathcal{B}}\sigma_{\mathcal{B}}^{2}是净输入\mathbf{z}^{(l)}的函数,而不是常量。因此,在计算参数梯度时,需要考虑\mu_{\mathcal{B}}\sigma_{\mathcal{B}}^{2}的影响。当训练完成时,用整个数据集上的均值\mu和方差\sigma^{2}来分别替代每次小批量样本的\mu_{\mathcal{B}}\sigma_{\mathcal{B}}^{2}。在实际中,\mu_{\mathcal{B}}\sigma_{\mathcal{B}}^{2}也可以使用移动平均来计算。

2.参考资料

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