【深度学习】一文看懂监督学习、半监督学习(Semi-supervised Learning)、无监督学习、自监督学习、零样本学习(Zero-shot Learning)

机器学习中的五种学习范式:监督学习(Supervised Learning)、半监督学习(Semi-supervised Learning)、无监督学习(Unsupervised Learning)、自监督学习(Self-supervised Learning)、零样本学习(Zero-shot Learning)

引言

在机器学习的发展历程中,根据数据标注的多少和学习方式的不同,形成了多种学习范式。本文将详细介绍监督学习、半监督学习、无监督学习、自监督学习和零样本学习这五种学习方法与相关的重要概念(已经标黄),分析它们的原理、应用场景、优缺点以及发展趋势。

1. 监督学习(Supervised Learning)

1.1 基本概念

监督学习是最传统也是应用最广泛的机器学习方法,其核心在于通过带有标签的训练数据来学习输入与输出之间的映射关系。

1.2 工作原理

  • 训练数据:包含输入特征X和对应的标签Y
  • 学习过程:通过最小化预测值与真实标签之间的误差来优化模型参数
  • 预测:对新的未知数据进行预测

1.3 常见算法

  • 分类算法:决策树、支持向量机(SVM)、随机森林、神经网络
  • 回归算法:线性回归、岭回归、LASSO回归

1.4 应用场景

  • 图像分类
  • 语音识别
  • 垃圾邮件过滤
  • 疾病诊断

1.5 优缺点

优点:

  • 性能通常较高
  • 结果可解释性强
  • 应用广泛

缺点:

  • 依赖大量标注数据
  • 标注成本高
  • 容易过拟合

2. 半监督学习(Semi-supervised Learning)

半监督学习

2.1 基本概念

半监督学习位于监督学习和无监督学习之间,它同时利用少量标记数据和大量未标记数据进行训练。

2.2 工作原理

  • 利用少量标记数据训练初始模型
  • 使用该模型对未标记数据进行伪标记
  • 结合原始标记数据和伪标记数据继续训练模型
  • 迭代优化直至收敛

2.3 分类

