大数跨境
0
0

监督学习、半监督学习、无监督学习和自监督学习的区别与联系

监督学习、半监督学习、无监督学习和自监督学习的区别与联系 AI科技在线
2025-11-19
22


监督学习、半监督学习、无监督学习和自监督学习的区别与联系

监督学习

监督学习利用大量的标注数据来训练模型,对模型的预测值和数据的真实标签计算损失,然后将误差进行反向传播(计算梯度、更新参数),通过不断的学习,最终可以获得识别新样本的能力。

图片

无监督学习

无监督学习不依赖任何标签值,通过对数据内在特征的挖掘,找到样本间的关系,比如聚类相关的任务。其与有监督学习的最主要差别即为是否需要人工标注的标签信息。真正的无监督学习应该不需要任何标注信息,通过挖掘数据本身蕴含的结构或特征,来完成相关任务,大体可以包含三类:

  1. 聚类(k-means,谱聚类等)
  2. 降维(线性降维:PCA、ICA、LDA、CCA等;非线性降维:ISOMAP、KernelPCA等;2D降维:2D-PCA)
  3. 离散点检测(比如基于高斯分布或多元高斯分布的异常检测算法)。

无监督学习最主要采用的是自动编码器的方式。编码器将输入的样本映射到隐层向量,解码器将这个隐层向量映射回样本空间。理想情况下网络的输入和输出可以保持一致即实现无损重构,因为隐层向量的维度远远小于输入样本的维度,因此可以达到降维的目的,利用学习到的隐层向量代替原始的输入样本再进行聚类等任务,使其更加的简单高效。表征/表示学习(Representation Learning)即是对如何学习隐藏向量的研究。然而,这种简单的编码-解码结构仍然存在许多问题,基于像素的重构损失通常假设每个像素之间都是独立的,从而使得它们对相关性或复杂结构进行建模的能力变差。尤其使用 损失来衡量输入和输出之间的差距时往往忽视了语义信息,但是其实语义信息对于下游任务来说更为重要。对于自编码器,仅仅实现了特征向量维度上的降低,我们所希望的不仅仅是更低的维度,还要有更为丰富的语义信息,从而帮助下游任务。而自监督学习最主要的目的就是学习到更丰富的语义表征。

半监督学习

半监督学习即让学习器不依赖外界交互,自动的利用未标记样本来提升学习性能。半监督学习可进一步划分为纯(pure)半监督学习和直推学习(transductive learning),前者假定训练数据中的未标记样本并非待测的数据,而后者则假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些未标记样本上获得最优泛化性能。

半监督深度学习算法可以总结为三类:

1. 无标签数据预训练网络后有标签数据微调(fine-tune)

对于神经网络来说,一个好的初始化可以使得结果更稳定,迭代次数更少,因此如何利用无标签数据让网络有一个好的初始化值得深讨。目前主要有两种初始化方法:无监督预训练,和伪有监督预训练。

  • 无监督预训练
    1. 用所有数据逐层重构预训练,对网络的每一层,都做重构自编码,得到参数后用有标签数据微调;
    2. 用所有数据训练重构自编码网络,然后把自编码网络的参数,作为初始参数,用有标签数据微调。
  • 伪有监督预训练:通过某种方式/算法(如半监督算法,聚类算法等),给无标签数据附上伪标签信息,先用这些伪标签信息来预训练网络,然后在用有标签数据来微调。

2. 利用从网络得到的深度特征来做半监督算法

该种方法先用有标签数据训练网络,从网络中提取数据特征,以这些特征用某种分类算法对无标签数据进行分类,挑选认为分类正确的无标签数据加入到训练集,再训练网络,如此循环。

由于循环加入挑选出来分类后的无标签数据进行训练,因而网络模型的准确率会更新提升,使得后续提出来的特征更好,后面对无标签数据分类就更精确,挑选后加入到训练集中又继续提升网络。

3. 半监督网络结构

前面的两种方法虽然是都用了有标签数据和无标签数据,但就神经网络本身而言,其实还是运行在一种有监督的方式上。2015年诞生半监督ladderNet,文章(Rasmus,A.,Valpola,H.,Honkala,M.,Berglund,M.&Raiko,T. Semi-Supervised Learning with Ladder Network.)使ladderNet应用于半监督,而且效果非常好,达到了当时的state-of-the-art性能。ladderNet是有监督算法和无监督算法的有机结合。前面提到,很多半监督深度学习算法是用无监督预训练这种方式对无标签数据进行利用的,但事实上,这种把无监督学习强加在有监督学习上的方式有缺点:两种学习的目的不一致,并不能很好兼容。无监督预训练一般是用重构样本进行训练,其编码(学习特征)的目的是尽可能地保留样本的信息;而有监督学习是用于分类,希望只保留其本质特征,去除不必要的特征。

