Batch Normalization

1. 背景

先来看看为什么要归一化操作吧。 归一化之前和归一化之后的代价函数示意图,左边的最归一化之前,右边为归一化之后,最中间的点为我们要优化的最优点(图片来自Andrew最新deeplearning.ai改善深层神经网络课程的1.9 Normalizing inputs)。

我们可以看到,在归一化之前,不同的特征的取值范围可能有所不同,这样带来的不好的地方就是在进行梯度下降的时候,学习率不能够设置太大,否则会造成明显波动,导致长时间不能收敛的情况。但是经过归一化之后,无论我们从哪一个位置开始,都能够方便地找到最小值,这样就更加容易优化,从而加速我们的训练过程。

2. Covariate Shift

论文”Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”关于”Covariate Shift”的定义如下:

We define Internal Covariate Shift as the change in the distribution of network activations due to the change in network parameters during training.

稍加解释,即分布的变化。怎么说呢? 假设我们现在已经使用黑猫的图片训练了一个分类器来识别猫的图片,但现在假如有一些白猫的图片,虽然都是猫,但是因为训练数据并没有白猫的图片,那么分类器大概率识别不出来,这就是分布的变化。也即Covariate Shift问题。 接下来来看看神经网络中的Covariate Shift问题吧。 首先,下图为一个神经网络,为了表示(画图)方便,没有全连接箭头来表示,记住层与层之前都是全连接即可,

接下来仅考虑第三个隐层:

3. Batch Normalization

顾名思义,就是一个归一化的操作。如何做呢? 首先和归一化输入类似,先标准化:

公式就是这样,让我们从一个神经元来看看它是怎么操作的吧。

4. BN正则化

我们知道神经网络的正则化可以使用dropout和l2 norm,在Ng的神经网络调参课程3.6 Why does BN work 中提到的另外一点就是BN可以看成是这一种正则化。 因为每一次我们使用BN的时候,都仅仅是使用了当前的mini-batch的均值和方差。但是每一个mini-batch肯定会存在一些噪音,这就相当于在训练的时候为每一个隐层单元增加了一些噪音(试想Denoising Autoencoder不就是在训练的时候增加一些噪音来使得训练的模型更加鲁棒吗) 当mini-batch的越大,就相当于看的信息越完整,这个时候的噪音也就越小,正则化的效果也就会降低。

5. 预测阶段的BN

参考资料: 1. Andrew Ng deeplearning.ai深度学习课程 2. Ioffe S, Szegedy C. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[J]. 2015:448-456.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JavaEdge

吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归

To establish notation for future use, we’ll use

9430
来自专栏机器学习算法原理与实践

谱聚类(spectral clustering)原理总结

    谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时...

11030
来自专栏云时之间

深度学习与TensorFlow:理解卷积神经网络

在之前我们学习好搭建全连接神经网络后,今天让我们继续学习去搭建卷积神经网络,并且来使用mnist进行手写数字识别.

27950
来自专栏WD学习记录

机器学习深度学习 笔试面试题目整理(1)

梯度消失:这本质上是由于激活函数的选择导致的, 最简单的sigmoid函数为例,在函数的两端梯度求导结果非常小(饱和区),导致后向传播过程中由于多次用到激活函数...

48530
来自专栏杨熹的专栏

为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例

里面对 BGD,SGD,MBGD,Adagrad,Adadelta,RMSprop,Adam 进行了比较, 今天对其中的 mini-batch 梯度下降 作进...

17210
来自专栏数据科学与人工智能

【知识】正则化与过拟合

小编邀请您,先思考: 过拟合怎么理解?如何解决? 正则化怎么理解?如何使用? 在机器学习中有时候会出现过拟合,为了解决过拟合问题,通常有两种办法,第一是减少样本...

26480
来自专栏计算机视觉与深度学习基础

解读Batch Normalization

目录 目录 1-Motivation 2-Normalization via Mini-Batch Statistics 测试 BN before or af...

214100
来自专栏人工智能LeadAI

图像学习-HOG特征

好久没写东西了,由于楼主换了个城市工作,发现工作量蹭蹭的上来了,周末又喜欢出去觅食,导致没学习很久,今天准备水一篇来翻译一下如何理解HOG(Histogram ...

55450
来自专栏机器人网

令人印象深刻的10张机器学习经典图片

入门机器学习, 总有几张图片, 令人印象深刻. 以下是十张经典图片, 图解机器学习, 非常有 启发性:

12240
来自专栏大数据挖掘DT机器学习

机器学习中,正则化是怎么回事?

在机器学习中最大的危险就是过拟合,为了解决过拟合问题,通常有两种办法,第一是减少样本的特征(即维度),第二就是我们这里要说的“正则化”(又称为“惩罚”,pen...

31560

扫码关注云+社区

领取腾讯云代金券