论文总结:Estimating or Propagating Gradients Through Stochastic Neurons for Conditional Computation

论文地址:https://arxiv.org/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的梯度的直通估计量为:
在这里插入图片描述

实验

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值