ladderNet通过skip connection解决这个问题,通过在每层的编码器和解码器之间添加跳跃连接(skip connection),减轻模型较高层表示细节的压力,使得无监督学习和有监督学习能结合在一起,并在最高层添加分类器,ladderNet就变身成一个半监督模型。ladderNet有机地结合了无监督学习和有监督学习,解决兼容性问题,发展出一个端对端的半监督深度模型。

自督学习

相比于上述方法,自监督学习实现了用更少的样本或更少的实验来学习更多。并且自监督学习展现了出色的数据效率和泛化能力。

自监督学习是一类通过某种方式将无监督学习问题转化为有监督问题的方法。是一种特殊的无监督学习方法

 自监督学习在很多地方被定义为无监督学习问题,但是它常常被构造为监督学习问题的求解形式(典型的例如word2vec,autoencoder这类明明没标签却能够造出目标函数,使用凸优化方法求解,无中生有,这和kmeans,dbscan之类的无监督学习的范式是完全不同的)

自监督学习是指用于机器学习的标注(ground truth)源于数据本身,而非来自人工标注。判断一个工作是否属于自监督学习,除了无需人工标注这个标准之外,还有一个重要标准,就是是否学到了新的知识。对于自监督学习能够学到新信息的原理解释:

  1. 数据的丰富性和多样性:自监督学习通常利用大规模的未标记数据进行训练,这些数据往往具有丰富的内容和多样的特征。通过对这些数据进行预测任务,模型被迫探索数据中的不同方面和结构,从而能够学习到新的信息。 模型在预测过程中需要捕捉数据的多样性和复杂性,因此能够学习到更加全面和深入的知识。信息利用被最大化
  2. 任务的设计和构造:自监督学习中的任务设计是关键因素之一。通过设计具有挑战性和信息丰富度的预测任务,可以促使模型更好地学习数据的表示。例如,可以设计预测图像的旋转角度、颜色变换、上下文信息等任务,这些任务可以引导模型学习到图像的几何特征、颜色分布以及语义内容等新信息。
  3. 迁移学习和泛化能力:在自监督学习中学到的特征和表示往往具有很好的泛化能力,可以在不同任务和领域中进行有效的迁移。通过在大规模未标记数据上学习到的通用特征,模型可以在小规模标记数据上进行快速学习和适应。这种泛化能力使得模型能够从新数据中学习到新信息,而不需要重新训练或重新设计模型。
  4. 自适应和增量学习:自监督学习可以通过不断更新模型参数来适应新的数据和环境。模型可以在接收到新数据时通过自适应机制对其进行处理,并更新自身的表示能力。这种增量学习的能力使得模型能够持续学习和积累新的信息,从而不断提高性能。
  5. 特征提取和表示学习:自监督学习通过预测数据的属性或结构,推动模型学习数据的特征表示。模型在预测过程中必须捕捉数据的内在结构和规律,从而学习到更加抽象和有用的特征表示。这些特征表示可以用于解决各种任务,使得模型具有更好的泛化能力和适应性。

自监督学习的做法非常简单,就是输入的是一堆无标签的原始数据,但是通过数据本身的结构或者特性,人为构造标签出来,这个过程中会涉及到许多技术:在自监督学习中,通过数据本身的结构或特性来人为构造标签,这一过程涉及到多种技术和策略,以下是其中一些常见的技术:

  1. **数据增强(Data Augmentation)**:数据增强是一种通过对原始数据进行变换、旋转、翻转、裁剪等操作来生成更多样的数据的方法。通过对数据进行多样化的变换,可以增加数据的丰富性,从而使得模型更容易学习到数据的表示。
  2. 图像领域的技术:在图像领域,人为构造标签的技术包括图像旋转、图像裁剪、图像填充、图像颜色化等。例如,可以将原始图像旋转一定角度作为输入,然后通过模型预测这个旋转角度作为标签。
  3. 文本领域的技术:在文本领域,人为构造标签的技术包括语言模型预测、词语掩码预测、句子掩码预测等。例如,可以将文本数据中的某些词语或句子进行掩码处理,然后通过模型预测被掩码的内容。
  4. 图像像素预测:在图像领域,可以将输入的图像划分为不同的块或网格,然后要求模型根据这些块或网格来预测原始图像中的像素值。这种方法可以使模型学习到图像的局部结构和全局信息。
  5. 对比学习:对比学习是一种常见的自监督学习方法,它通过比较数据中的不同部分来构造标签。例如,可以将一张图像分成两个部分,然后要求模型判断这两个部分是否来自同一张图像。
  6. 生成模型:生成模型是一种模拟数据生成过程的模型,它可以用来构造标签。例如,在图像领域,可以使用生成对抗网络(GAN)生成与原始图像相似的假图像,然后将这些假图像作为输入,并将原始图像作为标签。

