码迷,mamicode.com
首页 > 其他好文 > 详细

批标准化—BN

时间:2020-07-23 19:02:03      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:平均值   出现   style   其他   反向   数据   drop   ide   神经网络   

作用:神经网络对0附近的数据更敏感,但是随着网络层数的增加,特征数据会出现偏离0均值的情况,标准化可以使数据符合以0位均值,1为标准差的正太分布,把偏移的特征数据重新拉回0附近。

方法:

  标准化:使数据符合0为均值,1为标准差的分布。

  批标准差:对一小批数据(batch),做标准化处理。

  批标准化后,第K个卷积核的输出特征图中的第i个像素点的值计算过程为:

  技术图片

  技术图片 批标准化前,第K个卷积核,输出特征图中第i个像素点的值

  技术图片批标准化前,第K个卷积核,batch张输出特征中所有像素点的平均值即   像素点的数量 = batch*该层卷积核数量*每个 卷积核的输出特征图像素数量

    技术图片批标准化前,第k个卷积核,batch张输出特征中所有要素点的标准差

   技术图片

   技术图片

   BN操作将原本偏移的特征数据重新拉回到0均值,使进入激活函数的数据分布在激活函数线性区,使得输入数据的微小变化更明显的体现到激活函数的输出,提升了激活函数对输入数据的区分力

   技术图片

   但是这种简单的特征数据标准化使特征数据完全满足标准正分布,集中在激活函数的中心区域,使激活函数失去了非线性特性。

   技术图片

     因此在BN操作中为每个卷积核引入了两个可训练参数γ和β,反向传播时缩放银子γ和偏移因子β会与其他带训练参数一同被训练优化,使标准正太分布后的特征数据通过缩放因子和偏移因子优化了特征数据的宽窄和偏移量保证了网络的非线性表达力

 

   技术图片技术图片

 

   BN层位于卷积层之后,激活层之前

   技术图片

 

TF2描述:

   tf,keras.layers.BatchNormalization()

 

实例:

model = tf.keras.models.Sequential(
    Conv2D(filter=6, kernel_size=(5, 5), padding=‘same‘),  # 卷积层
    BatchNormalization(),  # BN层
    Activation(‘relu‘),  # 激活函数
    MaxPool2D(pool_size=(2, 2), strides=2, padding=‘same‘),  # 池化层
    Dropout(0.2)  # dropout层
)

  

 

  

  

批标准化—BN

标签:平均值   出现   style   其他   反向   数据   drop   ide   神经网络   

原文地址:https://www.cnblogs.com/cropmodel/p/13366224.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!