从FocusLoss到hardsample
Focus Loss
何凯明大神在2017年的论文中提出Focus loss 论文
Focus Loss是一种处理深度学习中正负样本不均衡的方法. 它并没有固定形式,应该算是一种思路: 降低non-hard-sample的loss, 提高hard-sample的loss. 以二分类cross entropy loss为例
其中
是truth label, 是predicted probablity,
Focus Loss的一个实现是修改loss为如下形式
显然越接近1的样本,其分类效果越好,也说明这个样本属于non-hard-sample,观察下图,focus loss压制了较大的对应的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更加有效的弱分类器,构成强分类达到高准确度的目的. 下面是常用的一个样本权重更新公式
其中是当前样本权重, 是更新后的权重,是样本的truth label,当前分类器对的预测结果,最简单的实现中是预测值和某个阈值的比较,大于阈值,否则yf(x)w_1< w_0w_1> w_0$. adaboost中样本权重更新的思路和focus loss一致.
hard-sample 和 neural network (此处特指浅层网络,不是deep learn)
似乎早期有人用sliding-window + neural network, 其中涉及繁复的负样本人工筛选,类似SVM中的策略
hard-sample 和 random forest
(random forest使用不多,不敢乱写,求指教)