通过以上技术和策略,自监督学习可以利用无标签的原始数据构造标签,从而使模型能够学习到数据的表示和结构。这些技术的选择取决于具体的任务和数据特点,可以根据需求进行灵活组合和调整。

实际上自监督学习的应用有很多,但是其最核心的目标还是在“为下游的有监督任务学习良好的representation,即通过自监督学习能够学习到泛化性能很强的representation(也即nn里的一些layer输出的features是比较generalized,这个generalized的features反应了数据本身的一些隐藏的pattern,最好这些pattern可以在许多的下游任务中shared(transfer learning and pretrained model)),例如nlp中的许多预训练任务都可以视为自监督学习,,从transformer pretrained model的表现也可以看到自监督学习的强大。

自监督学习原理

自监督学习是一种无监督学习方法,其基本原理是通过数据本身的结构或特性来进行学习,而无需人工标注的标签。其核心思想是利用数据的内在结构和关联性来指导模型学习数据的表示。

  1. 数据预测任务设计:在自监督学习中,首先需要设计一个预测任务,这个任务可以是基于数据的某种属性或结构。这个属性或结构可以是数据本身包含的信息,也可以是通过对数据进行人为构造得到的。重要的是,这个任务需要能够利用到数据之间的关联性和内在结构,从而引导模型学习数据的表示。
  2. 模型训练:一旦确定了预测任务,就可以利用无标签的数据来训练模型。训练过程中,模型被要求根据输入数据预测出相应的标签或结构。模型通过不断地调整参数,最小化预测标签与真实标签之间的差距,从而学习到数据的表示。
  3. 特征学习与表示学习:自监督学习的目标之一是学习数据的有用表示。通过完成预测任务,模型会逐渐学习到数据的重要特征,并将其编码为一种有效的表示形式。这种表示形式可以用于解决其他相关任务,或者用作特征提取器。
  4. 迁移学习和泛化能力:通过自监督学习学到的特征表示具有很好的泛化能力,可以迁移到其他任务或领域中。这是因为这些特征表示捕捉了数据的通用结构和模式,而不是特定于某个任务或数据集。因此,可以将在自监督学习中学到的特征表示用于解决其他相关任务,从而提高模型的性能。

总的来说,自监督学习的基本原理是通过设计合适的预测任务,利用数据之间的关联性和内在结构来指导模型学习数据的表示。通过训练模型完成这些预测任务,从而学习到有用的特征表示,并提高模型的泛化能力和适应性。

1. 先验

我们的世界是在严格的物理、生物规则下运行的,那么对这个世界的观测结果(图像)也必然存在一些先验规律。例如图像上色任务,就是利用了物体类别和物体颜色分布之间的关联;image inpainting,则是利用了物体类别和形状纹理之间的关联;旋转预测任务,利用了物体类别和其朝向之间的关联。通过挖掘更多的先验,我们也能设计自己的自监督学习任务。

低熵的先验则更为有效。以运动预测任务为例:从单张图片中直接预测运动场,其利用的先验是物体的运动倾向性,而运动倾向性是比较歧义的,例如人在半蹲状态,难以预测下一时刻会站起来还是继续下蹲。因而,运动倾向性是一个高熵的先验。而以运动传播任务为例:从给定的稀疏运动来恢复完整运动场,利用的则是物体的运动学属性先验。运动学属性,例如头部是刚体,四肢是铰接体等,是较为确定的先验,那么这就是一个低熵的先验。从实验结果也可以发现,在迁移到分割任务上,运动传播比运动预测实现更好的效果.

2. 连贯性

