torch.nn.function.gumbel_softmax 的输入

nam*_*-Pt 5 softmax pytorch

假设我有一个attn_weights大小为 [1,a] 的张量,其中的条目表示给定查询和 |a| 之间的注意力权重 键。我想使用选择最大的一个torch.nn.functional.gumbel_softmax

\n

我发现有关此函数的文档将参数描述为logits - [\xe2\x80\xa6, num_features] unnormalized log probabilities。我想知道在将其传入之前我是否应该采取logof ?attn_weightsgumbel_softmax我发现 Wiki 定义了logit=lg(p/1-p),这与勉强对数不同。我想知道我应该将哪一个传递给该函数?

\n

另外,我想知道如何选择taugumbel_softmax有什么指导方针吗?

\n

Ber*_*iel 3

\n

我想知道在将其传入之前我是否应该采取logof ?attn_weightsgumbel_softmax

\n
\n

如果attn_weights是概率(总和为 1;例如,softmax 的输出),那么是。否则,不行。

\n
\n

我想知道如何选择taugumbel_softmax有什么指导吗?

\n
\n

通常,它需要调整。文档中提供的参考可以帮助您。

\n

来自Gumbel-Softmax 的分类重新参数化

\n
    \n
  • 图 1,标题:

    \n
    \n

    ... (a) 对于低温(\xcf\x84 = 0.1,\xcf\x84 = 0.5),Gumbel-Softmax 随机变量的期望值接近具有相同 logits 的分类随机变量的期望值。随着温度升高(\xcf\x84 = 1.0,\xcf\x84 = 10.0),预期值收敛到类别上的均匀分布。

    \n
    \n
  • \n
  • 第 2.2 节第 2 段(重点是我的):

    \n
    \n

    虽然 Gumbel-Softmax 样本是可微的,但它们与非零温度的相应分类分布中的样本并不相同。对于学习而言,需要在小温度(样本接近单热但梯度方差很大)和大温度(样本平滑但梯度方差很小)之间进行权衡(图 1)。在实践中,我们从高温开始并退火到一个小但非零的温度

    \n
    \n
  • \n
  • 最后,他们提醒读者 tau 是可以学习的:

    \n
    \n

    如果 \xcf\x84 是一个学习参数(而不是通过固定\ns调度退火),则该方案可以解释为熵正则化(Szegedy et al., 2015; Pereyra et al., 2016),其中 Gumbel-Softmax 分布可以在训练过程中自适应地调整提议样本的“置信度”。

    \n
    \n
  • \n
\n