目录

监督、无监督、半监督、弱监督、自监督学习

核心思想

前置任务Pretext Tasks

视图预测 View Prediction (Cross modal-based)

下游任务

分析前置任务的有效性

对 Kernels 和 特征图进行可视化

最近相邻撷取

选择

主要方法

主流分类

generative methods

contrastive methods


2022年,预训练何去何从?

监督、无监督、弱监督、半监督、自监督学习

有监督:用有标签的数据训练;
无监督:用无标签的数据训练;

弱监督:用包含噪声的有标签数据训练。

半监督:同时用有标签和无标签的数据进行训练。

最近非常火热,此领域的发展也非常迅速,

先前通常是两阶段的训练,

先用(较小规模的)有标签数据训练一个Teacher模型,

再用(较大规模的)无标签数据预测伪标签,作为Student模型的训练数据;

目前已经有很多直接end-to-end地训练,大大减少半监督训练的工作;

自监督:在无标注数据上训练,

通过一些方法让模型学习到数据的inner representation,再接下游任务,例如加一个mlp作为分类器等。

但接了下游任务之后还是需要在特定的有标签数据上finetune,只是有时候可以选择把前面的层完全固定,只finetune后面接的网络的参数。

评测自监督学习的能力,主要是通过 Pretrain-Fintune 的模式。

监督的 Pretrain - Finetune 流程:

1.从大量的有标签数据上进行训练,得到预训练的模型,

2.对于新的下游任务(Downstream task),我们将学习到的参数(比如输出层之前的层的参数)进行迁移,在新的有标签任务上进行「微调」,从而得到一个能适应新任务的网络。

自监督的 Pretrain - Finetune 流程:

1.从大量无标签数据中通过 pretext 训练网络(自动在数据中构造监督信息),得到预训练的模型

2.对于新的下游任务,和监督学习一样,迁移学习到的参数后微调即可。

所以自监督学习的能力主要由下游任务的性能来体现。

supervised learning 的特点:

  1. 对于每一张图片,机器预测一个 category 或者是 bounding box
  2. 训练数据都是人工标注的
  3. 每个样本只能提供非常少的信息(比如 1024 个 categories 只有 10 bits 的信息)

self-supervised learning 的特点:

  1. 对于一张图片,机器可以预测任何的部分(自动构建监督信号)
  2. 对于视频,可以预测未来的帧
  3. 每个样本可以提供很多的信息

核心思想

Self-Supervised Learning

1.用无标签数据将先参数从无训练到初步成型, Visual Representation。

2.再根据下游任务 (Downstream Tasks) 的不同去用带标签的数据集把参数训练到完全成型

那这时用的数据集量就不用太多了,因为参数经过了第1阶段就已经训练得差不多了。

第一个阶段不涉及任何下游任务,就是拿着一堆无标签的数据去预训练,没有特定的任务,这个话用官方语言表达叫做:in a task-agnostic way。

第二个阶段涉及下游任务,就是拿着一堆带标签的数据去在下游任务上 Fine-tune,这个话用官方语言表达叫做:in a task-specific way。

涉及领域

Self-Supervised Learning 不仅是在NLP领域,在CV, 语音领域也有很多经典的工作,它可以分成3类:Data Centric, Prediction (也叫 Generative) 和 Contrastive

浅层捕获一些低级特征,如边缘、拐角和纹理,而较深层捕获与任务相关的高级特征。因此,在受监督的下游任务训练阶段,只是转移了前几层的视觉特征。

前置任务Pretext Tasks

前置任务的本质是:模型可以学习到数据本身的一些转换(数据转换之后依然被认作是原数据,转换后到数据和原数据处于同一嵌入空间),同时模型可以判别其他不同的数据样本。

但是前置任务本身是一把双刃剑,某个特定的前置任务可能对某些问题有利,对其他问题

原始图片被当作一种anchor,其增强的图片被当作正样本(positive sample),然后其余的图片被当作负样本。

大多数的前置任务可以被分为四类:

  • 颜色变换:原图,高斯噪声,高斯模糊,颜色失真
  • 几何变换:原图,裁剪、旋转、翻转
  • 基于上下文的任务:

拼图(空间):原图被当作anchor,分割成小图片,打乱后的图片被当作正样本,其余图片被当作负样本

时序(时间):

一个视频中的帧被当作正样本,其余视频被当作负样本。

或者 随机抽样一个长视频中的两个片段,或者对每个视频片段做几何变换。

一对正样本是两个增强的来自同一个视频的视频片段

  • 基于交叉模式的任务

视图预测 View Prediction (Cross modal-based)

视图预测任务一般用在数据本身拥有多个视图的情况下。

