admin管理员组

文章数量:1531352

论文地址:https://arxiv/pdf/1308.3432.pdf

主要内容

许多基于神经网络或深度学习的算法都是依赖于梯度的学习,为此需要平滑的网络来计算梯度,但这种想法并不正确。引入扰动可以获得估计的梯度。

像有限差分近似这种独立扰动计算低效,因此需要引入随机扰动。

那么好的梯度估计值是否可以进行计算和训练?

基于这一问题,作者讨论了四种方案:

  1. Noisy Rectifier
  2. STS Units: Stochastic Times Smooth
  3. Straight-Through EstimatorStraight-Through Estimator
  4. Conditional Computation Experiments

考虑神经元的输出 h i h_i hi

其中, h i h_i hi是确定的函数。 a i a_i ai是可微的变换, z i z_i zi是噪声源。令 a i a_i ai为:

其中, x i x_i xi是输入。
如果 z i z_i zi是加性或乘性的噪声,梯度可以被正常的计算;但如果 z i z_i zi是二元的,f的梯度几乎处处为0。为此,需要对f进行选择,使得梯度分为两个区域:等于0的不敏感区域和不等于0的敏感区域。

1.Noisy Rectifier

令不敏感状态对应于 h i = 0 h_i=0 hi=0

其中, z i z_i zi为零均值噪声,来自于如下函数:

该整流器有如下性质:

因此,当 f ( a i , 0 ) > 0 f(a_i,0) >0 f(ai,0)>0,神经元处于活动状态,就能被正常激活;少数情况下(负噪声很大)也会不活跃。
f ( a i , 0 ) = 0 f(a_i,0)=0 f(ai,0)=0,神经元处于不活跃状态,但是噪声很大时也会被激活,这时如果被激活是好事,则会增加总权重使得被激活概率增加;反之,如果不是好事,则减小权重使得被激活概率减少。

但是,神经元的敏感和不敏感状态的概率是不同的(实际上可能多数情况都处于不敏感状态),为此需要一个机制使得二者概率相同,如设置阈值。

2.STS Units: Stochastic Times Smooth

STS的输出如下:

其性质和证明如下:

上述结论可推广到任意情况下的f(x)的泰勒展开:

3.Unbiased Estimator of Gradient for Stochastic Binary Neurons

过于复杂,有兴趣再看。

4.Straight-Through Estimator

其思想为通过硬阈值函数反向传播(参数为正则输出1,否则输出0)。
h i h_i hi取样于:

则关于 a i a_i ai的损失函数L的梯度的直通估计量为:

实验

本文标签: 论文PropagatingEstimatingGradientsComputation