RNN-循环神经网络

【原理】LN层归一化

作者 : 老饼 发表日期 : 2023-10-11 04:26:49 更新日期 : 2024-05-11 20:33:40
本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com




LayerNorm层归一化是神经网络中的一种归一化技术,且是一种适用于RNN神经网络的归一化技术

本文讲解LayerNorm层归一化是什么以及层归一化的具体的计算公式、具体计算流程




   01. 层归一化是什么    




本节介绍层归一化是什么,有什么用,以及层归一化的具体计算公式




      层归一化简介     


LayerNorm层归一化是Jimmy Lei Ba等人于2016的论文《Layer Normalization》提出的一种神经网络中归一化的方法
它的提出主要是因为批归一化BN难以应用于RNN等应用于时间序列的神经网络模型
 因为RNN等时间序列神经网络中同一层网络会有不同时刻的输出,基于统计量的BN在落地时不太适合
也就是说,层归一化LN相比批归一化BN的优点是可以适用于RNN等循环神经网络





     层归一化及计算公式    


层归一化是针对单个样本的单层而言的,如下所示:
 

层归一化方法如下:

1. 将当层的所有神经元的神经元值N(激活函数之前的值)进行统计学上的归一化
2. 进一步用仿射变换还原神经元值的范围                                                       
层归一化的具体公式如下:
                                          (1)        
                
                   (2)       
            其中            ,n是节点数               
          
  ,n是节点数        
          
是待优化的参数,它们都是向量(注意,每个神经元对应的是独立的,并不相同)
           解说:即
是各个神经元值的均值,是各个神经元值的标准差               
                 公式(1)总的意思就是对当层所有节点进行标准(归一)化               
                 公式(2)则是对各个神经元的输出范围进一步放宽                     







   02. 层归一化-计算实例    




本节通过一个实例讲解层归一化的具体计算过程




     层归一化的计算实例     


下面举例说明整个计算过程(注意,层归一化是针对单样本单层的)
  层归一化-实例说明
假设本层是一个3输入4输出的层,并在激活前加入了层归一化,输入和相关参数如下
 输入值为:                                                      

 网络权重:                                        

层归一化的参数:                         
层归一化-实例计算过程
 整层的计算过程如下:
 一、计算神经元值:                                                                           
                
 二、计算层归一化值                                                                           
 层归一化计算过程如下:                                 
1. 计算                                                                         
                                                            
                                
2. 计算归一化的值                                                                
                    
3. 计算仿射后的值                                                                
                              
 三、计算激活值                                                                                 
               用归一化后的值计算激活值,不妨设激活函数为tanh,则层的输出如下:
                










 End 









联系老饼