[论文笔记] [2010] Understanding the Difficulty of Training Deep Feedforward Neural Networks

这篇论文主要是从参数初始化和激活函数的角度,通过实验中观察网络在训练迭代时每层的 activations 和 gradients,来探究训练深层模型困难的原因,并提出了一种新的参数初始化方式来加快模型训练时的收敛。

Effect of Activation Functions and Saturation During Training

sigmoid 激活函数在之前已经被证明会减慢学习的速度,如果再采用随机初始化参数(这里的随机是服从均匀分布 U [ − 1 n , 1 n ] U\left[-\frac{1}{\sqrt{n}}, \frac{1}{\sqrt{n}}\right] U[n 1,n 1])的方式,它会使得深层网络的训练效果很差(优化的很差)并且泛化能力很差(在测试集上的表现也很差)。下图是观察采用 sigmoid 激活函数的模型训练过程中,其每一层神经元的 activation value 的均值和标准差。

在这里插入图片描述
上图可以看到一个很神奇的现象,最后一层的神经元瞬间饱和了,并且这个饱和的状态持续了很久;当第一层的神经元开始趋向饱和了,最后一层才逐渐脱离饱和的状态。作者猜测这种现象就是由于 random initialization + sigmoid function 搭配使用导致的,如果采用 pre-training 的方式初始化参数就不会出现这种现象。

作者给出的解释基于一个假设 “the transformation that the lower layers of the randomly initialized network computes initially is not useful to the classification task”,那么softmax层 s o f t m a x ( b + W h ) \mathrm{softmax}(b+Wh) softmax(b+Wh) , 较之隐层的激活值 h h h,更依赖于 b b b。这也就使得前面训练时会迫使 W h Wh Wh 为 0,而这可以通过迫使 h h h 为 0 来实现(这也就解释了为什么一开始最后一层的神经元就立马饱和了)。在采用 tanh 或者 softsign 激活函数时,隐层的激活值为 0,其反向传播的梯度是不为 0 的,而采用了 sigmoid 激活函数时,隐层的激活值为 0,也就意味着神经元饱和了(实则死亡)。这会导致梯度难以反向传播,lower layers 的参数就难以更新去学习到有用的特征。

虽然在随着训练迭代,最后一层的神经元开始脱离饱和的状态,lower layers 也开始学习有用的特征,但这个过程非常缓慢,并且最后优化的效果很差,模型的泛化能力也很差。那既然上面的问题是由随机初始化和激活函数搭配使用引起的,那是不是可以考虑另外的激活函数或者初始化方式。文中是提到softsign 能较好的避免上述问题;那么从初始化方式上考虑呢,激活函数该搭配怎么样的初始化方式?设计出来的初始化方式应该符合怎么样的条件才是好的?

Studying Gradients and their Propagation

这里有个说法,就是训练过程中,为了保持网络信息流动,网络中逐层的 activation values 和反向传播梯度的方差都应该尽可能的相等(在一个量级上),用公式表示就是:
∀ ( i , i ′ ) , V a r [ z i ] = V a r [ z i ′ ] ∀ ( i , i ′ ) , V a r [ ∂ C o s t ∂ s i ] = V a r [ ∂ C o s t ∂ s i ′ ] \forall (i,i'), Var[z^i] = Var[z^{i'}] \\ \forall (i,i'), Var[\frac{\partial Cost}{\partial s^i}] = Var[\frac{\partial Cost}{\partial s^{i'}}] (i,i),Var[zi]=Var[zi](i,i),Var[siCost

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值