在 [23] 中,anchor和它的正样本图片来自同时发生的视角下,它们在嵌入空间中应当尽可能地近,与来自时间线中其他位置的负样本图片尽可能地远。

在 [24] 中,一个样本的多视角被当作正样本(intra-sampling),其余的inter-sampling当作负样本。

下游任务

下游任务聚焦于具体的应用,在优化下游任务的时候,模型利用到了前置任务优化时期所学到的知识。这些任务可以是分类、检测、分割、预测等

迁移学习

分析前置任务的有效性

常见的下游高级视觉任务:
Semantic Segmentation(语义分割):为图像中每个像素分配语义标签的任务。
Object Detection(目标检测):在图像中定位目标位置别识别其类别的任务。
Image Classification(图像分类):识别每个图像中对象类别的任务,通常每个图像只能使用一个类别标签。将自监督学习模型应用于每个图象上来提取特征,然后用这些特征训练一个分类器(如SVM),将分类器在测试集上的表现与自监督模型进行比较,来评估所学特征的质量。
Human Action Recognition(人体行为识别):识别视频中的人们在做什么,以获取预定义动作类别的列表。通常用于从视频中学习到的特征的质量。

为了测试自监督学习中学习到的特征对下游任务的效果,一些方法,例如

  • kernel visualization
  • feature map visualization
  • nearsest-neighbor based approaches

除了以上对所学特征进行定量的评估之外,还有一些定性可视化的方法对自监督学习的特征进行评估(Qualitative Evaluation):

Kernel Visualization: 定性的可视化通过前置任务学习的第一个卷积层的内核,并比较监督模型的内核。通过比较监督学习模型和自监督学习模型内核的相似性,来评估其有效性。

Feature Map Visualization: 可视化特征图来显示网络的关注区域,较大的激活表示神经网络更关注图像中的相应区域,通常对特征图进行定性可视化,并与监督模型进行比较。

Nearest Neighbor Retrieval: 通常具有相似外观的图像在特征空间中更靠近。最近邻方法用于从自监督学习模型学习的特征的特征空间中找到前K个最近的邻居。

对 Kernels 和 特征图进行可视化

在这里,第一个卷积层的特征的kernels(分别来自于自监督训练和监督训练)被用来做比较。

类似地,不同层的 attention maps 也可以被用来测试模型的有效性。

AlexNet所训练的 attention map

最近相邻撷取

一般来说,相同类的样本在隐藏空间中的位置应该相近。对一个输入的样本,使用最近相邻方法,可以在数据集中使用 top-K 抽取来分析自监督学习的模型是否有效。

将学习到参数用作预训练模型,然后对下游高级任务进行微调,这种迁移学习的能力可以证明所学特征的泛化能力。

选择

1、Shotcuts: 根据自己的数据和任务特点设计辅助任务,常常有事半功倍的效果。比如对于镜头检测任务来说,获取成像色差、镜头畸变以及暗角等信息来构造辅助任务是比较有效的

2、辅助任务的复杂度选择: 之前人们的实验结果表明,辅助任务并不是越复杂越有效,比如图像重组任务中,最优的patch数为9,patch太多会导致每个patch特征过少,并且相邻patch间的差异性不大,导致模型的学习效果并不好

3、模糊性: 模糊性是指设计的辅助任务的标签必须是唯一确定的,不然会给网络学习引入噪声,影响模型性能。比如在动作预测中,这个半蹲的动作就具有二义性,因为其下个状态有可能是蹲下,也有可能是正在站起,标签不具有唯一性

主要方法

1. 基于上下文(Context based)

2. 基于时序(Temporal Based)

3. 基于对比(Contrastive Based)

主流分类

generative methods

能重建=>则能提取好的特征表达

eg:MAE、BERT

contrastive methods

在特征空间上对不同的输入进行分辨

图一:对比学习的直观理解:让原图片和增强的图片变近,让原图片和其他图片变远。

最近,自监督学习结合了生成模型和对比模型的特点:从大量无标签数据中学习表示。

一种流行的方式是设计各种前置任务(pretext task)来让模型从伪标签中来学习特征。例如图像修复、图像着色、拼图、超分辨率、视频帧预测、视听对应等。这些前置任务被证明可以学习到很好的表示。

图二:对比自监督学习训练范式

参考链接:

自监督学习 | (1) Self-supervised Learning入门_CoreJT的博客-CSDN博客_自监督学习

自监督学习 | (2) 一文读懂 Self-Supervised Learning_CoreJT的博客-CSDN博客

对比自监督学习综述 - A Survey of Contrastive Self-Supervised Learning_Xovee的博客-CSDN博客_自监督对比学习

自监督学习(Self-supervised Learning)_乐乐lelele的博客-CSDN博客_自监督学习

有监督、半监督、无监督、弱监督、自监督的定义和区别_dwqy11的博客-CSDN博客_半监督和弱监督

