半监督深度学习

moonspace moonspace     2022-12-02     146

关键词:

半监督学习

  • 在有标签数据+无标签数据混合成的训练数据中使用的机器学习算法。一般假设,无标签数据比有标签数据多,甚至多得多。

  • 要求

    • 无标签数据一般是有标签数据中的某一个类别的(不要不属于的,也不要属于多个类别的);
    • 有标签数据的标签应该都是对的;
    • 无标签数据一般是类别平衡的(即每一类的样本数差不多);
    • 无标签数据的分布应该和有标签的相同或类似 。
  • 半监督学习算法

    • 简单自训练(simple self-training):用有标签数据训练一个分类器,然后用这个分类器对无标签数据进行分类,这样就会产生伪标签(pseudo label)或软标签(soft label),挑选你认为分类正确的无标签样本(此处应该有一个挑选准则),把选出来的无标签样本用来训练分类器

      技术图片

    • 协同训练(co-training):是 self-training 的一种,但其思想是好的。假设每个数据可以从不同的角度(view)进行分类,不同角度可以训练出不同的分类器,然后用这些从不同角度训练出来的分类器对无标签样本进行分类,再选出认为可信的无标签样本加入训练集中。由于这些分类器从不同角度训练出来的,可以形成一种互补,而提高分类精度;就如同从不同角度可以更好地理解事物一样。

    • 半监督字典学习:是 self-training 的一种,先是用有标签数据作为字典,对无标签数据进行分类,挑选出认为分类正确的无标签样本,加入字典中(此时的字典就变成了半监督字典了)

    • 标签传播算法(Label Propagation Algorithm):是一种基于图的半监督算法,通过构造图结构(数据点为顶点,点之间的相似性为边)来寻找训练数据中有标签数据和无标签数据的关系。只是训练数据中,这是一种直推式的半监督算法,即只对训练集中的无标签数据进行分类,这其实感觉很像一个有监督分类算法...,但其实并不是,因为其标签传播的过程,会流经无标签数据,即有些无标签数据的标签的信息,是从另一些无标签数据中流过来的,这就用到了无标签数据之间的联系

    • 半监督支持向量机:监督支持向量机是利用了结构风险最小化来分类的,半监督支持向量机还用上了无标签数据的空间分布信息,即决策超平面应该与无标签数据的分布一致(应该经过无标签数据密度低的地方)(这其实是一种假设,不满足的话这种无标签数据的空间分布信息会误导决策超平面,导致性能比只用有标签数据时还差)

  • 半监督学习分类

    • 纯(pure)半监督学习:假定训练数据中的未标记样本并非待测的数据
    • 直推学习:假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些未标记样本上获得最优泛化性能

    技术图片

