13.半监督学习

这章介绍半监督学习方法。

13.1未标记样本

先说两个概念:

1)有标记样本(Labeled)

训练样本集Dl={(x1,y1), (x2,y2),…, (xl,yl)},这l个样本的类别标记已知。

2)未标记样本(unlabeled)

训练样本集Du={xl+1, x l+2,…, xl+u},u远大于l,这u个样本的类别标记未知。

监督学习技术是基于有标记样本Dl的训练来构建模型,未标记样本Du所包含的信息未被利用;如果有标记样本Dl样例少的话,学得的模型泛化能力也不强,因此需要考虑将未标记样本Du利用起来。利用Du学习模型的方法:

1)主动学习(activelearning)

先用Dl训练出一个模型,然后用这个模型去Du样本中选择一个样本,并和专家进行交互将未标记转变为有标记样本,新标记样本重新训练模型…如此可大幅降低标记成本,只需通过少量未标记样本通过专家来标记就能改善模型,少的查询获得好的性能。

主动学习就是要引入专家知识,通过与外部交互来将部分未标记样本转变为有标记样本。如果不通过外部标记,还可以利用未标记样本,就是半监督学习的研发范围。

2)半监督学习

基于一个事实:未标记样本虽未直接包含标记信息,但若它们与有标记信息样本是从同样的数据源独立同分布采样而来,则它们所包含的关于数据分布的信息对建立模型是有帮助的。

半监督学习 (semi-supervised learning):让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能。在现实任务中,未标记样本多、有标记样本少是一个比价普遍现象,如何利用好未标记样本来提升模型泛化能力,就是半监督学习研究的重点。

要利用未标记样本,需假设未标记样本所揭示的数据分布信息与类别标记存在联系。

一是聚类假设(cluster assumption),假设数据存在簇结构,同一个簇的样本属于同一个类别。另一个是流形假设(manifold assumption),假设数据分布在一个流形结构上,邻近的样本拥有相似的输出值;邻近程度用相似程度来刻画,距离计算大概就是最基础的。

流形假设可看作是聚类假设的推广,不过流形假设对输出值没有限制,比聚类假设的适用范围更广,可用于更多的学习任务。二者的本质是一样的,都基于相似的样本拥有相似的输出这样一个假设。

半监督学习可进一步划分为纯(pure)半监督学习和直推学习(transductive learning):纯半监督学习假定训练数据中的未标记样本并非待预测数据;而直推学习假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在未标记样本上获得最优泛化性能。

纯半监督学习是基于开放世界的假设,希望学得的模型能适用于训练过程中未观察到的数据;而直推学习是基于封闭世界假设,仅试图对学习过程中观察到的未标记数据进行预测。

13.2生成式方法

生成式方法(generativemethods)是直接基于生成式模型的方法。该方法假设所有数据(无论是否有标记)都是由同一潜在的模型生成的。通过这个假设通过潜在模型的参数将未标记数据与学习目标联系起来,而未标记数据的标记可作为模型的缺失参数,通常基于EM算法进行极大似然估计求解。生成式方法的重点是对于生成式模型的假设,不同的模型假设将产生不同的方法。当然这个方法的关键也就是这个模型假设必须准确,即假设的生成式模型必须与真实数据分布吻合;否则利用未标记数据反倒会降低泛化性能。该方法简单实现,不过在现实任务中,往往很难事先做出准确的模型假设,除非拥有充分可靠的领域知识。下面通过高斯混合分布模型及EM算法求解来说明生成式半监督学习方法。

将高斯混合模型换成混合专家模型、朴素贝叶斯模型等即可推导出其他的生成式半监督学习方法。

13.3半监督SVM

半监督支持向量机(Semi-Supervised Vector Machin,S3VM)是支持向量机在半监督学习上的推广。不考虑未标记样本的情况,支持向量机试图找到最大间隔划分超平面;在考虑未标记样本的情况下,S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面。低密度分隔(low-densityseparation)假设是聚类假设在考虑了线性超平面划分后的推广。

