Semi-supervised learning

http://www.madongfly.cn/articles/active-learning.html

http://demonstrate.ycool.com/post.3122672.html

http://blogger.org.cn/blog/more.asp?name=DMman&id=27357

 

 

在机器学习(Machine learning)领域,监督学习(Supervised learning)、非监督学习(Unsupervised learning)以及半监督学习(Semi-supervised learning)是三类研究比较多,应用比较广的学习技术,wiki上对这三种学习的简单描述如下:

  • 监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类。
  • 非监督学习:直接对输入数据集进行建模,例如聚类。
  • 半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。

    以上表述是我直接翻译过来的,因为都是一句话,所以说得不是很清楚,下面我用一个例子来具体解释一下。

    其实很多机器学习都是在解决类别归属的问题,即给定一些数据,判断每条数据属于哪些类,或者和其他哪些数据属于同一类等等。这样,如果我们上来就对这一堆数据进行某种划分(聚类),通过数据内在的一些属性和联系,将数据自动整理为某几类,这就属于非监督学习。如果我们一开始就知道了这些数据包含的类别,并且有一部分数据(训练数据)已经标上了类标,我们通过对这些已经标好类标的数据进行归纳总结,得出一个 “数据–>类别” 的映射函数,来对剩余的数据进行分类,这就属于监督学习。而半监督学习指的是在训练数据十分稀少的情况下,通过利用一些没有类标的数据,提高学习准确率的方法。

    铺垫了那么多,其实我想说的是,在wiki上对于半监督学习的解释是有一点点歧义的,这跟下面要介绍的主动学习有关。

    主动学习(active learning),指的是这样一种学习方法:

    有的时候,有类标的数据比较稀少而没有类标的数据是相当丰富的,但是对数据进行人工标注又非常昂贵,这时候,学习算法可以主动地提出一些标注请求,将一些经过筛选的数据提交给专家进行标注。

    这个筛选过程也就是主动学习主要研究的地方了,怎么样筛选数据才能使得请求标注的次数尽量少而最终的结果又尽量好。

    主动学习的过程大致是这样的,有一个已经标好类标的数据集K(初始时可能为空),和还没有标记的数据集U,通过K集合的信息,找出一个U的子集C,提出标注请求,待专家将数据集C标注完成后加入到K集合中,进行下一次迭代。

    按wiki上所描述的看,主动学习也属于半监督学习的范畴了,但实际上是不一样的,半监督学习和直推学习(transductive learning)以及主动学习,都属于利用未标记数据的学习技术,但基本思想还是有区别的。

    如上所述,主动学习的“主动”,指的是主动提出标注请求,也就是说,还是需要一个外在的能够对其请求进行标注的实体(通常就是相关领域人员),即主动学习是交互进行的。

    而半监督学习,特指的是学习算法不需要人工的干预,基于自身对未标记数据加以利用。

    至于直推学习,它与半监督学习一样不需要人工干预,不同的是,直推学习假设未标记的数据就是最终要用来测试的数据,学习的目的就是在这些数据上取得最佳泛化能力。相对应的,半监督学习在学习时并不知道最终的测试用例是什么。

    也就是说,直推学习其实类似于半监督学习的一个子问题,或者说是一个特殊化的半监督学习,所以也有人将其归为半监督学习。

    而主动学习和半监督学习,其基本思想上就不一样了,所以还是要加以区分的,如果wiki上对半监督学习的解释能特别强调一下“是在不需要人工干预的条件下由算法自行完成对无标记数据的利用”,问题就会更清楚一些了。

     

    ------------------------------------------------------------------------------------------------------------------

    所谓的 semi-supervised learning 和 unsupervised learning
    以及 supervised learning 差异、以及与 transductive 与 inductive
    learning 的联系,这里不继续说了。常用的一些假设主要是光滑性
    (等价的说就是 low-density separation)、clustering assumption、
    manifold assumption。

    主要针对 classification 和 regression 来说。这里面一般获得的
    unlabelled 数据用来改进当前算法有几种方式。

    一种就是很纯粹的用它来做一个 generative model,如密度估计,
    又比如 DBN 在无 label 时候做的学习(本质上训练了一个 MRF),
    这也是一个 density estimation。不过最后怎么用这个 model 来
    改进原来的 learner,倒是各有不同。一种纯粹的做法就是用这个
    density 作为 kernel(用 Fisher information matrix 作为马氏距离
    那个矩阵),这样只要原来的 learner 是可以利用 kernel 的,那
    么相当于在 feature space 增加了 density 的信息。另外一种是
    作为一个 initial value,比如 DBN 就用这个作为 BP 进行 fine tune
    的初始值。

    说到 kernel 就不能忘记度量,有人也提出来用 density 去修正度
    量,比如用 1/ q(x),然后用局部距离和这个 weight 就可以获得
    最近邻分类器。另外 Jerry 早期也有一个利用 Laplacian matrix
    的谱分解获得新的度量的结果,xzt 介绍下吧 @@

    还有一种类似于 generative model,但是把 label 作为 latent variable,
    这样的话为 unlabelled data 估计 latent variable 就跟一般图模型
    里面训练参数类似了,只是 labelled data 的隐变量的值是已知的。
    一般来说这个就是通过 EM 就搞定了(先用 labelled data 初始化)。
    如果把 EM 看成软 cluster,那么可以换成硬 cluster,这主要是基
    于所谓的 clustering assumption。

    另外一种就是干脆把 generative model 作为一个 regularizer,因
    为 negated log-likelihood 一般认为是一个 loss,因此把 generative
    model 的 negated log-likelihood 放在一个 supervised learner 的
    loss 里面(有人这样改进 logistic regression)。

    wrapper 的做法挺多的,比如 self-training,co-training 和 tri-training,
    到后面一方面似乎就是做成了 multi-view learning,一方面就是 ensemble
    去了。self-training 基本上就是把自己肯定的那部分加进训练集,这个
    肯定不肯定可以用 conditional entropy 来做(也有直接用这个 entropy
    做 regularizer 的)。multi-view learning 就是把所有的分类器(用的不同
    的 feature 可能是)一起训练,然后加一个 agreement 作为 regularizer,
    逼迫多个分类器互相赞同彼此的决策。co-training 似乎还简单些,就是
    把对方觉得可信度高的样本加到自己的训练集。

    说到 conditional entropy,也就有从 information theory 来找 regularizer
    的,比如使用一个区域内样本的条件分布和整体的 KL 距离衡量光滑程度,
    这也是 Jaakkola 的工作,似乎后面一作去 google 了也没啥新进展。

    比较流行的一类就是所谓 graph-based。这里面主要的思想就是利用
    unlabelled data 做一个 graph(跟 manifold learning 里面的做法一样),
    然后可以用 Laplace matrix 作为 regularizer(其实是强迫在 graph 上
    smooth),然后也有用 graph cut(如 min cut、normalized cut)作为
    low density separation 的,另外所谓的 harmonic function 其实就是
    对 Laplace 矩阵谱分解,一般获得的跟 Laplacian Eigen map 类似,是
    一个 transductive 的结果。在就是在 graph 上面的 random walk 作为
    判定方法,从任意一个 node 出发,看到哪类样本(labelled data 作为
    吸收壁)的概率大,这是所谓 label propagation 的基本想法(似乎文
    献上有几种做法不过)。

    这里面,可以说对 SVM 的 semi-supervised 版本研究最多,可能因为
    SVM 本身优秀的性质和广为人所关注的特点吧。常见的做法,比如 TSVM
    做组合优化,通过改 unlabelled data 的 loss(非凸)做的,比如用
    CCCP、模拟退火和 continuation,也有暴力的 cutting plane。另外也有
    把 unlabelled data 的 label 作为 transductive learning 的目标,formulate
    成为一个 SDP 问题(去掉了 rank = 1 的约束)。

    有文章说道在 semi-supervised learning 领域里面,generative model
    占主要的地位不是没有道理,因为 discriminative model 并不依赖数据
    的分布(margin distr),根据 graph model 里面分析会发现后者由于
    条件独立,使得推断失去意义。那么一般对 discriminitive model 的修
    正,多是通过 regularizer 进行的,不像 generative model 很容易就把
    unlabelled data 能够用到。一种想法是通过建立某些参数之间的关系,
    增加一些边,另一种是增加新的变量(如 null category noise model)
    使得参数和 unlabelled data 不至于条件独立。

    不过需要注意的是,不是加入了 unlabelled data 就一定会获得很好的
    结果,如果使用 generative model,如果存在模型和数据的 bias,那么
    随着数据的增多,结果反而会变差。另外 outlier 的存在也可能 degrade
    generative model。Jerry 08 年 NIPS 上那篇文章想说什么呢?也请 xzt
    介绍。

    最后说一下 clustering 和 manifold learning 的 semi-supervised version,
    前者加入的是两个样本同 cluster or not 的信息,后者加入一些 landmark
    的嵌入坐标的信息。前者这两年开始有人关注了,后者似乎已经被关注过
    了。

     

    --------------------------------------------------------------------------------------------

    以下为Xiaojin Zhu在ICML2007上的陈述内容梗概,更多内容可以在他的主页上得到。懒得整理成中文了,而且很多术语虽然理解了意思,但还不知道确切的中文描述...现在才深刻体会到,要想学习前沿的知识,只有通过互联网,平常看书只是看些稳定成型的老知识。。。

    半监督学习已经兴起七八年了吧,但在中国还是刚刚起步罢。

    一、Introduction to semi-supervised learning

       What is semi-supervised learning and transductive learning?  Why can we ever learn a classifier from unlabeled data?  Does unlabeled data always help?  Which semi-supervised learning methods are out there?  Which one should I use?  Answers to these questions set the stage for a detailed look at individual algorithms.

    二、Semi-supervised learning algorithms

       In fact we will focus on classification algorithms that uses both labeled and unlabeled data.  Several families of algorithms will be discussed, which uses different model assumptions:

    1、Self-training

      Probably the earliest semi-supervised learning method.  Still extensively used in the natural language processing community.

    2、Generative models

       Mixture of Gaussian or multinomial distributions, Hidden Markov Models, and pretty much any generative model can do semi-supervised learning.  We will also look into the EM algorithm, which is often used for training generative models when there is unlabeled data.

    3、S3VMs

      Originally called Transductive SVMs, they are now called Semi-Supervised SVMs to emphasize the fact that they are capable of induction too, not just transduction.  The idea is simple and elegant, to find a decision boundary in 'low density' regions.  However, the optimization problem behind it is difficult, and so we will discuss the various optimization techniques for S3VM, including the one used in SVM-light, Convex-Concave Procedure (CCCP), Branch-and-Bound, continuation method, etc.

    4、Graph-based methods

       Here one constructs a graph over the labeled and unlabeled examples, and assumes that two strongly-connected examples tend to have the same label.  The graph Laplacian matrix is a central quantity.  We will discuss representative algorithms, including manifold regularization.

    5、Multiview learning

       Exemplified by the Co-Training algorithm, these methods employ multiple 'views' of the same problem, and require that different views produce similar classifications.

    6、Other approaches

       Metric based model selection, tree-based learning, information-based method, etc.

    7、Related problems

       Regression with unlabeled data, clustering with side information, classification with positive and unlabeled data; dimensionality reduction with side information, inferring label missing mechanism, etc.

    三、Semi-supervised learning in nature

        Long before computers come around and machine learning becomes a discipline, learning has occurred in nature.  Is semi-supervised learning part of it?  The research in this area has just begun.  We will look at a few case studies, ranging from infant word learning, human visual system, and human categorization behavior.

    四、Challenges for the future

        There are many open questions.  What new algorithms / assumptions can we make?  How to efficiently perform semi-supervised learning for very large problems?  What special methods are needed for structured output domains?  Can we find a way to guarantee that unlabeled data would not decrease performance?  What can we borrow from natural learning?  We suggest these as a few potential research directions.

     

    研究半监督的人,主页上有更多更详细的介绍:

    http://pages.cs.wisc.edu/~jerryzhu/

    http://www.kyb.tuebingen.mpg.de/~chapelle 

  •  

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Temporal Ensembling是一种半监督学习方法,它使用了时间上的一致性来提高模型的性能。该方法通过对未标记数据进行预测,并将预测结果与之前的预测结果进行平均,从而获得更加稳定和准确的预测结果。同时,该方法还使用了一个噪声注入技术来增加模型的鲁棒性。该方法已经在图像分类、语音识别等领域取得了很好的效果。 ### 回答2: Temporal Ensembling是一种半监督学习方法。它主要通过使用同一批数据的多个副本,在单批数据上进行迭代学习来提高预测模型的准确性。这种方法能够很好地利用已有数据中的潜在信息,同时也能避免因缺乏大量标注数据而损失准确性的问题。 Temporal Ensembling的核心思想是使用模型的历史预测结果来生成新的虚拟标签。在训练期间,模型不断地更新,同时不断生成新的“标注”,并将这些新的“标注”与原始标注数据一起训练。这样,模型可以从大量带有“标注”的数据中学习并逐渐提高其准确性。 Temporal Ensembling方法在许多学习任务中都展现出优良的性能,比如图像分类、物体识别、图像分割、语音识别等。其中,与其他半监督学习方法相比,Temporal Ensembling在半监督图像分类中的性能最为出色。 尽管Temporal Ensembling的性能非常出色,但是其中的一些问题仍需要解决。 首先,这种方法需要大量的GPU计算力和存储空间,并且需要复杂的算法设计。其次,由于该方法是基于生成虚拟标签的,因此,如果模型在未来预测错误而不正确地生成了虚拟标签,那么可能会产生负面影响。 总之,Temporal Ensembling是一种有效的半监督学习方法,其取得的结果显示出高水平的准确性。与其他方法相比,Temporal Ensembling具有更好的稳健性及效能。也因此,它在深度学习领域中被广泛应用。 ### 回答3: Temporal Ensembling是一种半监督学习技术,可以用于训练深度神经网络。该技术旨在利用未标记的数据来改善模型的泛化能力。在传统的监督学习中,我们需要分类器预测每个样本的标签,并将其与真实标签进行比较以计算损失函数。然而,在许多现实世界的场景中,标记数据的数量通常是有限的,这使得监督学习变得更加困难和昂贵。相反,在半监督学习中,我们将未标记的数据与标记数据结合在一起进行训练。 Temporal Ensembling的实现是基于一个假设,即相似的输入应该具有相似的潜在表示形式。具体来说,该技术通过在连续训练周期中收集了单次训练中的模型预测,通过将这些预测结果整合成一个移动平均版本来构建模型共识。这可以看作是把模型的预测提供给下一个周期的训练,让模型逐渐整合起来,在连续的训练周期中收集了对训练数据更准确的表示。在训练过程中,我们不仅使用真实标签来计算损失函数,还将平均预测意味着的交叉熵添加到损失函数中。这使得模型学习时能够尽可能地匹配模型共识中的数据。 虽然在许多情况下,半监督学习可以增加模型学习任务的效果,但它依赖于许多因素,包括未标记样本的数量、分布和标记样本之间的相似性。使用Temporal Ensembling时,需要做好降噪处理,适当选择数据能够真正提高该技术效果。此外,需要注意的是,Temporal Ensembling只能在没有过度拟合数据集时才能有效,因为此技术基于模型共识构建。在实际应用中,可以将Temporal Ensembling与其他半监督学习技术结合使用,以提高模型性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值