半监督深度学习

  • 半监督深度学习算法

    • 无标签数据预训练网络后有标签数据微调(fine-tune);
    • 有标签数据训练网络,利用从网络中得到的深度特征来做半监督算法;
    • 让网络 work in semi-supervised fashion。
  • 对于神经网络来说,一个好的初始化可以使得结果更稳定,迭代次数更少。目前我见过的初始化方式有两种:

    • 无监督预训练:用所有训练数据训练自动编码器(AutoEncoder),然后把自编码网络的参数作为初始参数,用有标签数据微调网络(验证集)。
    • 伪有监督预训练:通过半监督算法或聚类算法等方式,给无标签数据附上伪标签信息,先用这些伪标签信息来预训练网络,然后再用有标签数据来微调网络(验证集)。
  • 有标签数据提取特征的半监督学习

  1. 先用有标签数据训练网络(此时网络一般过拟合...)
  2. 通过隐藏层提取特征,以这些特征来用某种分类算法对无标签数据进行分类
  3. 挑选认为分类正确的无标签数据加入到训练集
  4. 重复上述过程
  • 网络本身的半监督学习(端到端的半监督深度模型

    • ICML 2013 的文章Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks:该文章简单的说就是在伪标签学习中使用深度学习网络作为分类器,就是把网络对无标签数据的预测,作为无签数据的伪标签(Pseudo label),用来对网络进行训练。方法虽然简单,但是效果很好,比单纯用有标签数据有不少的提升

    • 其主要的贡献在于损失函数的构造:

      [L=sum_m=1^nsum_i=1^C L(y_i^m, f_i^m)+alpha(t)sum_m=1^n^primesum_i=1^CL(y^prime_i^m, f^prime_i^m) ]

      损失函数的第一项是有标签数据的损失,第二项是无标签数据的损失
      在无标签数据的损失中, (y‘)为无标签数据预测得到的伪标签,是直接取网络对无标签数据的预测的最大值为标签。
      其中 (alpha (t))决定着无标签数据的代价在网络更新的作用,选择合适的 (alpha (t)) 很重要,太大性能退化,太小提升有限。
      在网络初始时,网络的预测时不太准确的,因此生成的伪标签的准确性也不高。
      在初始训练时, (alpha (t)) 要设为 0,然后再慢慢增加,论文中给出其增长函数。

    • Semi-Supervised Learning with Ladder Networks

      ladderNet 是有监督算法和无监督算法的有机结合。前面提及到的无监督预训练+有监督微调的思想中所有监督和无监督是分开的,两个阶段的训练相互独立,并不能称之为真正的半监督学习。

      无监督学习是用重构样本进行训练,其编码(学习特征)的目的是尽可能地保留原始数据的信息;而有监督学习是用于分类,希望只保留其本质特征,去除不必要的特征。

      举例来说:分类任务判断一张人脸图片是单眼皮,还是双眼皮;那么有监督学习经过训练完毕后,就会尽可能的把与这个分类任务无关的信息过滤掉,过滤的越好,那么分类的精度将会更高。
      比如一个人的嘴巴、鼻子信息这些都是与这个分类任务无关的,那么就要尽量的过滤掉,因此,基于这个原因以至于一直以来有监督学习和无监督学习不能很好的兼容在一起。
      ladderNet 成功的原因在于损失函数和 skip connection 。通过在每层的编码器和解码器之间添加跳跃连接(skip connection),减轻模型较高层表示细节的压力,使得无监督学习和有监督学习能结合在一起,并在最高层添加分类器。

      [Cost=-sum_n=1^NlogP(haty(n)=y^*(n)mid x(n))+sum_n=N+1^Mlambda_l ReconsructionCost(z^(l)_(n),hatz^(l)_(n)) ]

      损失函数的第一项是有标签样本数据的交叉熵损失函数,第二项是无监督各层噪声解码器重构误差欧式损失函数

参考







半监督学习总结(代码片段)

半监督学习Semi-supervisedLearning简介半监督深度学习无标签数据预训练,有标签数据微调利用从网络得到的深度特征来做半监督算法MakeNetworkworkinsemi-supervisedfashionPseudo-Label:TheSimpleandEfficientSemi-SupervisedLearningMethodforDeepNeuralNetwor 查看详情

半监督学习总结(代码片段)

半监督学习Semi-supervisedLearning简介半监督深度学习无标签数据预训练,有标签数据微调利用从网络得到的深度特征来做半监督算法MakeNetworkworkinsemi-supervisedfashionPseudo-Label:TheSimpleandEfficientSemi-SupervisedLearningMethodforDeepNeuralNetwor 查看详情

深度学习之无监督训练

...习,总结并记录与一下学习笔记。1.在标签数据集中做的监督学习容易导致过拟合,半监督学习由于可以从无标签数据集中学习,可以有一定概率化解这种情况。2.深度学习所使用的算法不能太复杂,否则会加大计算复杂度和工... 查看详情

预备知识

...    机器学习:  机器学习分类:   有监督学习:        有监督学习的典型应用模式:        神经网络:         常见激活函数:  无监督学习:      无监... 查看详情

机器学习的方法都有哪些?

机器学习的方法主要有以下几种:监督学习:监督学习是机器学习中最常见的方法之一,在监督学习中,系统会被给定一组已知输入和输出的样本数据,系统需要学习到一种函数,使得该函数能够根据给定的输入预测出正确的输出。无监... 查看详情

[人工智能-深度学习-54]:什么是非监督式学习以及常见的非监督式学习的模式(代码片段)

...客本文网址:[人工智能-深度学习-54]:什么是非监督式学习以及常见的非监督式学习的模式_文火冰糖(王文兵)的博客-CSDN博客目录第1章机器学习的种类第2章监督学习(Supervisedlearning)第3章非监督学习(Unsupervisedlear... 查看详情

监督学习,无监督学习和半监督学习

概念:监督学习、无监督学习与半监督学习监督学习:supervisedlearning 无监督学习:unsupervisedlearning 半监督学习:semi-supervisedlearning2、概念监督学习:用一部分已知分类、有标记的样本来训练机器后,让它用学到的特征,... 查看详情

监督学习非监督学习半监督学习

...器学习(Machinelearning)领域,主要有三类不同的学习方法:监督学习(Supervisedlearning)、非监督学习(Unsupervisedlearning)、半监督学习(Semi-supervisedlearning),监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数... 查看详情

机器学习中的有监督学习,无监督学习,半监督学习

...器学习(Machinelearning)领域。主要有三类不同的学习方法:监督学习(Supervisedlearning)、非监督学习(Unsupervisedlearning)、半监督学习(Semi-supervisedlearning),监督学习:通过已有的一部分输入数据与输出数据之间的相应关系。生成一个函数... 查看详情

怎么快速入门深度学习

...,首先深度学习属于机器学习的一个分支,机器学习分为监督学习、无监督学习、强化学习、半监督学习和深度学习要想学习深度学习就必须先学习机器学习,学习机器学习,首先需要储备的知识就是高等数学、线性代数以及统... 查看详情

基于半监督学习算法的文本分类(自训练)

半监督学习文本分类系列用半监督算法做文本分类(sklearn)sklearn半监督学习(sklearn)摘要之前调用sklearn库里的半监督算法——标签传播算法做文本分类,但是它无法支持大数据量的操作,所以就放弃了。小的数据量是可以跑的,详... 查看详情

有监督学习无监督学习半监督学习

1.有监督学习:教计算机如何做事情。  对于机器学习来说,有监督学习就是训练数据既有特征又有标签,通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。举例:... 查看详情

半监督学习(转载)

半监督学习 黎 铭0 引言机器学习(machinelearning)是人工智能的核心研究领域,是智能信息处理的重要途径。监督学习(supervisedlearning)是机器学习中研究最多、应用最广泛的一种学习途径。在传统的监督学习中,学习系统... 查看详情

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

 直推学习实际上是半监督学习的一部分。如果用来学习的数据中未标记数据就是最终要预测的数据,那么就是直推学习;如果不知道最后用来预测的数据是什么,就是单纯的半监督学习。 查看详情

半监督学习的测试数据

】半监督学习的测试数据【英文标题】:semi-supervisedlearning\'stestingdata【发布时间】:2012-11-0806:18:53【问题描述】:半监督学习使用一组标记数据(L)训练一个模型来预测一组未标记数据(U),然后将新的标记数据(L\')和原始... 查看详情

技术分享|半监督学习介绍

...研究表明,使用大量未标记数据和少量标记数据的半监督学习(SSL)对分类非常有益。这些方法可以分为一致性方法,伪标签方法,表征学习。一些工作试图将SSL应用于语义分割。naive-student使用一个大模型来... 查看详情

无监督弱监督半监督强化多示例学习是什么

什么是监督学习、无监督学习、强化学习、弱监督学习、半监督学习、多示例学习?随着机器学习问题不断深入人心,人们也将现实中遇到不同的问题分为不同的学习方式,其中,最基础的应属监督学习,无监督学习和强化学习... 查看详情

sklearn:半监督学习 - LabelSpreadingModel 内存错误

】sklearn:半监督学习-LabelSpreadingModel内存错误【英文标题】:sklearn:semi-supervisedlearning-LabelSpreadingModelmemoryerror【发布时间】:2017-02-2702:08:21【问题描述】:我使用sklearnLabelSpreadingModel如下:label_spreading_model=LabelSpreading()model_s=lab 查看详情