据我所知,Gumbel-Softmax技巧是一种技术,使我们能够对离散的随机变量进行采样,以一种可微的方式(因此适合于端到端的深度学习)。
许多论文和文章将其描述为一种在输入中选择实例(即“指针”)的方法,而不使用不可微的argmax-函数。让我困惑的是,这种效果可以在没有随机性的情况下通过使用Softmax和温度来实现:
随温度变化的软最大值
Gumbel-Softmax
从实践和理论的角度来看,什么时候将Gumbel噪声融入到神经网络中,而不是仅仅使用温度下的Softmax?
以下是几点意见:
我最好的猜测是,Gumbel噪声的引入在收敛之前加强了探索,但我不记得有任何论文将此作为引入额外随机性的动机。
有人对此有任何经验或见解吗?也许我完全错过了Gumbel-Softmax的关键点:)
发布于 2020-06-01 19:58:33
假设您有两个状态,X_1和X_2,并且您有一个模型M,它为每个状态(即逻辑)生成一个分数M(X_i)。接下来,您可以使用日志来计算某些分布。
以最高的概率接受这个州
但是,如果您实际上想要从P中取样,而不是只使用argmax -并且您希望示例操作是可微的!这就是Gumbel诡计的来源--而不是softmax,你可以计算。
其中Zi为I.DGumbel(0,1)。事实证明,X将等于X_1关于时代的P(X_1)和X_2关于时代的P(X_2)。换句话说,上面的公式来自P样本。
但是由于argmax运算的存在,它仍然是不可区分的。因此,我们将不这样做,而是计算Gumbel-Softmax分布。现在,如果温度足够低,那么Gumbel-Softmax会产生非常接近一个热向量的东西,其中预测标签的概率为1,其他标签的概率为零。因此,例如,如果Gumbel-Softmax给出了X_1最大的概率,您可以这样做:
其中P_g是Gumbel-Softmax操作。不需要争论!因此,有了这个很酷的技巧,我们可以以一种可微的方式从离散分布中取样。
发布于 2020-05-13 00:16:34
从实践和理论的角度来看,什么时候将Gumbel噪声融入到神经网络中,而不是仅仅使用温度下的Softmax?
您不一定需要Gumbel-Softmax来获得“单热类”向量,或者通过索引机制进行区分的能力。
LSTM体系结构和派生变体就是这方面的例子。他们使用乙状结肠输出建立“忘记/输入”门的模型,这是确定性的。“真”选通机制要么是0,要么是1,但为了使事物可微,LSTM放宽了对乙状结肠输出的限制。您会注意到这里没有“随机”输入,您仍然可以在这里应用直通技巧来使门真正离散(同时反向传播有偏梯度)。
Gumbel-Softmax可以在考虑使用非随机索引机制的任何地方使用(这是一个更通用的公式)。但是当你想要通过离散变量的随机样本进行反向传播时,它是特别有用的。
我最好的猜测是,Gumbel噪声的引入在收敛之前加强了探索,但我不记得有任何论文将此作为引入额外随机性的动机。
这是一个有趣的想法,但是有许多方法可以将“探索”噪声注入到函数逼近器中使用的一组参数中。
发布于 2019-10-14 05:47:25
对于softmax函数,无论温度是多少,它都不是精确的一个热矢量。如果你能接受一个软版本,它是好的。然而,如果你选择了最大的一个,它是不可微的。另一种反传播梯度的方法是直接通过估计1技巧,直接向后传播梯度2,梯度是一个不精确的近似。
Gumbel Softmax 3.的优点是,它根据电流的学习分布\pi进行一次热采样,它是一次热的,它是可微的,并且采样一热向量的概率是按π的。
对于您的发送问题:在开始时,分布\pi没有任何先验知识,因此我们希望用均匀的方法对一个热向量进行采样(在这个阶段,噪声很重要),并且分布将逐渐收敛到期望的分布(稍微锐化一点)。当你训练更长的时间时,对分布的先验知识就会有足够的了解,逐渐降低温度\τ,使\pi收敛到离散分布。随着温度的逐渐降低,噪音的影响也越来越小。
PS:句子不正确:
When the temperature is low, both Softmax with temperature and the Gumbel-Softmax functions will approximate a one-hot vector.Gumbel-softmax可以对一个热矢量进行采样,而不是近似。您可以在PyTorch上阅读4.代码。
1二进制连接:在传播过程中训练具有二值权值的深层神经网络
2 LegoNet:一种高效的乐高滤波器卷积神经网络
用Gumbel-Softmax实现3.分类重参数化
https://datascience.stackexchange.com/questions/58376
复制相似问题