半监督支持向量机中比较著名的是TSVM(Transductive Support Vector Machin),是针对二分类问题的学习方法。TSVM试图考虑对未标记样本进行可能的标记指派(Label Assignment),即尝试将每个未标记样本分别作为正例或反例,然后在所有这些结果中,寻求一个在所有样本(包括有标记样本和进行了标记指派的未标记样本)上间隔最大化的划分超平面。一旦划分超平面确定,未标记样本的最终标记指派就是其预测结果。

在对未标记样本进行标记指派和调整的过程中,有可能出现类别不平衡问题,即某类的样本远多于另一类,这对SVM的训练造成困扰。为减轻类别不平衡性所造成的不利影响,改进算法如下:将优化目标中的Cu拆分成Cu+和Cu-两项,分别对应基于伪标记而当作正、反例使用的未标记样本,并在初始化时令(Cu+)=(u-/u+)( Cu-),其中u-和u+为基于伪标记而当作正、反例使用的未标记样本数。

搜索标记指派可能出错的每一对未标记样本进行调整,涉及巨大的计算开销的大规模优化问题,因此,半监督SVM更多的研究在于如何涉及出更高效的优化求解策略;发展出很多方法,如基于图核(graphkernel)函数梯度下降的LDS、基于标记均值估计的MeanS3VM等。

13.4图半监督学习

给定一个数据集,将其映射为一个图,数据集中每个样本对应于图中的一个结点,若两个样本之间的相似度很高(或相关性很强),则对应的结点之间存在一条边,边的强度(strength)正比于样本之间的相似度(或相关性)。将有标记样本所对应的结点染色,而未标记样本所对应的结点尚未染色;半监督学习对应于颜色在图上扩散或传播的过程;一个图对应一个矩阵,可基于矩阵运算来进行半监督学习算法的推导与分析。

图半监督学习方法在概念上相当清晰,且易于通过对所涉矩阵运算的分析来探索算法性质。不过该类算法有两个缺点:1)存储开销上,样本数m下,矩阵规模为O(m2),很难直接处理大规模数据;2)构图过程仅能考虑训练样本集,对新样本在图中的位置难以知晓,在接收新样本时或将其加入原数据集对图进行重构并重新进行标记传播,或是需引入额外的预测机制,如将Dl和经标记传播后得到标记的Du合并作为训练集,另外训练一个学习器如支持向量机来对新样本进行预测。

13.5基于分歧的方法

与生成式方法、半监督SVM、图半监督学习等基于单学习器利用未标记数据不同,基于分歧的方法(disagreement-basedmethods)使用多学习器,而学习器之间的分歧(disagreement)对未标记数据的利用至关重要。协同训练(co-training)是基于分歧方法的重要代表,针对多视图(multi-view)数据设计,也是多视图学习的代表。

1)多视图数据

多视图数据是指一个数据对象同时拥有多个属性集(attribute set),每个属性集构成一个视图(view)。如一部电影,拥有图像画面信息所对应的属性集、声音信息所对应的属性集、字幕信息所对应的属性集、网上宣传讨论所对应的属性集等多个属性集。若只考虑电影多视图数据中的图像属性集和声音属性集,一个电影片段样本用(<x1,x2>,y)表示,其中xi是样本在视图i中的示例,即基于该视图属性描述而得的属性向量。假定x1为图像视图中的属性向量,x2为声音视图中的属性向量;y是标记,如电影类型。

2)相容性

假设不同视图具有相容性(compatibility),即其所包含的关于输出空间y的信息是一致:令y1表示从图像画面信息判别的标记空间,y2表示从声音信息判别的标记空间,则有y=y1=y2

在相容性的基础上,不同视图信息是互补的,给学习器的构建带来便利。如某个电影片段,从图像上有两人对视,无法判断电影类型,但若加上声音信息中“我爱你”透露的信息,则可判定为电影类型是爱情片。

3)协同训练

协同训练正式基于多视图数据的相容互补性。假设数据拥有两个充分(sufficient)且条件独立视图,充分是指每个视图都包含足以产生最优学习器的信息;条件独立是在给定类别标记条件下每个视图独立。

