参考: 机器学习中的正负样本 - rainsoul - 博客园
关于机器学习中如何区分正负样本? - 知乎
问题分为分类问题与检测问题两个方面。
- 在分类问题中,这个问题相对好理解一点,比如人脸识别中的例子,正样本是人脸的图片,负样本的选取就与问题场景相关,如果要进行教室中学生的人脸识别,那么负样本就是教室的窗子、墙等等。
在检测的问题中,因为检测问题需要定位与回归,也就是既要给出框,又要说明框中是什么,我们所具备的数据是一些人工标注的图片,这些图片上有先验框,并且会给出框中的物体类别,我们需要运用这些数据生成训练中的正负样本数据,参考了faster以及SSD两种检测框架中对于正负样本的选取准则,我的理解如下:
- 首先,检测问题中的正负样本并非人工标注的那些框,而是程序中(网络)生成出来的框,也就是faster rcnn中的anchor boxes以及SSD中在不同分辨率的feature map中的默认框,这些框中的一部分被选为正样本,一部分被选为负样本,另外一部分被当作背景或者不参与运算。不同的框架有不同的策略,大致都是根据IOU的值,选取个阈值范围进行判定,在训练的过程中还需要注意均衡正负样本之间的比例。
生成框----->根据IOU的值----->选出预测框的正负样本 - 在fast的框架中,也是需要多SS算法生成的框框与GT框进行IOU的判断,进而选取正负样本,总之,正负样本都是针对于程序生成的框框而言,而非GT数据。
一般性模型优化的定义无所谓严格区分正负样本。 实际中,应该以目标为导向,如果你的目标是识别出位置错误的信息,那么你应该定义位置错误的样本是正样本,然后根据选好的数据集进行相应的优化。如果你的目标是为了识别出位置正确的样本,那你应该定义位置正确的样本是正样本。 至于为什么要根据目标来定义正样本,因为你在优化损失函数的时候,是根据预测错误的正样本来进行优化的,如果你的目标定义错误的话,你的优化方向可能是反过来的,特别是对正负样本不平衡的数据集来说。
?
|