【机器学习基础】系列博客为参考周志华老师的《机器学习》一书,自己所做的读书笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.基于分歧的方法
与生成式方法、半监督SVM、图半监督学习等基于单学习器利用未标记数据不同,基于分歧的方法(disagreement-based methods)使用多学习器,而学习器之间的“分歧”(disagreement)对未标记数据的利用至关重要。
disagreement亦称diversity。
“协同训练”(co-training)是此类方法的重要代表,它最初是针对“多视图”(multi-view)数据设计的,因此也被看作“多视图学习”(multi-view learning)的代表。在介绍协同训练之前,我们先看看什么是多视图数据。
在不少现实应用中,一个数据对象往往同时拥有多个“属性集”(attribute set),每个属性集就构成了一个“视图”(view)。例如对一部电影来说,它拥有多个属性集:图像画面信息所对应的属性集、声音信息所对应的属性集、字幕信息所对应的属性集、甚至网上的宣传讨论所对应的属性集等。每个属性集都可看作一个视图。为简化讨论,暂且仅考虑图像画面属性集所构成的视图和声音属性集所构成的视图。于是,一个电影片段可表示为样本$(\left< \mathbf{x}^1,\mathbf{x}^2 \right>,y)$,其中$\mathbf{x}^i$是样本在视图$i$中的示例,即基于该视图属性描述而得的属性向量,不妨假定$\mathbf{x}^1$为图像视图中的属性向量,$\mathbf{x}^2$为声音视图中的属性向量;$y$是标记,假定是电影的类型,例如“动作片”、“爱情片”等。$(\left< \mathbf{x}^1,\mathbf{x}^2 \right>,y)$这样的数据就是多视图数据。
假设不同视图具有“相容性”(compatibility),即其所包含的关于输出空间$\mathcal{Y}$的信息是一致的:令$\mathcal{Y}^1$表示从图像画面信息判别的标记空间,$\mathcal{Y}^2$表示从声音信息判别的标记空间,则有$\mathcal{Y}=\mathcal{Y}^1 = \mathcal{Y}^2$,例如两者都是{爱情片,动作片},而不能是$\mathcal{Y}^1$={爱情片,动作片}而$\mathcal{Y}^2$={文艺片,惊悚片}。在此假设下,显式地考虑多视图有很多好处。仍以电影为例,某个片段上有两人对视,仅凭图像画面信息难以分辨其类型,但此时若从声音信息听到“我爱你”,则可判断出该片段很可能属于“爱情片”;另一方面,若仅凭图像画面信息认为“可能是动作片”,仅凭声音信息也认为“可能是动作片”,则当两者一起考虑时就有很大的把握判别为”动作片“。显然,在”相容性“基础上,不同视图信息的”互补性“会给学习器的构建带来很多便利。
协同训练正是很好地利用了多视图的“相容互补性”。假设数据拥有两个充分且条件独立视图,“充分”是指每个视图都包含足以产生最优学习器的信息,“条件独立”则是指在给定类别标记条件下两个视图独立。在此情形下,可用一个简单的办法来利用未标记数据:首先在每个视图上基于有标记样本分别训练出一个分类器,然后让每个分类器分别去挑选自己“最有把握的”未标记样本赋予伪标记,并将伪标记样本提供给另一个分类器作为新增的有标记样本用于训练更新$\cdots \cdots$这个“互相学习、共同进步”的过程不断迭代进行,直到两个分类器都不再发生变化,或达到预先设定的迭代轮数为止。算法描述如图13.6所示。若在每轮学习中都考察分类器在所有未标记样本上的分类置信度,会有很大的计算开销,因此在算法中使用了未标记样本缓冲池。分类置信度的估计则因基学习算法$\mathfrak{L}$而异,例如若使用朴素贝叶斯分类器,则可将后验概率转化为分类置信度;若使用支持向量机,则可将间隔大小转化为分类置信度。
协同训练过程虽简单,但令人惊讶的是,理论证明显示出,若两个视图充分且条件独立,则可利用未标记样本通过协同训练将弱分类器的泛化性能提升到任意高。不过,视图的条件独立性在现实任务中通常很难满足,因此性能提升幅度不会那么大,但研究表明,即便在更弱的条件下,协同训练仍可有效地提升弱分类器的性能。
协同训练算法本身是为多视图数据而设计的,但此后出现了一些能在单视图数据上使用的变体算法,它们或是使用不同的学习算法,或使用不同的数据采样,甚至使用不同的参数设置来产生不同的学习器,也能有效地利用未标记数据来提升性能。后续理论研究发现,此类算法事实上无需数据拥有多视图,仅需弱分类器之间具有显著的分歧(或差异),即可通过相互提供伪标记样本的方式来提升泛化性能;不同视图、不同算法、不同数据采样、不同参数设置等,都仅是产生差异的渠道,而非必备条件。
因此,该类方法被称为“基于分歧的方法”。
基于分歧的方法只需采用合适的基学习器,就能较少受到模型假设、损失函数非凸性和数据规模问题的影响,学习方法简单有效、理论基础相对坚实、适用范围较为广泛。为了使用此类方法,需能生成具有显著分歧、性能尚可的多个学习器,但当有标记样本很少,尤其是数据不具有多视图时,要做到这一点并不容易,需有巧妙的设计。