协同训练如何利用未标记数据呢?首先在每个视图上基于有标记样本分别训练出一个分类器,然后让每个分类器去选择自己最有把握的未标记样本赋予伪标记,并将伪标记样本提供给另一个分类器作为新增的有标记样本用于训练更新…这个互相学习、共同进步的过程不断迭代进行,直到两个分类器都不再发生变化,或达到预先设定的迭代轮数为止。一句话,每个视图根据有标记样本生成一个学习器,来判别本视图的未标记数据,然后将打上未标记的样本作为其他视图学习器生成的新增有标记样本。算法描述如下:

4)算法分析

若在每轮学习中都考察分类器在所有未标记样本上的分类置信度,会产生很大的计算开销,因此在算法中使用了未标记样本缓冲池。分类置信度的估计因基学习算法A而异,如若使用朴素贝叶斯分类器,可将后验概率转化为分类置信度;若使用支持向量机,则可将间隔大小转化为分类置信度。

协同训练的理论证明显示,若两个视图充分且条件独立,则可利用未标记样本通过协同训练将弱分类器的泛化性能提升到任意高。不过这个前提条件在现实任务中很难满足,但就是视图充分就基本无法做到,不过即便如此,协同训练仍可有效地提升弱分类器的性能。

5)算法衍变

协同训练算法是为多视图数据而设计的,后面也出现了在单视图上使用的变体算法,或使用不同学习算法,或使用不同数据采样,甚至使用不同的参数设置来产生不同学习器,也能有效地利用未标记数据来提升性能。实际,原理思想是一致,就是在不同学习器之间产生互补。

后续理论研究表明,这类算法并不一定数据是拥有多视图,而仅需弱学习器之间具有显著的分歧(或差异),即可通过相互提供伪标记样本的方式来提升泛化性能。不同视图、不同算法、不同数据采样、不同参数设置等,都是产生差异的渠道,而非必备条件。

6)总结

基于分歧的方法只需采用合适的基学习器,就能较少受到模型假设、损失函数非凸性和数据规模问题的影响。该方法需能生成具有显著分歧、性能尚可的多个学习器,但当有标记样本很少,尤其是数据不具有多视图时,需巧妙设计才能实现。

13.6半监督聚类

聚类是无监督学习任务,为利用现实任务中获得的监督信息,提出半监督聚类(semi-supervised clustering)来利用监督信息以获得更好的效果。

聚类任务中获得的监督信息分两种:1)有必连(must-link)和勿连(cannot-link)约束,必连是指样本必属于同一个簇,勿连是指样本必不属于同一个簇;2)含有少量的有标记样本。下面针对这两种类型的监督信息说明。

1)必连和勿连约束

要利用必连和勿连约束的监督信息,可通过约束k均值(Constrained k-means)算法。给定样本集D={x 1,x 2,…,x m}以及必连关系集合M和勿连关系集合C;(x i,x j)∈M表示x i,与x j必属于同簇,(x i, x j)∈C表示x i,与x j必不属于同簇。约束k均值算法是在k均值算法基础上扩展,在聚类过程中确保M与C中的约束得以满足;算法描述如下:

2)含有少量有标记样本

给定样本集D={x 1,x 2,…,x m},假定少量的有标记样本 ,其中 为隶属于第j个聚类簇的样本。直接将有标记样本作为种子,初始化k均值算法的k个聚类中心,并且在聚类迭代更新过程中不改变种子样本的簇隶属关系,就是约束种子k均值(Constrained Seed k-means)算法。算法描述如下:

本章总结:对于半监督学习给出了:1)依赖模型假设(应用领域专业知识)的生成式半监督学习方法;2)非凸性和低密度划分的半监督SVM方法,重点要掌握S3VM;3)基于聚类假设和图划分的图半监督学习方法;4)基于分歧的集成学习方法,重点掌握协同训练;5)依赖样本中存在监督信息的半监督聚类学习方法。本章最后的小故事提到的黎曼猜想,若是专注数学,可以理解和研究,不过对于流形概念可以重点认识下。

