【深度学习】Focal Loss 与 GHM——解决样本不平衡问题
Focal Loss 与 GHM
Focal Loss
Focal Loss 的提出主要是为了解决难易样本数量不平衡(注意:这有别于正负样本数量不均衡问题)问题。下面以目标检测应用场景来说明。
一些 one-stage 的目标检测器通常会产生很多数量的 anchor box,但是只有极少数是正样本,导致正负样本数量不均衡。这里假设我们计算分类损失函数为交叉熵公式。
由于在目标检测中,大量的候选目标都是易分样本,这些样本的损失很低,但是由于数量极不平衡,易分样本数量相对来说太多,最终主导了总的损失,但是模型也应该关注那些难分样本(难分样本又分为普通难分样本和特别难分样本,后面即将讲到的GHM就是为了解决特别难分样本的问题)。
基于以上两个场景中的问题,Focal Loss 给出了很好的解决方法:
GHM
Focal Loss存在一些问题:
- 如果让模型过多关注
难分样本
会引发一些问题,比如样本中的离群点(outliers),已经收敛的模型可能会因为这些离群点还是被判别错误,总而言之,我们不应该过多关注易分样本,但也不应该过多关注难分样本; - \(\alpha\) 与 \(\gamma\) 的取值全从实验得出,且两者要联合一起实验,因为它们的取值会相互影响。
几个概念:
梯度模长g:\(g\) 正比于检测的难易程度,\(g\) 越大则检测难度越大,\(g\) 从交叉熵损失求梯度得来
\[ g=|p-p^*|= \begin{cases} 1-p, & \text{if p* = 1} \\ p, & \text{if p* = 0} \end{cases} \]
\(p\) 是模型预测的概率,\(p^*\) 是 Ground-Truth 的标签(取值为1或者0);\(g\) 正比于检测的难易程度,\(g\) 越大则检测难度越大;
梯度模长与样本数量的关系:梯度模长接近于 0 时样本数量最多(这些可归类为易分样本),随着梯度模长的增长,样本数量迅速减少,但是当梯度模长接近于 1 时样本数量也挺多(这些可归类为难分样本)。如果过多关注难分样本,由于其梯度模长比一般样本大很多,可能会降低模型的准确度。因此,要同时抑制易分样本和难分样本!
抑制方法之梯度密度 \(G(D)\): 因为易分样本和特别难分样本数量都要比一般样本多一些,而我们要做的就是衰减
单位区间数量多
的那类样本,也就是物理学上的密度概念。
\[ GD(g) = \frac{1}{l_{\epsilon}}\sum_{k=1}^{N}\delta_{\epsilon}(g_k, g) \]
\(\delta_{\epsilon}(g_k, g)\) 表示样本 \(1 \sim N(样本数量)\) 中,梯度模长分布在 \((g-\frac{\epsilon}{2}, g+\frac{\epsilon}{2} )\) 范围内的样本个数,\(l_{\epsilon}(g)\) 代表了 \((g-\frac{\epsilon}{2}, g+\frac{\epsilon}{2} )\) 区间的长度;最后对每个样本,用交叉熵 \(CE\) \(\times\) 该样本梯度密度的倒数即可。
分类问题的GHM损失:
\[ L_{GHM-C} = \sum_{i=1}^{N}\frac{L_{CE}(p_i, p_i^*)}{GD(g_i)} \]
回归问题的GHM损失:
\[ L_{GHM-R} = \sum_{i=1}^N \frac{ASL_1(d_i)}{GD(gr_i)} \]
其中,\(ASL_1(d_i)\) 为修正的 smooth L1 Loss。
抑制效果:
参考资料:
5分钟理解Focal Loss与GHM-解决样本不平衡利器——知乎
转载于:https://www.cnblogs.com/xxxxxxxxx/p/11602248.html
【深度学习】Focal Loss 与 GHM——解决样本不平衡问题相关推荐
- 寻找解决样本不均衡方法之Focal Loss与GHM
寻找解决样本不均衡方法之Focal Loss与GHM 主要参考资料:5分钟理解Focal Loss与GHM--解决样本不平衡利器 - 知乎 (zhihu.com) Focal Loss的引入主要是为了 ...
- [机器学习] focal loss:解决样本不平衡的一种通用方案
文章目录 focal loss 提出的场景和针对的问题 focal loss 提出的场景:目标检测 focal loss 针对的问题:类别不平衡 如何处理目标检测下的类别不平衡 如何理解目标检测场景下 ...
- Focal Loss与GHM 理解与使用
一.理解 5分钟理解Focal Loss与GHM--解决样本不平衡利器 https://zhuanlan.zhihu.com/p/80594704 二.使用 GHM论文理解及实现 https://zh ...
- 焦点损失函数 Focal Loss 与 GHM
文章来自公众号[机器学习炼丹术] 1 focal loss的概述 焦点损失函数 Focal Loss(2017年何凯明大佬的论文)被提出用于密集物体检测任务. 当然,在目标检测中,可能待检测物体有10 ...
- AI佳作解读系列(一)——深度学习模型训练痛点及解决方法
AI佳作解读系列(一)--深度学习模型训练痛点及解决方法 参考文章: (1)AI佳作解读系列(一)--深度学习模型训练痛点及解决方法 (2)https://www.cnblogs.com/carson ...
- 【深度学习】弱/半监督学习解决医学数据集规模小、数据标注难问题
[深度学习]弱/半监督学习解决医学数据集规模小.数据标注难问题 文章目录 1 概述 2 半监督学习 3 重新思考空洞卷积: 为弱监督和半监督语义分割设计的简捷方法 4 弱监督和半监督分割的训练和学习 ...
- 怎样解决样本不平衡问题
怎样解决样本不平衡问题 参考文章: (1)怎样解决样本不平衡问题 (2)https://www.cnblogs.com/guoruibing/articles/9561035.html 备忘一下.
- Focal loss 和 GHM
Focal Loss for Dense Object Detection 是ICCV2017的Best student paper,文章思路很简单但非常具有开拓性意义,效果也非常令人称赞. GHM( ...
- (HEM/OHEM)hard negative(example)mining难例挖掘 与focal loss、GHM损失函数
目录 分类任务中的样本不均衡及hard negative mining的必要性 hard negative example HEM(hard example/negative mining) 与 OH ...
最新文章
- 5.springMVC数据回显(就是后台向页面传参的过程)
- fs7宽容度_《如果蜗牛有爱情》,FS7拍出电影级质感!
- 武魂觉醒s系列服务器,[多线]星河斗罗——新服开荒丨高程度剧情还原丨3D坐骑丨魂环丨武魂觉醒[1.12.2]...
- 爬虫结果数据完整性校验
- Vue.directive自定义指令
- c++11新特性_【C++11新特性】 C++11智能指针之weak_ptr
- 特殊类型窗体制作: 制作字形窗体
- oracle卸载客户端,oracle11g客户端如何完全卸载
- CentOS5u11 Oracle 10g 生产RMAN备份可用性恢复测试
- jQuery学习笔记(三)jQuery动画效果
- 读书笔记:普通心理学之个体心理
- 新息自适应卡尔曼滤波matlab代码,基于自适应卡尔曼滤波的弱信号跟踪方法与流程...
- 如何在职场人际冲突中“立于不败之地”?
- 大数据正式京淘附加爬虫
- 什么叫工作流?什么叫信息流?
- 22.12.1的学习笔记
- Real-ESRGAN笔记
- Android游戏历程,快忘掉“吃鸡” 2019最佳Android游戏Top20出炉
- Android 监听home、锁屏、解屏简单实现
- python中加法表达式_Python自然语言处理练习一
热门文章
- Ceph:RBD在线扩容容量
- es6的Proxy(代理)
- Android Activity跳转动画,让你的APP瞬间绚丽起来
- golang辟谣之模板编程
- 【Python-ML】探索式数据分析EDA(Exploratory Data Analysis)
- Linux下为文件增加列的shell脚本
- Leetcode 146. LRU缓存机制 解题思路及C++实现
- let/var的使用详解
- 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化
- BugKu:cookies 欺骗