您的位置:首页 > 其它

与算法无关的机器学习方法之主动学习

2013-05-16 16:45 351 查看
今天学习了主动学习,发现这是一个很有趣的方法,越来越发现机器学习跟人学习有很多共通的地方。

有监督的学习方法都依赖于打了类标号的样本,所以很多情况下,算法有了,后续的处理方法也有了,就是缺少样本,所以就需要人工进行标注,这里就有了一个问题,如何在保证分类准确率的情况下,减少人工标注的数量,。解决这个问题的一种方法就是主动学习。

主动学习的方法可以这样理解,例如一个实际例子是根据人脸分男女,如果我们已经有了10个打了类标号的样本,詹姆斯 男,章子怡 女......。如果再增加一个样本,我们期望增加什么样的呢,可以想象,如果增加韦德 男,这个样本几乎是没用的,跟詹姆斯差不多,。但是如果增加诺阿 男,我们会很直观的感觉这是很有效的,可以很主观的人为处在类别边界的数据对分类器是很有帮助的。

主动学习的整个过程可以这样描述,从没打类标号的数据集A中取出m个数据,交给人工打类标号,进行分类器的训练,对A中没有打类标号的数据进行预测,选出最不确定的数据n个,交给人工打类标号,继续训练分类器,这样循环下去,直到效果比较好为止。这里关键的问题是如何从A中选取最不确定的数据,也就是如何衡量不同数据的价值。下面有三种种方法。

1. 如果选择的分类器是贝叶斯(NB),天生的软分类器,直接可以输出属于某个类的概率,从A中选出属于某个类的概率最低的几个数据(例如,如果数据a属于男或者女的概率是0.52,b属于男或者女的概率是0.58,那么a的不确定性更高一些)交给人工打类标号。神经网络也可以用类似的方式,不过神经网络并不想NB一样直接可以得到概率,但是可以通过自定义概率的方式转化一下,例如神经网络的输出层有三个单元,分别对应三类,可以通过他们之间的比值等信息近似概率的形式。像svm这种,可以用某个点到分类面的距离这种形式描述。

2. 第一种方法对于二分类问题是有效的,但是对于多分类问题就不是很适应了,例如数据a属于各个类的概率是:0.41、0.40、0.05、0.05、0.09,数据b属于各个类的概率是:0.4、0.15,、0.15、0.15、0.15,这个时候应该选a还是选b,其实应该选a而不是b,因为a更不容易分。这是定量的认为,定性的描述就是用熵来描述。熵越大说明越不确定,越应该被选出来。熵具体的计算只要套公式就行了。

3. 前面的方法都是依赖于具体的分类器的,不同的分类器可能用不同的方法,那么有没有一种方法可以屏蔽分类器呢,答案是肯定的,用组合学习的方法,bagging就可以,同一个数据用多个分类器进行预测可以会有多个结果,那么只要计算这些结果的熵就可以了。这种结合的思想还是很不错的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: