在用交叉熵损失函数时,只希望惩罚0.4-0.6这样模糊的值,应该怎么改?

比如二分类问题,把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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值