《Understanding the difficulty of training deep feedforward neural networks》
概要
神经网络难以训练,作者想要读者更好理解:为什么梯度下降法不适用随机初始化权重的神经网络,且怎么设计更好的初始化方法。
作者发现随机化初始化权重时,不适合使用sigmod作为激活函数,因为它均值不为零,前面的hidden layer容易饱和;令人惊讶的时饱和的神经元可以自动变为不饱和,尽管过程很慢。
作者通过观察不同层的激活函数和梯度,提出了新的权重初始化方法,可以更快的是网络收敛。
Sigmod实验
bias初始化为零,权重初始化
n 表示前一层的size(即前一层权重W的列数)
下图是5层网络中,4个隐藏层的激活值随epoc的变化:

通过图片可以看到,最后的隐藏层很快饱和,但是在epoch 100左右,又开始变为不饱和。其它几层的均值大概为0.5,随着训练进行开始变小。
上面这种情况很可能是因为随机初始化权重引起的。输出层为
作者还对比了使用不同激活函数的情况。
代价函数的影响
在逻辑回归或似然估计时,使用softmax输出,cost function为对数函数 −logP(y|x) 比二次代价函数要好。一个2层网络,代价函数随两层网络权重变化如图:

交叉熵代价函数是黑色,二次型代价函数是红色; W1 和 W2 分别表示两层的权重。可以看出二次型代价函数有明显的“平”的区域。
权重初始化
为了便于研究,假设使用线性激活函数 f(x) ,且在零点导数 f′(x)=1 。
对于一层网络
输出的方差 
 
其中 
 
由于 w 和
假设
  
   zi
  是第
  
   i
  层的输入向量,
可以得到 
 
假设第
  
   i
  层的大小为
其中
  
   Var[Wi′]
  表示第
  
   i′
  层的共享权重的方差,对于
  
   d
  层的网络 
对于前向传播 
 
对于反向传播: 
 
因此得到: 
 
一个层的输入输出一般不相同,作为折中 
 
对于 
 
因此得到初始化权重: 
 
 
                   
                   
                   
                   
                             本文探讨了深度神经网络训练的难点,特别是梯度下降法应用于随机初始化权重时的问题,并提出了一种新的权重初始化方法来改善网络的收敛速度。文中通过实验展示了不同激活函数和代价函数对训练的影响。
本文探讨了深度神经网络训练的难点,特别是梯度下降法应用于随机初始化权重时的问题,并提出了一种新的权重初始化方法来改善网络的收敛速度。文中通过实验展示了不同激活函数和代价函数对训练的影响。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   702
					702
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            