当前位置: 首页 > news >正文

自监督学习的学习笔记

文章目录

  • 一、基本概念
    • 1. 自监督学习的定义
    • 2. 与监督学习和无监督学习的关系
    • 3. 自监督学习的核心要素:代理任务 (Pretext Task)
  • 二、自监督学习的有效应用场景
  • 三、实现自监督学习的方法
    • 1. 对比学习 (Contrastive Learning)
    • 2. 预测/生成学习 (Predictive/Generative Learning)
  • 四、总结

一、基本概念

1. 自监督学习的定义

自监督学习(Self-Supervised Learning, SSL)是一种介于监督学习和无监督学习之间的机器学习范式。它的核心思想是:利用数据本身内在的结构或属性,自动地为无标签数据生成标签(或称为伪标签、代理标签),然后像监督学习一样训练模型。
自监督学习是预训练过程,它能够让神经网络以监督学习的方式学习大规模无标签数据集。

换句话说,它不依赖于人类手动标注的数据(如图像分类中的“猫”、“狗”标签,或文本情感分析中的“积极”、“消极”标签),而是设计一个代理任务(Pretext Task),这个任务的目标可以从数据本身推断出来。模型在解决这个代理任务的过程中,被迫学习到数据的有意义的、可迁移的表征(Representations)或嵌入(Embeddings)

2. 与监督学习和无监督学习的关系

  • 监督学习 (Supervised Learning): 需要大量的 (输入, 标签) 对,标签由人工提供。模型直接学习从输入到人工标签的映射。
  • 无监督学习 (Unsupervised Learning): 只有输入数据,没有标签。目标是发现数据中的结构,如聚类(Clustering)、降维(Dimensionality Reduction)、密度估计(Density Estimation)。
  • 自监督学习 (Self-Supervised Learning): 只有输入数据,但通过设计代理任务自动生成 (输入, 伪标签) 对。目标通常是学习通用的数据表征,这些表征随后可以用于各种下游任务(通常只需要少量的人工标签进行微调)。可以看作是无监督学习的一种特定方法论,或者是一种特殊的监督学习(其监督信号来自数据自身)。

3. 自监督学习的核心要素:代理任务 (Pretext Task)

代理任务的设计是自监督学习的关键。这个任务应该:

(1) 可自动生成标签: 标签必须能从原始数据中直接或通过简单的变换得到。
(2) 迫使模型学习语义: 解决任务需要模型理解数据的某些深层结构、关系或语义信息,而不仅仅是表面统计特征。

二、自监督学习的有效应用场景

自监督学习在以下情况尤其有效和重要:

  1. 存在大量无标签数据,但标签数据稀缺或昂贵: 这是最主要的应用场景。例如,互联网上有海量的图片和文本,但为它们打上精确标签成本极高。医学影像、卫星图像、语音识别等领域也面临同样问题。自监督学习可以充分利用这些无标签数据进行预训练。
  2. 需要学习通用的、可迁移的特征表示: 自监督学习的主要目标是学习数据的内在结构,得到的表征通常比纯无监督方法(如 PCA 或 K-Means)包含更丰富的语义信息,并且可以很好地迁移到相关的下游任务(如分类、检测、分割等)。
  3. 作为大型模型(如 Foundation Models)的预训练方法: 现代大型语言模型(如 BERT, GPT 系列)和视觉模型(如 SimCLR, MoCo, DINO, MAE)大多采用自监督学习在海量数据上进行预训练,学习通用的知识和表征能力。
  4. 提高下游任务的样本效率: 经过自监督学习预训练的模型,在进行下游任务的微调(Fine-tuning)时,通常只需要少量的有标签数据就能达到很好的性能,甚至有时能实现零样本(Zero-shot)或少样本(Few-shot)学习。
  5. 特定领域的表征学习: 当通用预训练模型在特定领域(如医学、金融)效果不佳时,可以在该领域的无标签数据上进行自监督学习,以获得更适配的表征。

三、实现自监督学习的方法

自监督学习主要分为两大类——对比自监督学习(Contrastive Self-Supervised Learning,即对比学习)和自预测(Self-Prediction)。

1. 对比学习 (Contrastive Learning)

  • 核心思想: 通过学习将数据的不同“视图”(通常是通过数据增强生成的)在嵌入空间(潜空间)中拉近(正样本对),同时将不同数据的视图推远(负样本对)。模型需要区分哪些视图来自同一个原始样本。也就是说,神经网络所产生的嵌入向量,能够使得相似训练样本之间的向量距离最小化、不相似样本之间的距离最大化。
  • 常见方法:
    • SimCLR (Simple Framework for Contrastive Learning of Visual Representations): 使用同一图像的两个不同增强版本作为正样本对,同一批次中的其他图像作为负样本对。需要较大的批次大小。
    • MoCo (Momentum Contrast): 使用一个队列(memory bank)来存储大量的负样本表示,并使用动量更新的编码器来提高表示的一致性,解决了 SimCLR 对大批次大小的依赖。
    • BYOL (Bootstrap Your Own Latent): 只使用正样本对。通过一个在线网络预测目标网络(动量更新)对同一图像不同增强版本的表示,避免了负样本的使用,防止模型坍塌(输出恒定)。
    • SwAV (Swapping Assignments between multiple Views of the same image): 结合了对比学习和在线聚类。强制同一图像不同视图的编码被分配到相同的“原型”(聚类中心)。
