比如二分类问题,把label为0的预测成0.1,label为1的预测成0.9,这样已经可以了,我希望神经网络更关注那些预测在0.5左右的难以分割的样本(虽然在bp的时候0.5会有更大的梯度),感觉上有点像SVM,我可以怎么做呢?修改损失函数或者在计算损失时过滤掉预测得很好的样本?这样做有没有必要呢?
作者:Chaves
链接:https://www.zhihu.com/question/366389643/answer/979361929
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上面高赞回答已经说了一种,我这边就解释下第二种:
参考Focal Loss,大家可以看看原文,
他的损失函数能帮助解决两个问题,
1.样本不均衡。
2.不易学习的样本损失相对于易学习样本损失作用加大。
你这个就是第二类问题,公式如下:
举个例子,当γ为2时,容易识别正样本样本pt>0.9或者负样本的pt<0.1,得到log之前的从0.1变为0.01,变化很大。但如果pt=0.5时,那该样本损失就会从以前的0.5变为0.25,变化相对较小。
所以能解决你不易分类样本的学习偏向问题。
其中α是为了解决样本不均衡问题,如果有兴趣,后面再说。
作者:Chaves
链接:https://www.zhihu.com/question/366389643/answer/979361929
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上面高赞回答已经说了一种,我这边就解释下第二种:
参考Focal Loss,大家可以看看原文,
他的损失函数能帮助解决两个问题,
1.样本不均衡。
2.不易学习的样本损失相对于易学习样本损失作用加大。
你这个就是第二类问题,公式如下:
举个例子,当γ为2时,容易识别正样本样本pt>0.9或者负样本的pt<0.1,得到log之前的从0.1变为0.01,变化很大。但如果pt=0.5时,那该样本损失就会从以前的0.5变为0.25,变化相对较小。
所以能解决你不易分类样本的学习偏向问题。
其中α是为了解决样本不均衡问题,如果有兴趣,后面再说。
你可以参考margin-based的损失函数,定义一个正样本的置信度下界和负样本的置信度上界,只惩罚小于下界的正样本和高于上界的负样本。另外写了篇目标检测的少样本学习,里面提出了margin-based ranking loss,在margin的基础上加了ranking,代码也开源了,你可以参考下
https://www.zhihu.com/question/366389643/answer/979361929