假如我们只有正样本,模型在最开始训练的时候都是错误的,随着模型的迭代,准确率逐渐从0到1,最终将所有的样本都判别成正样本,也就是都在线的上方。
但真实的场景中有正有负,例如我们要做一个猫狗分类器,如果只给了猫的样本,那么分类器可能就是下面的样子
如果此时加入一堆狗的样本,模型会如何判别呢?把狗也判断成猫了。
加入负样本后,模型就可以知道不同类别之间的边界了,不会一股脑的把样本都识别成正的。
为什么会觉得不需要负样本呢?人类学习的过程中好像只需要指出正样本就可以了,例如交宝宝学习认识猫咪,你告诉他这是猫咪就可以,不需要再告诉他其他的样本,好像自然而然就可以学会。其实人类在学习的时候一直都会有负样本的,例如识别猫咪的时候,桌子,椅子可能就是负样本,等到后面认识小狗的时候,猫咪,桌子椅子可能就是负样本了。
多分类
二分类的时候类别只有两种,所有可以直接说正负样本。但是多分类的时候其实没有所谓的正负样本了。我们在使用softmax的时候,输入一个样本,这个样本会得到所有类别的概率,真实标签的概率为1,使用ce loss进行梯度下降更新。这个样本你无法说是正样本还是负样本了。
难负样本
在做点击率预估的时候,点击的商品作为正样本,未点击的商品作为负样本。样本变为<user feature, item feature, cross feature>。标签还是0和1,0表示未点击,1表示点击。理解成猫狗也并无不可。
in batch negative。使用nce loss的时候为什么会有男负样本一说呢?