为什么在softmax中使用温度?

我最近正在研究cnn,我想知道softmax公式中温度的作用是什么?以及为什么我们应该使用高温来查看概率分布中的柔和范数?Softmax Formula

yrxxxyr 回答:为什么在softmax中使用温度?

使用温度函数的一个原因是更改由神经网络计算的输出分布。根据以下等式将其添加到对数向量中:??= exp(??/?)/ ∑?exp(??/?)其中where是温度参数。

您知道,这将改变最终概率。您可以选择T为任意值(T越高,分布将越“软”-如果为1,则输出分布将与正常的softmax输出相同)。我所说的“较软”是指该模型基本上不会对其预测充满信心。

a)样本'hard'softmax概率:(0.01,0.01,0.98)

b)示例“ soft” softmax概率:(0.2,0.2,0.6)

“ a”是“较难”的分布。您的模型对它的预测非常有信心。但是,在许多情况下,您不希望模型这样做。例如,如果使用RNN生成文本,则基本上是从输出分布中采样,然后选择采样的单词作为输出令牌(和下一个输入)。如果您的模型非常有信心,则可能会产生非常重复且无趣的文本。您希望它产生不会产生的更加多样化的文本,因为在进行采样过程时,大多数概率质量将集中在几个标记中,因此您的模型将不断选择多个单词。为了使其他单词也有可能被采样,您可以插入温度变量并生成更多不同的文本。

关于为何高温导致分布更柔和的原因,这与指数函数有关。温度参数对较小逻辑的惩罚更大。指数函数是一个“递增函数”。因此,如果一个术语已经很大,则对其进行少量处罚将使其比在较小条件下小得多(按百分比计算)。

这就是我的意思, exp(6)〜403 exp(3)〜20

现在让我们以1.5的温度“惩罚”这个术语: exp(6 / 1.5)〜54 exp(3 / 1.5)〜7.4

您可以用百分比表示,该术语越大,使用温度对其进行惩罚时它的收缩程度越大。当较大的对数比较小的对数收缩得更多时,将为较小的对数分配更多的概率质量(由softmax计算)。

,

温度是神经网络的超参数,用于在应用softmax之前通过缩放对数来控制预测的随机性。例如,在TensorFlow的LSTM的Magenta [implementation] [1]中,温度代表在计算softmax之前将logit除以多少。

当温度为1时,我们直接在对数(较早层的未缩放输出)上计算softmax,并使用温度为0.6的模型在logits/0.6上计算softmax,从而得出较大的值。对较大的值执行softmax可使LSTM 更有信心(需要较少的输入来激活输出层),但也使更加保守(其从样本中采样的可能性较小)不太可能的候选人)。使用较高的温度会在各个类别上产生较软的概率分布,并使RNN更容易被样本“激发”,从而导致更多的多样性更多的错误。>

softmax函数通过确保网络输出在每个时间步长都在零到一之间,基于网络的每次迭代将候选值归一化。

因此,温度增加了对低概率候选者的敏感性。

-来自Wikipedia article on softmax function

参考

Hinton,Geoffrey,Oriol Vinyals和Jeff Dean。 “在神经网络中提取知识。” arXiv预印本arXiv:1503.02531(2015)。 arXiv

本文链接:https://www.f2er.com/3138743.html

大家都在问