CNN-卷积神经网络

【原理】BN层应用于模型

作者 : 老饼 发表日期 : 2023-12-30 20:02:27 更新日期 : 2024-01-19 10:54:15
本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com



BN批归一化层一般应用于深度学习中的激活函数之前,用于加速深层神经网络的训练

本文介绍BN层加入模型时所涉及的相关内容,包括对模型结构的改变、对训练的影响及等




   01. BN层应用于模型时的相关内容   



本节讲解当BN层应用于深度神经网络时的相关内容



     BN层的完整应用结构     


BN层一般嵌入到神经网络层的神经元值之后、激活函数之前的位置,
 BN批归一化的完整示图与计算公式如下:
批归一化的计算公式 
从图中可以看到,批归一化层先将神经元值WX+B的值进行归一化,再进行仿射(缩放与平衡)还原
✍️备注:关于去除阈值B
 BN层会将神经元值N进行归一化,且在仿射层存在参数,
在加入BN层后,线性映射层的B可以不要





      BN层中的期望与方差的估算方法     


在BN层的归一化计算部分,涉及到神经元值N的期望与方差的估算:
 
BN批归一期望与方差的计算 
  
在训练阶段与使用阶段分别采取不同的方法估算
具体如下:
 
1. 训练阶段                                                                                  
在训练阶段,归一化使用当前批训练数据的期望与方差    
 
2. 模型应用阶段                                                                        
在模型应用时,可以使用所有训练数据的期望与方差      
也可采用抽取最后K次批训练数据的期望与方差进行估算   
 
                                  
 
                        
         
分别是第i次批训练时的期望和方差               




    BN层与线性层的合并    


由于 BN层也是一个线性映射,所以可以和原线性映射层合并
 BN层与线性层的合并
     具体过程如下:
由于                                                                                
          
进一步将  代入其中,得到                        
                                            
 即有:                                                                              
                                              
      其中                                     
                                                  
               
✍️备注:实际中一般并不将其合并,这里仅是提供公式,需要合并时可按公式合并






    02.加入BN层后对建模流程的影响    




本节梳理和总结在深度学习网络中加入BN层后对整体建模过程的影响




     加入BN层后深度学习网络的修改     


下面我们梳理和总结一下,在深度学习的网络中加入BN层后,整体会有哪些地方需要改
 加入BN层后,整体流程需要修改的地方共三个,如下
 一、网络结构的修改                                                                         
在N = WX+B后,加入BN转换,即                                   
  
  二、训练过程的修改                                                          
训练时,原本只需要训练W、B,现在要有三点修改
 1. 在训练阶段进行前馈时,需要估算神经元值N的期望与方差
2. 训练时需要增加参数进行训练                                 
3. W、B的梯度公式需要进行修改                                        
  
 三、训练后需确定深度网络的表达式                                  
 
训练完神经网络后,需要确定最终应用时的BN层的期望和方差
可以使用最后k批样本的均值与方差进行无偏估算          
如下:                                              

                                                           
           ,其中m是每批样本的大小            




以上就是BN层在模型应用中的相关内容了





 End 





联系老饼