半监督学习

背景

  随着数据收集和存储技术的迅速发展,获取大量未标记的数据已相当容易,而获取大量有标记的数据则相当困难(需要耗费大量的人力和物力)。比如,在医学图像中,从医院收集大量的医学图像是可能的,但是要医生将这个图像逐个标记,则是不现实的。所以,如何在只有较少有标数据的情况下,利用好未标记的数据来改善模型的性能已成为当前机器学习研究中最受关注的方向之一。目前,利用未标记数据的学习技术主要有三种:

  1. 半监督学习(semi-supervised learning)
  2. 直推学习(transductive learning)
  3. 主动学习(active learning)
主动学习
引入额外的判定系统(通常是专家、人),通过交互获取额外的知识(标签),其主动在于主动提出标注请求。其目标是使用尽量少的“查询”来获得尽量好的性能,通过外界的交互来将无标数据变成有标数据。
半监督学习
与主动学习相比,半监督学习让学习器不依赖外界互动、自动地利用未标记样本来提升学习性能。

半监督学习和直推学习的区别:

  半监督学习是归纳式的,生成的模型可用作更广泛的样本;而直推学习仅仅为了当前无标记样本的分类。换句话说,前者使用无标记样本,为了以后其他样本更好的分类,后者只是为了分类好这些有限的无标记样本。

  一般情况下,我们需要在某些假设的基础上来建立未标记数据和目标之间的联系。目前,在半监督学习中有两个常用的基本假设(两种假设都是基于“相似的样本拥有相似的输出”):

  1. 聚类假设(cluster assumption)
  2. 流行假设(monifold assumption)
聚类假设
是指相同聚类中的数据有较大的可能有相同的标记(假设数据存在簇结构,同一个簇的样本属于同一个类别)。根据该假设,决策边界就应该尽量通过数据较为稀疏的地方,从而避免把稠密的聚类中的数据点分到决策边界两侧。如 TSVM算法
流形假设
(将高纬数据嵌入到低维流形中,当两个样例处于低维流行中的一个小局部领域内时,它们具有 相似的类标签),是指处于一个很小的局部领域内的数据具有相似的性质,其标记也应该相似(这一假设反映了决策函数的局部平滑性。)。 因此,流形假设可看做聚类假设的推广,但流形假设对输出值没有限制,因此比聚类假设的适用范围更广,可用于更多类型的学习任务和聚类假设的主要不同是,聚类假设主要关注的是整体特性,流形假设主要考虑的是模型的局部特性。

半监督学习算法分类

  1. self-training(自训练算法)
  2. generative methods(生成式方法)
  3. SVMs半监督支持向量机
  4. graph-based methods(图论方法)
  5. multiview learning(多视角算法)
  6. 其他方法

self-training

  两个样本,有标样本 L Labels = {( x i y i )};无标样本 U Unlabels = { x j }
  算法步骤:
    重复执行:

         1. 用样本 L 生成分类决策 F
         2. 用 F 分类样本 U,计算误差
         3. 选取 U 的子集 u(其中误差小的),加入到有标样本 L 中,即 L = L + u

  总结:算法通过 L 不断在 U 中选择其中表现良好的样本加入到 L 中,并不断更新分类算法 F

self-training 算法实例—–基于最近邻算法

  重复执行:

     1. 用 L 生产分类策略 F
     2. 选择 x = argmin {d(x, x0)},其中 x ∈ U, x0 ∈ L,也就是选择距离标记样本最近的无标记样本
     3. 用 F 给 x 分类,分类结果为 F(x)
     4. 把(x, F(x))加入 L 中

  该算法中,定义 self-trainging 的误差最小为欧氏距离小的,即用欧式距离来定义无标记样本的表现,再用 F 给个标记,加入 L 中,同时更新 F

generative methods

  

semi-Supervised Support Vector Machine(简称S3VM)

  在不考虑未标记样本时,支持向量机试图找到最大间隔划分超平面;而在考虑未标记样本后,S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面。这里的基本假设是“低密度分割”,是聚类假设在考虑了线性分割超平面划分后的推广。
  S3VM中最著名的是TSVM(Transductive Support Vector Machine),其也是一种二分类问题的学习方法。TSVM试图考虑对未标记样本进行各种可能的标记指派(label assignment),即分别标为正例和负例,然后在所有这些结果中,寻求一个在所有样本上间隔最大化的超平面。当超平面确定后,未标记样本的最终指派就是其预测结果。形式化地说,给定有标样本 D l = { ( x 1 , y 1 ) ( x 2 , y 2 ) . . . ( x l , y l ) } ,无标样本 D u = { x l + 1 . . . x l + u } ,其中 y i { 1 , + 1 } l u l + u = m ,TSV吗的学习目标是预测 D u 的标记 y ^ = ( y ^ l + 1 . . . y ^ l + u ) ,使得

(799) min ω , b , y ^ , ξ 1 2 ω 2 2 + C l i = 1 l ξ i + C u i = l + 1 m ξ i (800) s.t. y i ( w T x i + b ) 1 ξ i i = 1 , 2 , . . . , l , (801) y ^ i ( w T x i + b ) 1 ξ i i = l + 1 , l + 2 , . . . , m (802) ξ i 0 i = 1 , 2 , . . . , m
  其中, ( ω , b ) 确定一个划分超平面, ξ 为松弛变量, ξ i 对应有标样本, C l C u 是由用户定义的用于平衡模型复杂度、有标样本和无标样本重要程度的参数。刚开始 C l C u ,代表着有标样本对模型的确定性更强,也因为着无标样本很可能标记错误。
  显而易见的是,尝试未标记样本的各种标记指派是一个穷举过程,仅当未标记样本很少时才有可能直接求解。所以我们必须得考虑更加高效的优化策略。比如周志华《机器学习》提到的局部搜索来迭代最优解,就是对未标数据标记完之后,选择相反标签中两个最最可能标记错误的样本交换标签,从而更新参数。

猜你喜欢

转载自blog.csdn.net/qq_19784349/article/details/79981101