zl程序教程

您现在的位置是:首页 >  其他

当前栏目

BN层论文总结[通俗易懂]

论文 通俗易懂 总结 BN
2023-06-13 09:14:34 时间

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

Motivation   题目中的Internal Covariate Shift指的是在训练过程中各层输入数据的分布随前一层网络参数的变化而变化的现象,这种现象会使训练深度神经网络变得更加复杂,需要耗费更多的时间和资源去调参。为了解决这个问题,文章提出了BN层。

主要内容   本文设计了一种BN层,在每个输入层前加入一个BN层为每层的输入数据做一个改进了的归一化预处理,由于普通的归一化处理会影响网络层所学习的特征,因此BN层中引入了两个可学习的参数对归一化操作进行了改进使得网络可以恢复出原始网络所要学习的特征分布,经实验证明BN层的使用可以有效抑制Internal Covariate Shift现象。

BN层   普通的归一化操作(Z-score标准化)归一化到均值为0方差为1的公式如下,即每个样本减去样本数据的平均值后再除以样本数据的标准差

  因为这种归一化操作会使得处理过后的数据符合标准的正态分布,所以会影响网络层所学习的特征。在BN层中提出了一种对其进行改进的方法,即对进行Z-score标准化后的数据再进行一次变换,用来恢复原始所要学习的特征分布,公式如下:

  其中γ和β是一对需要学习的参数。   整个BN层的计算流程如下:

  文中将BN层放在激活函数之前,在训练结束时每个BN层中的γ和β的参数将不变。

原来的网络前向传导的计算公式如下,其中g为激活函数,z为网络输出。

加入BN层后的网络前向传导的计算公式如下,由于归一化的作用,偏置b可以省去。

测试及实验 测试时BN层使用的计算公式为

  从实验结果可以看出,图a中有BN层的网络更快且准确率更高;图b、c中有BN层的网络分布更加平稳,有效抑制了ICS现象。

  文章同时还在图像分类研究中对BN层进行了实验。文中不仅仅给网络加入了BN层,还改变了以下几点:增加学习率;删除Dropout;去掉L2正则项;加快学习率衰减;删除LRN;打乱训练样本。

实验表明BN-x30的效果最好,这是一个使用了上述改变,并且加入了BN层的网络,其初始学习率为0.045.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182053.html原文链接:https://javaforall.cn