Hard Negative Mining
在R-CNN
中使用Hard Negative Mining
(负样本挖掘)方法进行分类器的训练
HNM实现
- 设置初始训练集,正负样本数比值为
1:1
(或者1:3
,具体比例根据实际训练效果决定) - 每轮训练完成后,使用分类器对剩余负样本进行检测,如果检测为正,则加入到训练集中
- 重新训练分类器,重复第二步,直到检测精度开始收敛
为什么要使用HNM
该方法应用在正负样本的数目相差很大的情况。通过HNM
,选出对训练分类器有帮助的负样本,能够提高分类器性能
注意:由于初始训练集的数目会很小,所以降低学习率有利于训练结果
R-CNN中的HNM实现
参考zjZSTU/R-CNN中的linear_svm.py
实现
在训练特征提取时,训练参数如下:
- 学习率:
1e-3
- 动量:
0.9
- 随步长衰减:每隔
7
轮衰减一次,参数因子\(\alpha=0.1\) - 迭代次数:
25
在训练分类器时,使用HNM
,训练参数如下:
- 学习率:
1e-4
- 动量:
0.9
- 随步长衰减:每隔
4
轮衰减一次,参数因子\(\alpha=0.1\) - 迭代次数:
10