潜空间 (Latent Space)
拉近
拉近
推远
推远
z_B 猫视图2
z_A 猫视图1
z_C 狗视图
z_D 汽车视图
对比损失

2. 预测/生成学习 (Predictive/Generative Learning)

  • 核心思想: **自预测(Self-prediction)**是该方法的核心思想(甚至可把这类方法乘坐自预测方法),即隐藏或破坏输入数据的一部分(如通过设置掩码mask这样的的早点来掩蔽输入),然后让模型根据剩余的部分来预测或重建被隐藏/破坏的部分。添加扰动掩码后进行自预测如下图所示(该图摘自Machine Learning Q and AI 30 Essential Questions and Answers on Machine Learning and AI)

自预测

  • 常见方法 (视觉领域):

    • 图像修复 (Image Inpainting): 随机移除图像的一个区域,让模型预测缺失的像素。
    • 图像上色 (Image Colorization): 输入灰度图像,让模型预测其彩色版本。
    • 上下文预测 (Context Prediction) / 相对位置预测 (Relative Patch Prediction): 将图像分割成多个图块,打乱顺序或取出一个图块,让模型预测图块间的相对位置关系(如哪个图块在中心图块的右边)。
    • 旋转预测 (Rotation Prediction): 将图像随机旋转 0, 90, 180, 270 度,让模型预测施加了哪个旋转角度。
    • 掩码自编码器 (Masked Autoencoders, MAE): 随机掩盖图像的大部分区域(例如 75%),然后让模型仅基于可见的小部分区域重建出被掩盖的像素。
  • 常见方法 (自然语言处理领域):

    • 掩码语言模型 (Masked Language Model, MLM): (BERT, RoBERTa) 随机掩盖句子中的一些词(Token),让模型根据上下文预测被掩盖的词。
    • 下一句预测 (Next Sentence Prediction, NSP): (BERT 早期使用,后被证明效果有限或有负面影响) 给定两个句子 A 和 B,判断 B 是否是 A 的实际下一句。
    • 自回归语言模型 (Autoregressive Language Model): (GPT 系列) 根据前面的词预测下一个词。

四、总结

自监督学习通过巧妙地设计代理任务,使得模型能够从未标记数据中学习到强大的、通用的特征表示。它极大地缓解了对大规模人工标注数据的依赖,已成为现代深度学习(尤其是大型模型预训练)的关键技术之一,并在计算机视觉、自然语言处理、语音识别等多个领域取得了显著成功。选择哪种 SSL 方法取决于具体的任务、数据模态和计算资源。对比学习和基于掩码的预测学习是当前非常主流和有效的方法。

http://www.xdnf.cn/news/258337.html

相关文章:

  • Python 数据智能实战 (7):智能流失预警 - 融合文本反馈
  • git问题记录-如何切换历史提交分支,且保留本地修改
  • 安卓程序打包与发布
  • 不小心误删了文件,找Windows数据恢复工具来帮忙
  • redis持久化-RDB
  • 数字智慧方案5868丨智慧建造总体策划方案(68页PPT)(文末有下载方式)
  • 泰迪杯特等奖案例学习资料:基于多模态特征融合的图像文本检索系统设计
  • 清洗数据集
  • 数字智慧方案5870丨智慧交通顶层设计方案(89页PPT)(文末有下载方式)
  • 树莓派连接教学
  • 【KWDB 创作者计划】_查询优化器源码分析
  • 《缓存策略:移动应用网络请求的“效能密钥” 》
  • 鼎讯信通【专注通信解决方案】
  • 在多socket多核计算机上配置MPI和OpenMP
  • 【算法】动态规划专题一 斐波那契数列模型 1-4
  • 从0到上线,CodeBuddy 如何帮我快速构建旅游 App?
  • LabVIEW实验室测试框架推荐
  • 在文本废墟中打捞月光
  • 基于bert的情感分析程序
  • 51c大模型~合集123
  • 大语言模型能力评定探讨
  • spring-ai集成langfuse
  • Spring、Spring MVC、SpringBoot、Spring Cloud的关系和区别(Spring生态项目关系和区别详解)
  • 源码安装SRS4
  • Android面试总结之jet pack界面组件篇
  • 51、【OS】【Nuttx】【OSTest】参数解析:参数处理过程
  • 代码随想录算法训练营第60期第二十二天打卡
  • WindowsPE文件格式入门10.TLS表
  • 单词规律(简单)
  • 数字智慧方案6217丨智慧园区建设方案V40(46页PPT)(文末有下载方式)