从FocusLoss到hardsample

Focus Loss

何凯明大神在2017年的论文中提出Focus loss 论文
Focus Loss是一种处理深度学习中正负样本不均衡的方法. 它并没有固定形式,应该算是一种思路: 降低non-hard-sample的loss, 提高hard-sample的loss. 以二分类cross entropy loss为例

L ( y , y 0 ) = l o g ( P y )

其中
P y = P i f   y 0 = 1

P y = 1 P i f   y 0 = 0

y 0 是truth label, P y 是predicted probablity, P y [ 0 , 1 ]
Focus Loss的一个实现是修改loss为如下形式
L ( y , y 0 ) = ( 1 P y ) 2 l o g ( P y )

显然 P y 越接近1的样本,其分类效果越好,也说明这个样本属于non-hard-sample,观察下图,focus loss压制了较大的 P y 对应的loss值,降低在反向传播过程中的作用
这里写图片描述

hard-sample

图像分类中,hard-sample就是对当前分类器难以区分的样本,”难以区分”包含两种情况
* 分类正确,但置信度不高
上面二分类的例子就属于这种情况
* 分类错误
adaboost中权重调教策略,更接近这种情况
显然训练中希望大部分都是hard-sample,避免在non-hard-sample上消耗资源,有助于提高训练效率

hard-sample 和 SVM

hard-negative-sample 对SVM训练十分关键, 前几轮训练出的SVM分类器效果都不会太好,需要反复几轮筛选hard-negative-sample,构成训练集中负样本,才有可能得到较好的分类器. 这里hard-sample通过人工筛选方式获得.

hard-sample 和 adaboost

adaboost通过修改训练样本权重(提高hard-sample权重,降低non-hard-sample权重)驱动分类器选择那些对hard-sample更加有效的弱分类器,构成强分类达到高准确度的目的. 下面是常用的一个样本权重更新公式

w 1 = w 0 e y f ( x )

其中 w 0 是当前样本 x 权重, w 1 是更新后的权重, y { 1 , 1 } 是样本 x 的truth label, f ( x ) 当前分类器对 x 的预测结果,最简单的实现中 f ( x ) 是预测值和某个阈值的比较,大于阈值 f ( x ) = 1 ,否则 f ( x ) = 1. y f(x) , , w_1< w_0 , w_1> w_0$. adaboost中样本权重更新的思路和focus loss一致.

hard-sample 和 neural network (此处特指浅层网络,不是deep learn)

似乎早期有人用sliding-window + neural network, 其中涉及繁复的负样本人工筛选,类似SVM中的策略

hard-sample 和 random forest

(random forest使用不多,不敢乱写,求指教)

猜你喜欢

转载自blog.csdn.net/z0n1l2/article/details/80538918