最近,在学习机器学习的分类问题,数据是一个问题,我们用一些数据训练,发现,训练的数据对好的图片识别率高,对不好的图片识别率低,

虽然通常好的图片比较多,但是就像svm一样,支持边界的就那几个点,所以决定分类边界的往往是分错的点。但这并不绝对,因为好的数据

可以决定大的边界,差的数据决定小的边界,因此,这就产生了好几种方案:

方案一:

1、用所有数据(如果数据量大,取局部手动标注)训练一个初步模型,并用该模型对所有数据进行一轮分配(类)。

2、手工找出模型分类错误的点,手动调整后再训练(根据数据大小采取局部和整体相结合)

3、最终用半自动分类的数据进行训练整体模型

 

方案二:

1、用所有数据(如果数据量大,取局部手动标注)训练一个初步模型,并用该模型对所有数据进行一轮分配(类)。

2、挑出分类错误的样本,并手动分类,在第一轮中,分类正确的样本我们称为好的数据,分类错误的称为边界样本。

现在,问题来了,如何协同这些样本?可以去边界样本数据和好的数据1:1(or n:m)按一定比例构成新的数据集然后进入

第3步训练。

3、最终用半自动分类的数据进行训练整体模型

 

 

如果数据量大,可以重复1、2步骤。

 

为什么这样做?因为通常是好的数据比边界数据多得多,当10000张好的数据和1张边界数据进行分类,准确率也达到99.99%,

但,我们为什么不用error 产生者,去训练,这样收敛的也快,也减少了不必要的epoch。

当然,上面还可以衍生各种组合。

 

有监督学习就像一把枪,指哪打哪,但是,你乱指(数据乱标),那他就乱打。

 

对于不好区分,或者人眼看过去比较边界模棱两可的图像,比如将两种花区分开来,但是

实际应用这图片不是都是非常好的图像,会存在曝光、偏光、夜晚等情况,如果有些图片是

在夜晚拍摄,这时候两种花大部分背景色调都是黑色,都不好区分,这时候训练的边界数据

就需要用learning rate小一些比较好。

 

 

 

 

 

(转载需获得作者同意哦)