(这里的参考资料:一文看懂半监督学习(Semi-supervised Learning)和自监督学习(Self-Supervised Learning)
(1)归纳半监督学习(Inductive Semi-supervised Learning):
假定训练数据中的未标记样本并非待测的数据,而是用于提高模型泛化性能的额外信息
在训练时只使用训练数据,测试时面对的是全新的、从未见过的测试数据
目标是学习一个能够对未来新数据进行预测的通用模型

(2)直推半监督学习(Transductive Semi-supervised Learning):
假定学习过程中所考虑的未标记样本恰是待预测的数据,学习的目的就是直接对这些未标记样本进行分类
训练模型时已经同时用到了训练和测试数据
直接将未标记样本作为预测对象,通过学习过程直接获得这些样本的标记

2.4 常见方法

  • 自训练(Self-training)
  • 协同训练(Co-training)
  • 基于图的半监督学习
  • 生成模型方法

2.5 应用场景

  • 文本分类
  • 医学图像分析
  • 语音识别
  • 网页分类

2.6 优缺点

优点:

  • 减少标注数据需求
  • 提高模型泛化能力
  • 降低数据标注成本

缺点:

  • 伪标签可能引入噪声
  • 算法设计复杂
  • 理论基础相对薄弱

3. 无监督学习(Unsupervised Learning)

3.1 基本概念

无监督学习不需要标记数据,它通过分析数据内在的结构和模式来发现数据中的规律。

3.2 工作原理

  • 无需标签数据
  • 通过数据的内在结构和分布特征进行学习
  • 发现数据中的隐藏模式和关系

e.g. 一些数据集图片中有猫的图片也有狗的图片。
监督学习的训练数据是有标签的(有图,并且有与每一张图对应的“猫”与“狗”的答案),它的目的判断出给出的图片是猫还是狗
无监督学习的训练数据是没有标签的(只有图,没有与每一张图对应的“猫”与“狗”的答案),它只需要判断出哪些图片是“第一类”,哪些图片是第二类就可以了。至于每一类具体是猫还是狗,这对于无监督学习来说不重要。
(这里的参考资料:一文弄懂什么是对比学习(Contrastive Learning)

3.3 常见算法

  • 聚类算法:K-means、DBSCAN、层次聚类
  • 降维算法:PCA、t-SNE、UMAP
  • 异常检测:孤立森林、One-Class SVM
  • 生成模型:VAE、GAN

3.4 应用场景

  • 客户分群
  • 异常检测
  • 推荐系统
  • 特征学习

3.5 优缺点

优点:

  • 无需标注数据
  • 可发现未知的数据模式
  • 适用于探索性分析

缺点:

  • 结果难以评估
  • 性能通常不如监督学习
  • 解释性较差

4. 自监督学习(Self-supervised Learning)

4.1 基本概念

自监督学习是一种特殊的无监督学习方法,它通过从数据本身自动生成监督信号,无需人工标注。其无需人工标注的特性也使得有人将其作为无监督学习的一种特殊形式。

4.2 工作原理

  • 从原始数据中构造预测任务
  • 数据本身提供监督信号
  • 通过解决这些预测任务学习有用的特征表示

4.3 常见方法

  • 对比学习(Contrastive Learning):SimCLR、MoCo、BYOL
    对比学习(Contrastive Learning)是一种自监督学习方法,其核心思想是学习如何将相似的样本表示得更接近,而将不相似的样本表示得更远离。这种方法不需要大量的人工标注数据,而是通过数据本身的结构来学习有用的特征表示。
    对比学习的基本原理涉及到以下几个概念:
    正负样本对:对比学习通常基于正样本对(positive pairs)和负样本对(negative pairs)的概念。正样本对是指应该被视为相似的样本,而负样本对是指应该被视为不相似的样本
    表示学习:对比学习的目标是学习一个编码器(encoder),将输入数据映射到一个特征空间,使得正样本对在特征空间中的距离较近,而负样本对的距离较远
    对比损失函数:常用的对比损失函数包括NCE(Noise Contrastive Estimation)、InfoNCE、Triplet Loss等。

常见的对比学习方法
SimCLR:由Google提出,通过对同一图像的不同数据增强视图作为正样本对,其他图像作为负样本,学习视觉表示。
MoCo:由Facebook AI提出,引入了动量编码器和队列机制,有效地利用了大量的负样本。
CLIP:由OpenAI提出,通过对图像和文本的对比学习,实现了跨模态的表示学习。 CPC:在语音和时序数据领域的对比预测编码方法。

  • 掩码预测:BERT、MAE
  • 上下文预测:Word2Vec (这里的参考资料:自监督学习 | (1) Self-supervised Learning入门
    Word2vec 是在 NLP 领域中的一个重要的算法。Word2vec 主要是利用语句的顺序,例如 CBOW 通过前后的词来预测中间的词,而 Skip-Gram 通过中间的词来预测前后的词。

P.S. 在图像处理领域也有类似的“上下文”操作:研究人员通过一种名为 Jigsaw(拼图)的方式来构造辅助任务。我们可以将一张图分成 9 个部分,然后通过预测这几个部分的相对位置来产生损失。比如我们输入一张图中的小猫的眼睛和右耳朵,期待让模型学习到猫的右耳朵是在脸部的右上方的,如果模型能很好的完成这个任务,那么我们就可以认为模型学习到的表征是具有语义信息的。[1]
还有一种方式是:将图片中的随机的一部分删掉,然后利用剩余的部分来预测被删掉的部分,只有模型真正读懂了这张图所代表的含义,才能有效的进行补全。[2]
还有一种使用方式是针对图片的颜色信息的,比如给模型输入图像的灰度图,来预测图片的色彩。只有模型可以理解图片中的语义信息才能得知哪些部分应该上怎样的颜色,比如天空是蓝色的,草地是绿色的,只有模型从海量的数据中学习到了这些语义概念,才能得知物体的具体颜色信息。这个模型在训练结束后可以做这种图片上色的任务。[3]

  • 生成式预训练:GPT系列

4.4 应用场景

  • 大规模预训练语言模型
  • 计算机视觉表示学习
  • 多模态学习
  • 语音识别预训练

4.5 优缺点

优点:

  • 不需要人工标注
  • 可利用海量未标注数据
  • 学到的表示通常具有良好的迁移能力

缺点:

  • 预训练任务设计需要专业知识
  • 计算资源需求大
  • 下游任务仍可能需要微调

5. 零样本学习(Zero-shot Learning)

5.1 基本概念

零样本学习是指模型能够识别或分类在训练过程中从未见过的类别,通过学习类别之间的语义关系来实现。

⚠ 请注意!有一组非常容易混淆的概念:
(1)Zero-shot Learning(零样本学习)

零样本学习是指模型能够识别或处理在训练过程中从未见过的类别或任务的能力。这种方法的核心思想是:

  • 模型通过学习到的知识来泛化到新的、未见过的类别
  • 不需要针对新任务或新类别提供专门的训练样本
  • 通常依赖于类别之间的语义关系或属性信息
    例如,一个经过训练的大型语言模型可以回答它在训练数据中从未明确学习过的问题,或者执行它从未专门训练过的任务,如翻译、摘要或代码生成。

(2)Prompt Tuning(提示词调优)

提示词调优又称指令微调,是一种轻量级的模型调整技术,主要应用于预训练语言模型。它的特点包括:

  • 不修改模型的参数,而是通过优化输入**提示(prompt)**来提高模型在特定任务上的表现(也就是我们日常所说的“调教AI”(bushi)
  • 完全微调fine-tuning)更加高效,需要的计算资源更少
  • 可以为不同任务维护不同的提示词,而共享同一个基础模型

提示词调优的方法有多种,包括:
①连续提示词调优(Continuous Prompt Tuning):学习连续的、可优化的向量作为提示词
②离散提示词调优(Discrete Prompt Tuning):通过搜索或生成最佳的自然语言提示词
③前缀调优(Prefix Tuning):在输入序列前添加可训练的前缀向量

这两种技术在现代AI系统中都非常重要,特别是在大型语言模型(LLMs)的应用中。
其区别在于:零样本学习使模型能够应对新情况,解决模型泛化到新任务的问题;而提示词调优则提供了一种高效的方式来优化模型在特定任务上的表现,而无需完全重新训练模型(保持模型参数不变)。

5.2 工作原理

  • 建立视觉特征与语义描述之间的映射
  • 利用辅助信息(如类别属性或文本描述)
  • 在测试时识别未见过的类别

5.3 常见方法

  • 基于属性的方法
  • 基于词嵌入的方法
  • 生成式方法
  • 大型语言模型的零样本能力

5.4 应用场景

  • 稀有物种识别
  • 新产品分类
  • 跨语言任务处理
  • 开放域问答

5.5 优缺点

优点:

  • 能识别训练中未见过的类别
  • 减少对标注数据的依赖
  • 具有良好的泛化能力

缺点:

  • 性能通常低于传统监督学习
  • 需要高质量的辅助信息
  • 领域适应性挑战大

6. 各学习范式的比较

学习范式标注数据需求计算复杂度泛化能力应用难度
监督学习
半监督学习中-高中-高
无监督学习中-高
自监督学习无(自生成)
零样本学习低(辅助信息)中-高

7. 未来发展趋势

  1. 多范式融合:不同学习范式的结合将成为趋势,如自监督预训练+少量监督微调
  2. 数据效率提升:减少对大规模标注数据的依赖
  3. 模型可解释性:增强模型决策过程的透明度
  4. 多模态学习:跨模态知识迁移与融合
  5. 持续学习:模型能够不断学习新知识而不遗忘旧知识

8. 总结

机器学习的不同学习范式各有优缺点,适用于不同的应用场景。随着技术的发展,这些方法之间的界限正变得越来越模糊,各种混合方法不断涌现。理解这些基本学习范式对于选择合适的机器学习方法解决实际问题至关重要。


希望这篇文章对你了解机器学习中的各种学习范式有所帮助!如果有任何问题,欢迎在评论区留言讨论🤓


参考文献

[1] Carl Doersch, Abhinav Gupta, and Alexei A. Efros. Unsupervised Visual Representation Learning by Context Prediction. In ICCV 2015.
[2] Deepak Pathak et al. Context Encoders: Feature Learning by Inpainting. In CVPR 2016.
[3] Zhang, R., Isola, P., & Efros, A. A. Colorful image colorization. In ECCV 2016.

### 零样本学习Zero-Shot Learning)概述 零样本学习是一种特殊的机器学习范式,旨在使模型能够在没有任何目标类别标注数据的情况下完成分类或其他任务。其核心理念在于利用已知类别的知识迁移至未知类别上,从而实现对未见类别的预测和推理。 #### 概念定义 零样本学习的关键特性是通过引入辅助信息来建立不同类别之间的关联关系。这种辅助信息通常表现为语义描述、属性向量或者预训练的语言模型嵌入等形式。例如,在图像识别领域,可以通过文字描述或属性标签将新类别与已有类别联系起来[^1]。 #### 方法论分析 目前主流的零样本学习方法可以分为以下几类: 1. **基于属性的方法** 这种方法假设每个类别都可以由一组固定的属性表示。通过对这些属性的学习,模型可以在不接触具体实例的前提下推断出未知类别的特征。这种方法依赖于高质量的人工设计属性集,但在复杂场景下的泛化能力可能受限[^2]。 2. **基于嵌入空间的方法** 此类技术主要借助自然语言处理工具构建词向量表征作为桥梁连接视觉特征与语义含义。比如Word2Vec、GloVe等算法生成的文字表达形式被广泛应用于跨模态匹配任务中[^3]。 3. **生成对抗网络(GANs)** 利用GAN架构合成虚拟样本来扩充稀疏分布的数据集合,进而提升模型对于少见甚至完全缺失样本情况下的鲁棒性表现。此策略特别适合处理极度不平衡的数据集结构问题。 4. **图神经网络(Graph Neural Networks, GNNs)** 图结构能够很好地捕捉实体间的关系模式,因此采用GNN建模有助于增强节点之间交互作用的理解程度,进一步促进跨域知识传递效率提高。 #### 应用场景探讨 由于具备强大的泛化能力和较低的成本需求,零样本学习已经在多个行业得到了广泛应用: - **计算机视觉**: 如物体检测、细粒度分类等领域均受益匪浅;即使面对全新种类的目标物也能给出合理判断依据。 - **自然语言处理(NLP)**: 实体链接、情感分析等方面展现了良好效果,尤其当遇到罕见词汇组合时仍能保持较高准确性水平。 - **医疗健康诊断**: 当缺乏足够的病患记录用于特定疾病的早期筛查时,ZSL提供了一条可行路径去探索潜在规律。 - **推荐系统优化**: 对冷启动问题有显著改善作用,帮助平台更快更好地服务于初次使用者群体。 ```python import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer = AutoTokenizer.from_pretrained("bert-base-cased") model = AutoModelForSequenceClassification.from_pretrained("bert-base-cased") def zero_shot_classification(text, candidate_labels): inputs = tokenizer([text]*len(candidate_labels), truncation=True, padding=True, return_tensors="pt") outputs = model(**inputs).logits.softmax(dim=-1) scores = dict(zip(candidate_labels, outputs.detach().numpy()[0])) return sorted(scores.items(), key=lambda item:item[1], reverse=True) # Example usage of ZSL function with predefined labels. result = zero_shot_classification("This movie was absolutely fantastic!", ["positive", "negative"]) print(result) ``` 上述代码片段展示了一个简单的基于BERT模型实现文本情绪倾向评估的例子,其中运用到了零样本学习的思想来进行多选项间的概率计算比较操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值