寻找解决样本不均衡方法之Focal Loss与GHM
主要参考资料:5分钟理解Focal Loss与GHM——解决样本不平衡利器 - 知乎 (zhihu.com)
-
Focal Loss的引入主要是为了解决难易样本数量不平衡(注意,有区别于正负样本数量不平衡)的问题,实际可以使用的范围非常广泛。
-
注:如本人遇到的就是通过一个二分类模型处理违规帖子内容,场景就是正负样本不均衡以及难易样本数量数量不均衡都参杂其中的问题。
我们以交叉熵损失函数举例:(Cross entropy)
- 交叉熵损失函数可以看我另一篇介绍:交叉熵损失函数 - 知乎 (zhihu.com)
C E = − [ y log y ^ + ( 1 − y ) log ( 1 − y ^ ) ] (1) CE = -[y\log{\hat{y}} + (1-y)\log{(1- \hat{y})}]\tag{1} CE=−[ylogy^+(1−y)log(1−y^)](1)
C E = { − log ( y ^ ) i f y = 1 − log ( 1 − y ^ ) i f y = 0 (1.1) CE=\begin{cases} -\log(\hat{y})& if & y = 1 \\ -\log(1 - \hat{y})& if & y = 0\end{cases}\tag{1.1} CE={ −log(y^)−log(1−y^)ifify=1y=0(1.1)
为了解决正负样本不平衡的问题,我们通常会在交叉熵损失的前面加上一个参数 α ,即:
C E = { − α log ( y ^ ) i f y = 1 − ( 1 − α ) log ( 1 − y ^ ) i f y = 0 (1.2) CE=\begin{cases} -\alpha \log(\hat{y})& if & y = 1 \\ -(1- \alpha)\log(1 - \hat{y})& if & y = 0\end{cases}\tag{1.2} CE={
−αlog(y^)−(1−α)log(1−y^)ifify=1y=0(1.2)
但这并不能解决全部问题。根据正、负、难、易,样本一共可以分为以下四类:正难 正易 负难 负易(类比混淆矩阵)
由于真实场景下,易分样本的数量还是相对太多,主导了总的损失(不区分的时候是正负样本中数量大的主导,区分了正负样本难易样本中数量大的又会占据主导)这些问题都是需要解决的,这时候Focal Loss应运而生,其认为要处理易分样本(即:置信度高的样本)对模型的提升效果非常小,所以应该降低模型对这些样本的关注度,重点关注那些难以区分的样本。
该方法的核心思想就是:进一步降低高置信度,也就是易分样本的损失,其实就是说降低这些易分样本的权重,所以衍生了:
F L = { − ( 1 − y ^ ) γ log ( y ^ ) i f y = 1 − p γ log ( 1 − y ^ ) i f y = 0 (1.3) FL=\begin{cases} -(1-\hat{y})^{\gamma} \log(\hat{y})& if & y = 1 \\ -p^{\gamma}\log(1 - \hat{y})& if & y = 0\end{cases}\tag{1.3} FL={

本文介绍了FocalLoss和Gradient Harmonized Loss(GHM)两种用于解决深度学习中样本不均衡问题的方法。FocalLoss通过调整权重,重点处理难分样本,而GHM通过梯度密度的概念,同时抑制易分和难分样本,提升模型对中间难度样本的关注。这两种技术对于处理正负样本不均衡以及难易样本数量不均衡的情况非常有效。
最低0.47元/天 解锁文章
1217

被折叠的 条评论
为什么被折叠?