[23] Sermanet et al., Time-contrastive networks: Self-supervised learning from video, 2017.

[24] Tao et al., Self-supervised video representation learning using inter-intra contrastive framework, 2020.

自监督学习(SSL)Self-Supervised Learning相关推荐

  1. 多示例学习(Multi Instance Learning)和 弱监督学习(Weakly Supervised Learning)

    目录 弱监督: 多示例学习: 弱监督: 1. 弱在缺标签:标签是不完全的,有的有标签,有的无标签 2. 弱在标签不准确:有的标签正确,有的标签错误 3. 弱在标签不精准: 标签不是在样本上,而是在更高 ...

  2. A brief introduction to weakly supervised learning(简要介绍弱监督学习)

    文章转载自http://www.cnblogs.com/ariel-dreamland/p/8566348.html A brief introduction to weakly supervised ...

  3. 关于弱监督学习的详细介绍——A Brief Introduction to Weakly Supervised Learning

    目录 介绍 主动学习 半监督学习 多实例学习 带噪学习 Snorkel 框架介绍 参考 介绍 在机器学习领域,学习任务可大致划分为两类,一种是监督学习,另一种是非监督学习.通常,两者都需要从包含大量训 ...

  4. ML之SL:监督学习(Supervised Learning)的简介、应用、经典案例之详细攻略

    ML之SL:监督学习(Supervised Learning)的简介.应用.经典案例之详细攻略 目录 监督学习(Supervised Learning)的简介 1.监督学习问题的两大类-分类问题和回归 ...

  5. ML之SSL:Semi-Supervised Learning半监督学习的简介、应用、经典案例之详细攻略

    ML之SSL:Semi-Supervised Learning半监督学习的简介.应用.经典案例之详细攻略 目录 Semi-Supervised Learning半监督学习的简介 1.直推学习Trans ...

  6. 监督学习(supervised learning)与非监督学习(unsupervised learning)

    一,监督学习(supervised learning): 监督学习(supervised learning)的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测. 即:利用 ...

  7. 弱监督学习 weakly supervised learning 笔记

    周志华 A Brief Introduction to Weakly Supervised Learning 2018 引言 在机器学习领域,学习任务可以划分为监督学习.非监督学习.通常,两者都需要从 ...

  8. Supervised learning/ Unsupervised learning监督学习/无监督学习

    [机器学习]两种方法--监督学习和无监督学习(通俗理解) [机器学习] : 监督学习 (框架) 有监督学习与无监督学习的几大区别 目录 Supervised learning 监督学习 Unsuper ...

  9. Open AI 自监督学习笔记:Self-Supervised Learning | Tutorial | NeurIPS 2021

    转载自微信公众号 原文链接: https://mp.weixin.qq.com/s?__biz=Mzg4MjgxMjgyMg==&mid=2247486049&idx=1&sn ...

最新文章

  1. linux 环境变量LD_PRELOAD简介 定义优先加载的动态链接库
  2. 解释afterPropertiesSet
  3. mysql concat例子_MYSQL中CONCAT详解
  4. 外设驱动库开发笔记24:FM24xxx系列FRAM存储器驱动
  5. Javascript中交换两个变量值的十种方法相关笔记(一)
  6. Hbase ImmutableBytesWritable数据类型
  7. Tomcat的下载及安装
  8. cs229 学习笔记四 学习理论
  9. idea 安装本地插件
  10. excel 复制到mysql_excel导入数据到mysql
  11. FAT32、NTFS、exFAT格式的区别
  12. 复盘二: 了解自我和管理自我,诚惶诚恐,保持敬畏-- 宁向东的清华管理学课总结
  13. 申请Let’s Encrypt通配符证书
  14. NTP网络时间服务器在电力自动化系统中的应用探讨
  15. SOSO刷分软件(后台自动点击)
  16. 太原理工大于丹计算机,于丹作客太原理工大 给4000理科生讲佛学
  17. 【京东校招笔试】保卫方案
  18. LeetCode回溯算法——51.N皇后问题详解
  19. [PM]产品经理的主要职责有哪些?
  20. 【ACWing】327. 玉米田

热门文章

  1. 2021章节练习基础(案例精选)50-60
  2. xshell用ssh连接kali虚拟机超详细
  3. 北京高校大学生创业园(软件园):助力梦想扬帆起航
  4. ODOO13 开发教程一 认识odoo
  5. java执行CMD命令,文件路径或文件名带空格处理
  6. 利用spring boot 写一个稳定的爬虫
  7. 20-python学习笔记之日期
  8. 后端语言-Coffeescript
  9. 数字政务是推动公共服务和社会治理精细化、智能化的重要载体
  10. 算法手撕代码26~35