采样softmax(Sampled softmax )
2019-05-23 本文已影响1人
manlier
Sampled softmax
原文:https://www.tensorflow.org/extras/candidate_sampling.pdf
假设有一个单分类问题。训练集中的每个样本包含一个上下文和一个目标类。将给定上下文时,目标类为写作概率
我们使用函数产生softmax logits,即对数化的概率:
其中是一个不依赖的函数。
在完整的softmax训练中,对于每个训练样本,都需要对所有的分类计算。如果分类集L非常大,该操作将变得非常昂贵。
而在“Sampled Softmax”中,对于每个训练样本,我们根据一个选定的抽样函数来选择一个小的采样分类集,其中的每一个分类都以概率独立的存在:
我们创建一个候选集,联合了目标分类和采样的分类集:
我们的训练任务是计算出,在给定候选集的条件下,中的哪一个分类是目标分类。
对于中的每一个分类,我们想要计算出当给定和时,的后验概率,记作:
应用贝叶斯法则:
现在,来计算,我们注意到要使这发生,可能在也可能不在中,一定包含中所有的其它(除外)元素,并且不包含任何不在中的元素,
因此:
是一个不依赖于y的函数,所以:
这些是应该输入softmax分类器的相对logits,用于预测中的哪一个候选类才是真正的分类。
既然我们试图训练函数来拟合,我们用神经网络中的层输出表示,然后减去,将结果传入一个softmax分类器来预测哪个候选是真正的分类。
从分类输出中反向传播梯度到F,这就是我们所要的。