每日一问之 Batch Normalization

Batch Normalization 的好处是什么?

这么久了,早就忘记了 Batch Normalization 的具体内容了,只依稀记得是有点正则化的效果的。之前学习吴恩达课程的时候,采用的是手写笔记的方式,但是我并没有把它带到学校来,无法及时查看及复习。这就是手写笔记的弊端。所以,今天特意再次整理 Batch Normalization 的相关知识,如下几点所示:

  • 什么是 Batch Normalization ?
  • 为什么使用 Batch Normalization ?

什么是 Batch Normalization

从名字上可以看出,是一种批(batch)归一化的操作。就像对输入层的输入特征进行归一化一样,BN 也可以加速模型学习的过程。具体操作是:通常在使用 SGD 算法的时候,在 mini-batch 中计算每一隐藏层输入的均值和方差。即在每个 mini-batch 中,在对每个隐藏层的输入 x 或者 z 使用激活函数之前(学术界有过争论,但通常是在使用激活函数之前进行操作)进行 Normalize 操作,如下图所示。

其中 γ \gamma γ,$\beta $,都是从模型中学习到的参数。如果当 $\gamma ^{(k)} = \sqrt{Var\left [ x^{(k)} \right ]} , , \beta {(k)}=E[x{(k)}]$时,可以恢复原始的(激活)值。在反向传播中的计算会如下所示:

为什么使用 Batch Normalization

使用 Batch Normalization 也是为了解决训练深层神经网络的一些弊端。

消除 Internal Covariate Shift

在训练神经网络的过程中会存在 Internal Covariate Shift 的问题。

在 Batch Normalization 的论文中,作者将 Internal Covariate Shift 问题定义为由于训练期间网络参数的变化导致的网络激活分布的变化。在 LeCun,Wiesler & Ney 等人的论文中可以知道,如果对神经网络的输入进行白化(whitened,zero means and unit variances)及去相关操作,那么可以消除 Internal Covariate Shift 的不良影响,从而加快神经网络的训练。而 Batch Normalization 的操作和上述类似,也能起到消除 Internal Covariate Shift 的作用。

防止梯度消失

众所周知,在使用 sigmoid 和 tanh 等激活函数的时候,如果输入过大,将会造成梯度消失的后果。而在使用激活函数之前。对输入进行归一化,则将特征进行了缩减,使其分布集中在非线性激活区域。如下图,可以很直观的看出,该图来自莫烦的文章,强烈建议大家去读,讲解的很直观明了。

起到轻微的正则化效果

在 Batch Normalization 的过程中,在每个 mini-batch 中,在神经网络的每一层计算均值和方差。这个过程只是在该 mini-batch 中计算,而不是在整个数据集上,所以均值和方差会带来一些噪音,以及在后面的计算中也会带来一些噪音。这和 Dropout 的操作很相似。Dropout 增加噪音的过程是,它使隐藏单元,以一定的概率乘以 0,以一定的概率乘以 1,这样后面的隐藏单元就不会过分的依赖前面的单元。和 Dropout 类似,BN 往隐藏层代入了噪音,也使得后面的单元不依赖前面的单元。所以,BN 也能够起到轻微的正则化作用。

P.S: Andrew Ng 在其课程中建议,可以同时使用 Batch Normalization 和 Dropout ,这样会带来更强的正则化效果。但是不要把 BN 的这个小作用当做很重要的 trick 来使用。因为 Batch Normalization 的真正作用是归一化每一激活层。

参考

[1]. Batch Normalization Paper

[2]. 深度学习中 Batch Normalization为什么效果好?

[3]. 莫烦 - 什么是批标准化 (Batch Normalization)

[4]. 吴恩达-深度学习课程

P.S:文中有错欢迎指出,互相学习。以及欢迎关注我的公众号 ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值