必威体育Betway必威体育官网
当前位置:首页 > IT技术

BN(Batch Normalization) 原理与使用过程详解

时间:2019-06-13 17:45:14来源:IT技术作者:seo实验室小编阅读:83次「手机版」
 

bn

论文名字:Batch Normalization: Accelerating Deep Network Training by  Reducing Internal Covariate Shift

论文地址:https://arxiv.org/abs/1502.03167

BN被广泛应用于深度学习的各个地方,由于在实习过程中需要修改网络,修改的网络在训练过程中无法收敛,就添加了BN层进去来替换掉LRN层,网络可以收敛。现在就讲一下Batch Normalization的工作原理。

BN层和卷积层,池化层一样都是一个网络层。

首先我们根据论文来介绍一下BN层的优点。

1)加快训练速度,这样我们就可以使用较大的学习率来训练网络。

2)提高网络的泛化能力。

3)BN层本质上是一个归一化网络层,可以替代局部响应归一化层(LRN层)。

4)可以打乱样本训练顺序(这样就不可能出现同一张照片被多次选择用来训练)论文中提到可以提高1%的精度。

下面我们就讲一下BN层是如何实现的:

从论文中给出的伪代码可以看出来BN层的计算流程是:

1.计算样本均值。

2.计算样本方差。

3.样本数据标准化处理。

4.进行平移和缩放处理。引入了γ和β两个参数。来训练γ和β两个参数。引入了这个可学习重构参数γ、β,让我们的网络可以学习恢复出原始网络所要学习的特征分布。

下面我们讨论一下样本是如何得到的

Batch Normalization顾名思义,mini-batch就是我们每次训练的Batch_size。

从上图卷积过程可以得出一张5*5的图片经过卷积核3*3的卷积之后得到一张3*3的特征图。特征图就会包含了9个特征值,这9个特征值就是我们上面所提到的样本。假设我们的batch-size设为m,那么就会有m*9个特征值传到BN层里面作为样本来训练参数γ和β。

在网络训练中以batch-size作为最小单位来不断迭代。每当有新的batch-size进入到网络里面就会产生新的γ和β。也就是说我们训练过程中要生成  图片总量/batch-size 组参数。

图像卷积的过程中,通常是使用多个卷积核,得到多张特征图,对于多个的卷积核需要保存多个的γ与β。

BN层的整体流程如下图:

输入:待进入激活函数的变量 

输出: 

1.这里的K,在卷积网络中可以看作是卷积核个数,如网络中第n层有64个卷积核,就需要计算64次。 

 需要注意,在正向传播时,会使用γ与β使得BN层输出与输入一样。 

2.在反向传播时利用γ与β求得梯度从而改变训练权值(变量)。 

3.通过不断迭代直到训练结束,求得关于不同层的γ与β。

4.不断遍历训练集中的图片,取出每个batch_size中的γ与β,最后统计每层BN的γ与β各自的和除以图片数量得到平均直,并对其    做无偏估计直作为每一层的E[x]与Var[x]。 

5.在预测的正向传播时,对测试数据求取γ与β,并使用该层的E[x]与Var[x],通过图中11:所表示的公式计算BN层输出。 

注意,在预测时,BN层的输出已经被改变,所以BN层在预测的作用体现在此处。

参考文献:Batch Normalization: Accelerating Deep Network Training by  Reducing Internal Covariate Shift

https://blog.csdn.net/fate_fjh/article/details/53375881

https://blog.csdn.net/hjimce/article/details/50866313

相关阅读

Java中的字符串分割 StringTokenizer类 的使用方法

StringTokenizer是字符串分隔解析类型,属于:java.util包。 StringTokenizer是java中object类的一个子类,继承自 Enumeration接口。此

上亿人使用的QQ空间萌宠形象,是怎么设计出来的?

QQ空间在去年推出了全新“萌宠”玩法,上线以来,获得了不少用户的喜爱,同时也收到了大量忠实用户们对想要养小鸡小猪等的心声。为了给

MySQL中tinytext、text、mediumtext和longtext等各个

一、字符串类型类型范围说明 Char(N) [ binary]N=1~255 个字节binary :分辨大小写固定长度std_name cahr(32) not nullVarChar(N)

Mac下微信6.7.3版数据库破解过程

前言 最近我在阅读微信数据库最新的解密方式,使用C++代码解密微信加密数据库信息!文章的时候,对破解微信数据库产生了浓厚的兴趣,所以

证券公司信息化4_最核心的IT系统是什么?柜台系统的两

转自:https://stanleyyan.wordpress.com/2010/10/06/%E8%AF%81%E5%88%B8%E5%85%AC%E5%8F%B8%E4%BF%A1%E6%81%AF%E5%8C%964_%E6%9C%

分享到:

栏目导航

推荐阅读

热门阅读