机器学习笔记(十三)半监督学习相关推荐

  1. 机器学习教程 之 半监督学习 Co-training 协同训练 (论文、算法、数据集、代码)

    这篇博客介绍的是一篇用于半监督分类问题的方法: 协同训练 Co-training, A. Blum and T. Mitchell, "Combining labeled and unlab ...

  2. 机器学习教程 之 半监督学习 Tri-training方法 (论文、数据集、代码)

    最近因为项目需要研究了一下半监督学习,稍经了解以后发现当存在大量未标签数据时,这确实是一种非常好用的方法,可以很好的提升分类精度.这里介绍一下周志华教授的Tri-triaining方法,在实现上非常的 ...

  3. 机器学习教程 之 半监督学习 基于图正则项的半监督极限学习机

    半监督学习是指在模型训练阶段同时利用有标签数据和无标签数据.我之前介绍过的半监督学习方法包括 基于分歧的半监督学习方法 机器学习教程 之 半监督学习 Tri-training方法 (论文.数据集.代码 ...

  4. 机器学习读书笔记:半监督学习

    文章目录 半监督学习 生成式方法 半监督SVM 基于分歧的方法 图半监督学习 半监督聚类 半监督学习 ​ 在真实应用场景中,训练样本集的数目通常会很大.但是都是未标记数据,特别是在一些跨领域行业中,比 ...

  5. 机器学习16:半监督学习semi-supervised

    一.why semi-supervised dataset中只有部分数据进行了lable标注,即,有的数据成对出现{输入,输出},有的数据只有输入{输入}: Transductive learning ...

  6. 李宏毅机器学习课程12~~~半监督学习

    Semi-supervised Learning The distribution of the unlabeled data tell us something. Usually with some ...

  7. 吴恩达机器学习笔记十三之推荐系统

    本节目录 1 问题形式化 2 基于内容的推荐系统 3 协同过滤 4 向量化:低秩矩阵分解 5 推行工作上的细节:均值归一化 1 问题形式化 对机器学习来说,特征是很重要的,你所选择的特征,将对你学习算 ...

  8. 机器学习笔记十三:Ensemble思想(上)

    从上面几篇的决策树开始,就可以开始进入到集成学习(ensemble learning)了,与其说集成学习是一种算法,倒不如说集成学习是一种思想. 集成学习的思想也是很自然很符合人类直观理解的. 用通俗 ...

  9. 西瓜书+实战+吴恩达机器学习(十三)监督学习之随机森林 Random Forest

    文章目录 0. 前言 1. 随机森林算法 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 Bagging:对数据集进行有放回采样,采mmm次构成一个新的数据集,基 ...

最新文章

  1. 一个较为详细的ETL系统实现方案
  2. 使用MrBayes构建贝叶斯系统发育树【实践】
  3. php 类示例,PHP类实例教程(二十二):类型提示
  4. 6.windows线程切换_主动切换
  5. P4428-[BJOI2018]二进制【树状数组,set】
  6. mysql备份与恢复 cat_MySQL备份和恢复具体实施
  7. mpython掌控板体温_用mpython x玩转掌控板——摇出好心情
  8. 网络打印机 RPC服务器不可用
  9. 当数据处理做不到实时,应该怎么办?
  10. 收集常用的.net开源项目
  11. 程序员必备14款生产力工具~
  12. stm32c8t6之跑马灯程序配置
  13. Lintcode 尾部的零
  14. 【HTML】使用Vscode快速书写HTML
  15. 数字模型制作规范(转自Unity3D群)
  16. VxRail Cluster Expansion
  17. linux下scp提示文件名过长,Linux中crontab下scp文件传输的两种方式
  18. Rust Web 全栈开发 - 1 构建TCP Server
  19. Sizzle.filter [ 源码分析 ]
  20. 【DSP开发】【VS开发】MUX和DEMUX的含义

热门文章

  1. Linux下的文件系统修复
  2. java直接量_Java教程:Java直接量(字面量)
  3. 上如何刻字_校园石阶上被人刻了1700多个字?!这次网友却说好
  4. 密码登录源码(jsp+java+数据库)
  5. 洛谷 1658 购物
  6. 装载:CodePen项目网站简介(以备不时之需)
  7. linux-security-limits
  8. 想找首歌来表达心情!
  9. adbunknown Host service问题修复
  10. Linux入门教程:Linux权限管理