类别不平衡分类问题和FocalLoss详解

1.类别不平衡问题

一份给定的数据集中,可能出现类别不平衡,即某种类型的数量特别少,以我现在做的二分类项目为例, 训练集类别为NG数量为12000, OK1600张,相差较多.

存在的问题:

模型对NG的学习较多,所以对NG的识别能力很强,Ok的识别能力很弱

2.FocalLoss损失函数:

2.1 二分类交叉损失函数:

这里的y表示标签,y' 表示预测此样本为1的概率p,或者说为正例的概率p.

其实对于二分类问题的类型不同,会导致最后使用的激活函数不同,交叉熵的计算方法也不一样.

这里的激活函数的选择导致了两种计算方式:

假设一个二分类问题,神经网络的最后一层输出有两个结果,最后需要再加一层激活函数-- sigmoid函数或者softmax函数:

2.1.1 sigmoid层作为输出的交叉熵:

sigmoid一般用来处理多标签分类问题,比如在多标签二分类问题里,一张图片既可能是A,也可能是B,也可能都是, 怎么判别?sigmoid的每个输出值与某个阈值比较,概率大于那个阈值,就可以判别为那一类.

作为最后一层的输出,两个输出值加起来不等于1,那么这时候的二分类其实指的是对单个类别的二分类,即是是否为A.另一个输出用来判断是否为B,这两个值的处理是相互独立的,不相斥的.

所有这个时候的分类交叉损失熵如何计算呢?其实应该计算每个神经元的二分类交叉损失熵,然后相加.

ti为单个神经元为正例的概率

比如最后一层sigmoid层的输出是[0.7, 0.8], 表示预测是A的概率是0.7, 是B的概率为0.8,  label为[1, 0],表示此样本是A且不是B

第一个神经元的交叉熵:  -1*log(0.7)

第二个神经元的交叉熵: -(1-0)*log(1-0.8)

总的交叉熵就是-log(0.7)-log(1-0.8)

2.1.2 softmax层作为输出的交叉熵:

softmax一般用来处理单标签分类问题,同样拿二分类问题举例子,如果是单标签分类问题,那么最后一层就应该使用softmax,这时候两个结果是互斥的,输出值加起来为1.

这时候的计算公式是:

同样加入最后一层的输出为[0.35, 0.65], label为[1], 表示预测是A的概率是0.35, 预测是B的概率是0.65, 但实际上是A

交叉熵:  -1*log(0.35)

2.2 类别不平衡在二分类交叉损失函数中的问题

二分类交叉损失函数会带来什么问题呢,我们先改写一下形式,y'改写程概率p,以单标签二分类问题为例

其中

所以二分类交叉损失函数最简单的形式就是:

可见普通的交叉熵而言,输出概率pt越大损失越小。符合预测越准,损失越小的原则

什么是简单样本:?什么是困难样本?就是预测值pt较大的的那些样本

两个问题:

1.如果某类型的样本占比较大,数量少的样本产生的loss较少,

2.而且简单样本比较多,就会导致困难样本产生的loss值占比较少,

负样本数量太大,占总的loss函数输入参数的大部分,而且多是容易分类的,因此使得模型的优化方向(即loss函数的梯度下降方向)并不是我们所希望的那样。

2.3 FocalLoss:

由此提出Focal loss函数:

首先在原有的基础上加了一个因子,其中Gamma>0使得减少易分类样本的损失,使得模型更关注于困难的、错分的样本。

例如:Gamma为2时,对于正类样本而言,预测结果为0.95肯定是简单样本,所以(1-0.95)的gamma次方就会很小,这时损失函数值就变得更小。而预测概率为0.3的样本其损失相对很大。对于负类样本而言同样,预测0.1的结果应当远比预测0.7的样本损失值要小得多。对于预测概率为0.5时,损失只减少了0.25倍。所以更加关注于这种难以区分的样本。这样减少了简单样本的影响,大量预测概率很小的样本叠加起来后的效应才可能比较有效。

换个形式看更清晰:

显然,样本越易分,pt越大,则贡献的loss就越小,相对来说,难分样本所占的比重就会变大.

在此基础上,再引入一个平衡因子 Alpha,用来平衡正负样本本身的数量比例不均(即类别不均衡):

我们为交叉熵分配一个权重,其中权重因子的大小一般为相反类的比重。即负样本不是多吗,它越多,我们给它的权重越小。这样就可以降低负样本的影响。

只添加Alpha虽然可以平衡正负样本的重要性,但是无法解决简单与困难样本的问题,因此针对难分样本的Gamma也必不可少。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容