从概念上了解区分nce 和info nce
我这两天都在看infonce 的推导,我表示很头大。今天感觉看明白了,写出来大家讨论一下。
为什么有nce
为了解决一个问题:多分类问题,尤其是类别相当大的时候msoftmax 函数中分母计算量大的问题。
softmax:
类别上百万的时候,咋算
nce 方案: 不算
咋算? 不算,转化一下,二分类好算吧,用二分类来算。
怎么转化 :如上我们要求的是p(w|c) 分布,nce 方案是,我们转化为一个二分类问题。正样本是p(w,c) 中的,负样本是噪声分布q(w)中的,那么根据后验概率,我们可以求
p(label=1 |w,c),p(label=0|w,c) ,怎么求的看下图,kd 代表 p(w,c)中获取的kd 个正样本,kn 代表q(w) 中kn个负样本。
那么转化为的二分问题就是求D变量的二分类函数, 就可以区p(w,c) 和 q(w) 。 即是 Noise Contrastive Estimation 噪声对比估计。用相求的分布(正样本分布)和噪声分布做对比。
ps