图片具有空间连贯性,视频具有时空连贯性。那么就可以利用这些特点来设 计自监督任务。Solving Jigsaw Puzzles 利用图片中物体空间上的语义连贯性 (Noroozi,Mehdi,and Paolo Favaro."Unsupervised learning of visual representations bysolving jigsaw puzzles."European Conference on Computer Vision. Springer, Cham, 2016.), Temporal order verification 任务利用了视频中物体运动的时间连贯性。(Misra, Ishan, C. Lawrence Zitnick, and Martial Hebert. "Shuffle and learn: unsupervised learning using temporal order verification."European Conference on Computer Vision. Springer Cham, 2016)

3. 数据内部结构

自 moco 提出以来,基于 contrastive learning 方法的自监督学习逐渐成为研究热点,包括NPID,MoCo,SimCLR等,可以将它们统一为instance discrimination任务。这类任务通常对图片做各种变换,然后优化目标是同一张图片的不同变换在特征空间中尽量接近,不同图片在特征空间中尽量远离。对于这类任务,我们发现在解决instance discrimination的过程中并没有用的物体的类别标签,但是在优化后的特征空间中,同类的物体还是相对能够靠拢。这就证明了,数据之间是具有结构性和关联性的。Instance discrimination则是巧妙地利用了这种结构性和关联性。由此可以推断,BYOL也可能是利用了数据在特征空间中的分布结构特点来抛弃负样本对的同时达到了更好的精度。

自监督学习分类

自监督学习主要有两类方法,生成类方法(Generative)和区别类方法(Discriminative):

  • 生成类方法通过直接在输入空间中主动生成像素或建立像素模型来完成机器学习任务。
  • 区别类方法则是通过优化目标函数来学习潜在空间中的表征(Representation),利用学习到的表征来完成下游任务,比如对比不同的数据。
    • 在自监督方法中,区别类方法通过执行前置(pretext)任务训练网络,因此使用的用于训练网络的样本数据和标记数据一般都来自于未标记的数据集。
    • 前置任务是指用来学习视觉表征的自我监督学习任务,目的是对下游任务(也就是真正任务)使用在前置任务中获得的学习表征或模型权重。

对比学习也是一种基于潜在空间的区别类自监督学习方法,近年来获得了越来越多的关注。与有监督学习不同,对比学习不需要依赖于大量人工标记处理的样本数据,适用于更多的应用场景。此外,对比学习直接使用数据本身提供监督信息来指导学习。

对比学习的主要任务是从由相似/不相似数据对组成的数据集中学习相似/不相似的表示。利用这种方法,可以训练机器学习模型来区分相似/不相似的图像。对比学习中,机器学习的是一对「孪生网络」,即同时学习针对于正样本(相似数据)的网络和针对于负样本(不相似数据)的网络。对于这种孪生网络,对比学习中引入了损失函数处理成对的数据关系。

对比学习属于自监督学习的一个重要分支,人们常常认为自监督学习属于无监督学习,但是无监督的主要目标集中于检测特定的数据模式,如聚类、社区发现或异常检测,而自监督学习的目标是重构输入,这仍然处于监督学习的范式中,所以将其划分为混合学习问题。

生成式自监督学习:

生成式自监督学习是一种自监督学习的方法,其基本原理是通过生成模型来构造自监督任务,然后利用生成模型生成的数据进行训练。生成式自监督学习的目标是学习数据的潜在表示和分布,以及数据之间的关联性。

  1. 生成模型设计:首先,需要设计一个生成模型,用于生成与原始数据相似的数据样本。常见的生成模型包括生成对抗网络(GAN)、变分自编码器(VAE)等。这些模型通过学习数据的分布,可以生成具有类似特征的新数据。
  2. 自监督任务设计:接下来,利用生成模型生成的数据构造自监督任务。这个任务可以是基于生成数据的属性或结构的预测任务。例如,在图像领域,可以设计预测生成图像的旋转角度或填充区域的任务。
  3. 模型训练:使用生成模型生成的数据,以及设计的自监督任务,训练一个模型来完成这个任务。训练过程中,模型被要求根据输入数据预测相应的属性或结构。通过最小化预测值与真实标签之间的差距,模型逐渐学习到数据的表示和结构。
  4. 特征学习与表示学习:通过完成自监督任务,模型可以学习到数据的有用表示和潜在结构。这些表示可以用于解决其他相关任务,例如分类、目标检测、图像分割等。
  5. 迁移学习和泛化能力:生成式自监督学习学习到的特征表示具有很好的泛化能力,可以迁移到其他任务或领域中。这是因为这些特征表示捕捉了数据的通用结构和模式,而不是特定于某个任务或数据集。

