作者:
Poll的笔记
来源:http://www.cnblogs.com/maybe2030/p/5515042.html
阅读目录
1. 写在前面
在机器学习(Machine learning)领域,监督学习(Supervised learning)、非监督学习(Unsupervised learning)以及半监督学习(Semi-supervised learning)是三类研究比较多,应用比较广的学习技术,wiki上对这三种学习的简单描述如下:
其实很多机器学习都是在解决类别归属的问题,即给定一些数据,判断每条数据属于哪些类,或者和其他哪些数据属于同一类等等。这样,如果我们上来就对这一堆数据进行某种划分(聚类),通过数据内在的一些属性和联系,将数据自动整理为某几类,这就属于非监督学习。如果我们一开始就知道了这些数据包含的类别,并且有一部分数据(训练数据)已经标上了类标,我们通过对这些已经标好类标的数据进行归纳总结,得出一个 “数据-->类别” 的映射函数,来对剩余的数据进行分类,这就属于监督学习。而半监督学习指的是在训练数据十分稀少的情况下,通过利用一些没有类标的数据,提高学习准确率的方法。
2. 什么是active learning?
在真实的数据分析场景中,我们可以获取海量的数据,但是这些数据都是未标注数据,很多经典的分类算法并不能直接使用。那肯定会有人说,数据是没有标注的,那我们就标注数据喽!这样的想法很正常也很单纯,但是数据标注的代价是很大的,及时我们只标注几千或者几万训练数据,标注数据的时间和金钱成本也是巨大的。
在介绍active learning的概念之前,首先先谈一下样本信息的问题。
什么是样本信息呢?简单地来讲,样本信息就是说在训练数据集当中每个样本带给模型训练的信息是不同的,即每个样本为模型训练的贡献有大有小,它们之间是有差异的。
因此,为了尽可能地减小训练集及标注成本,在机器学习领域中,提出主动学习(active learning)方法,优化分类模型。
主动学习(active learning),指的是这样一种学习方法:
有的时候,有类标的数据比较稀少而没有类标的数据是相当丰富的,但是对数据进行人工标注又非常昂贵,这时候,
学习算法可以主动地提出一些标注请求
,将一些经过筛选的数据提交给专家进行标注。
这个筛选过程也就是主动学习主要研究的地方了。
3. active learning的基本思想
主动学习算法可以由以下五个组件进行建模:
A
=
(
C
,
L
,
S
,
Q
,
U
)
" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; ">
A
=(
C
,
L
,
S
,
Q
,
U
)
其中
C
" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; ">
C
为一个或一组分类器;
L
" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; ">
L
为一组已标注的训练样本集;
Q
" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; ">
Q
为查询函数,用于在未标注的样本中查询信息量大的样本;
U
" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; ">
U
为整个未标注样本集;
S
" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; ">
S
为督导者,可以对未标注样本进行标注。
主动学习算法主要分为两阶段:
第一阶段为初始化阶段,随机从未标注样本中选取小部分,由督导者标注,作为训练集 建立初始分类器模型;
第二阶段为循环查询阶段,
S
" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; ">
S
从未标注样本集
U
" role="presentation" style=" display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; ">
U