吴恩达深度学习-序列模型 2.7 负采样
2020-02-09 本文已影响0人
prophet__
这节课学习的同样是一个监督学习嵌入向量的模型,上节课的skip-gram使用的softmax分类器求和带来的计算量太大了,这节课使用的算法可以避免这个问题。
这节课名字叫做负采样,那么正采样呢?
我们还是像上节课一样,在一句话里随机选出一个context,然后在一定的词距范围内选择一个词。这两个词组成的一个pair就叫做正样本,然后再在词典当中随机选择一个词,把它们设置成不相关,这就叫做负样本,这些随机取出的词即使在词距之内也没有关系。
然后这个监督学习框架的功能是:给定一组词,然后判断他们是否target为1。
在设置有几个负样本的时候原则是这样的:假设这个数据集越小,则k越大(5-20),假如这个数据集很大,则k越小(2-5),k代表的取几个负样本,在本次里k=4。
这个模型的概率p函数等于Θt X ec,跟之前一样的是,它形成的是10000个二分类的逻辑回归分类器,而不是一个softmax分类器。
假如像我们之前举的例子那样,那么我们拥有4个负样本和1个正样本,每次进行训练的时候就只会针对这5个样本的二分类分类器进行训练。
在选取负采样的样本时,如何选取是很有讲究的。假如我们按照词频从高到低选,那么我们还是很容易选中and、if等等这种词,但是如果你是完全按照随机的方式选取,那么这些词往往不具有代表意义。
这里有一个没什么理论依据但是效果很好的做法,我们不完全按照词频当成概率来进行单词的选取,而是使用词频的3/4次方作为分子,然后把所有词频的3/4次方的和作为分母,得到随机选取这个词的概率。