总的来说,生成式自监督学习的基本原理是通过生成模型生成数据,然后利用生成数据构造自监督任务,训练模型学习数据的表示和结构。这种方法可以有效地利用大量未标记的数据进行训练,并学习到具有很好泛化能力的特征表示。

对比式自监督学习(对比学习)

对比学习是一种自监督学习的方法,其核心思想是通过比较数据中的不同部分来学习数据的表示。对比学习的目标是使得同一样本之间的表示更加接近,而不同样本之间的表示更加分散。这种方法通常涉及构建正样本和负样本对,并通过设计合适的损失函数来指导模型学习数据的表示。

下面是对比式自监督学习(对比学习)的基本原理:

  1. 样本对构建:在对比学习中,首先需要构建样本对,每个样本对由一个正样本和一个负样本组成。正样本通常是来自同一类别或同一样本的不同部分,而负样本则来自于不同类别或不同样本。构建这样的样本对可以通过随机采样或者使用领域知识来完成。
  2. 表示学习:接下来,模型被要求学习使得正样本的表示尽可能接近,而负样本的表示尽可能远离的表示方法。这可以通过设计合适的损失函数来实现。常见的损失函数包括对比损失(contrastive loss)、三元组损失(triplet loss)等。这些损失函数通常衡量了正样本之间的相似性以及正样本与负样本之间的差异性。
  3. 模型优化:通过优化损失函数,可以调整模型参数,使得模型学习到更有用的特征表示。优化过程的目标是使得同一样本之间的距离尽可能接近,而不同样本之间的距离尽可能远离。通过不断地迭代优化,模型可以逐渐学习到数据的更有用的表示。
  4. 特征提取和应用:经过对比学习训练得到的模型,可以用于提取数据的特征表示。这些特征表示可以用于解决各种相关任务,例如图像检索、目标识别、语义分割等。因为这些特征表示捕捉了数据中的差异和共性,所以具有很好的泛化能力。

总的来说,对比式自监督学习(对比学习)的基本原理是通过比较数据中的不同部分,来指导模型学习数据的表示。通过构建样本对、设计合适的损失函数,并不断地优化模型参数,可以使模型学习到更有用的特征表示,从而提高模型在相关任务上的性能。

Multi Instance Learning

多实例学习可以认为是与有监督、无监督、强化学习并列的第四种学习框架。由Dietterich等人于1997年提出,提出的背景是通过一项对分子活性的研究,文章是"Solving the Multiple-Instance Problem with Axis Parallel Rectangles"

Multi-Instance Learning (MIL) 是一种监督学习的方法,其特点是训练数据以包(bag)的形式出现,而不是以单个样本的形式出现。每个包中包含多个实例(instances),但是包的标签只能作用于整个包,而不是单个实例。

以下是 Multi-Instance Learning 的一般原理:

  1. 包表示:在 Multi-Instance Learning 中,数据以包的形式呈现,每个包由多个实例组成。实例可以是图像的区域、文档的句子、分子的化合物等。通常,每个包表示一个潜在的类别,但是包内的具体实例可能属于不同的类别。
  2. 标签定义:与传统的监督学习不同,Multi-Instance Learning 中的标签通常定义在包的级别上。这意味着一个包被标记为正类别(positive)或负类别(negative),而不是每个实例都有一个标签。
  3. 实例空间到包空间映射:在 Multi-Instance Learning 中,通常会有一个实例空间到包空间的映射。这个映射可以是简单的函数,例如求和、取平均等。通过这个映射,可以将包的表示从实例级别提升到包级别。
  4. 包级别的分类器:在训练阶段,需要设计适用于包级别标签的分类器。这个分类器需要根据包级别的表示来判断一个包是正类别还是负类别。常见的方法包括使用神经网络、支持向量机等。
  5. 学习算法:训练 Multi-Instance Learning 模型的算法通常包括 EM 算法、最大间隔包分类器(MIL SVM)、神经网络等。这些算法旨在最大化正例包和负例包之间的边界,从而实现准确的包级别分类。

Multi-Instance Learning 的应用包括医学图像分析、文本分类、目标检测等领域。在医学图像分析中,可以使用 MIL 来识别肿瘤,其中每个包代表一个病人的多个图像切片。在文本分类中,可以使用 MIL 来识别文档是否属于某个主题,其中每个包代表一个文档的多个句子或段落。


转自静域AI,仅用于学术分享,如有侵权留言删除

【声明】内容源于网络
0
0
AI科技在线
1234
内容 1090
粉丝 0
AI科技在线 1234
总阅读3.2k
粉丝0
内容1.1k