CNN-卷积神经网络

【原理】BN批归一化算法

作者 : 老饼 发表日期 : 2023-07-28 10:50:27 更新日期 : 2024-01-31 23:41:59
本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com



BN批归一化层是一种常用的深度学习技术,它通过解决内部协变量偏移问题来加速网络训练的速度

本文简单介绍BN批归一化层的原理并详细讲述BN批归一化层的计算公式




    01. BN批归一化层简介   



本节介绍批归一化层是什么,用来干什么



       批归一化层简介      


BN批归一化层解决什么问题
由于前层的权重发生变化会导致后一层的输入发生变化,
而当深度学习网络很多层的时候,前几层的变化会经过层层传播、扩大,
 内部协变量偏移
在训练时调整前层的权重时,很容易令后层网络的输入发生极大的变化,
上述现象称为内部协变量偏移,它导致后层的神经元出现饱和等各种问题,并给训练造成困难,
因此提出BN批归一化来hold住输入的分布,消除内部协变量偏移,加速多层神经网络的训练
BN批归一化层
BN批归一化层一般嵌入到其他层的神经元值之后、激活函数之前的位置
 BN层的使用场景
BN层主要的目的是解决一般神经网络层之中的协变量偏移问题,
通过加入BN层,可以一定程度抑制神经元值的内部协变量偏移,加速网络的训练
✍️BN批归一化的原文
 
BN批归一化层在Inception-V2的原文中提出:
 《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》






    02. BN批归一化的结构与计算公式    



本节介绍批归一化层的结构与具体计算公式



      BN批归一化层的结构     


批归一化层由归一化与仿射两部分组成,如下:
 BN批归一化层结构
 由于批归一化一般是嵌入在神经元值N和激活函数之间,因此这里的输入我们用N来表示



      BN批归一化层的计算公式     


 批归一化BN层的具体计算公式如下:
 
  BN层计算公式详细解说如下:
 1. 归一化中的                                                                                
  是输入N的期望值,是N的方差                                      
 两者都通过整体样本进行估算 ,估算公式如下:                            
                       
   ,n是样本数                                                    
                       
                                                     
 
 2. 归一化中的 ϵ                                                                                                     
 
是一个较小的数,在分母中加入是为了防止分母过小                    
  3. 仿射部分的                                                                                               
 是待优化的参数,跟着模型一起训练                                
✍️补充:批归一化基于独立神经元
 
BN层的运算是针对每一个神经元而言的,
也就是说,每个神经元各自进行归一化,并且不同的神经元,
参数是不一样的





    03. BN批归一化应用于卷积层    



本节介绍BN层应用于卷积层时的计算方式



    关于BN应用于卷积层   


BN应用于卷积层,基本与应用于全连接层时是类似的,
唯一不同的是, 考虑到卷积层单个通道(featureMap)内的各个神经元与周边神经元是相关联的
 BN应用于卷积层
在归一化时需要保持这个特征,因此,归一化整个过程对单通道的神经元应使用统一的参数
即:1.同一通道的神经元使用相同的               
 例如一个通道的featureMap为h×w, 共有n个样本
    则用这n×h×w个神经元值来估算 
    
2.同一通道的神经元使用相同的                      
总的来说,BN应用于卷积层时,所有归一化参数是相对通道而言的,而非独立神经元





好了,BN层的相关计算公式与算法就介绍到这里了~






 End 




联系老饼