【深度学习:Self-supervised learning (SSL) 】自我监督学习解释

在这里插入图片描述

【深度学习:SSL Self-supervised learning 】自我监督学习解释

    • 什么是自我监督学习?
      • 比较自我监督学习与监督学习和无监督学习
    • 为什么计算机视觉模型需要自监督学习?
      • 自我监督学习的好处
      • 自监督学习的局限性
    • 自我监督学习如何运作?
      • 对比学习
      • Non-Contrastive Learning (NC-SSL) 非对比学习
      • 对比预测编码 (CPC)
      • 实例判别方法
      • 基于能量的模型 (EBM SSL)
      • 对比群集分配
      • 联合嵌入架构
    • 计算机视觉自监督学习的用例
      • 医疗保健与医学成像 计算机视觉
      • 从 2D 图像进行 3D 旋转
      • 基于语义链接帧的视频运动预测
      • 机器人学:利用自我监督学习机制实现自主性
    • 要点总结

自监督学习(SSL)是一种利用原始、未标记数据来训练算法模型的人工智能(AI)方法。使用各种方法和学习技术,自监督模型在预训练阶段创建标签和注释,旨在迭代实现准确的地面实况,以便模型可以投入生产。

如果您难以找到时间和资源来注释和标记机器学习项目的数据集,SSL 可能是一个不错的选择。这种方法不同于无监督学习,且不需要耗费大量时间进行数据标记。

在本文中,我们将解释自监督学习,包括:

  • 什么是自我监督学习?
  • 它与监督学习和无监督学习有何不同?
  • 自监督学习的优势与局限性;
  • 自我监督学习是如何运作的?
  • 用例,特别是为什么计算机视觉项目需要自我监督学习?

让我们开始吧…

什么是自我监督学习?

自监督学习(SSL)是机器学习(ML)中的一种训练方式,它鼓励模型使用未标记的数据进行学习。

它不是依赖于大量标记和注释数据的模型(在监督学习的情况下),而是根据非结构化输入为数据生成标签。

在计算机视觉 (CV) 中,您可以使用灰度图像或半张图像来训练 ML 模型,以便它能够准确预测另一半或哪些颜色的去向。

在这里插入图片描述
自监督学习在计算机视觉和自然语言处理 (NLP) 中特别有用,在这些应用中,训练模型所需的标记数据量可能非常大。使用自监督方法在较少的数据上训练模型更具成本效益和时间效率,因为您不需要注释和标记那么多数据。

如果模型获得足够的数据并通过迭代过程生成准确结果,它可以更快地达到生产就绪状态。

在这里插入图片描述

比较自我监督学习与监督学习和无监督学习

在我们深入研究自我监督学习之前,将其与两种主要的替代方案进行比较是很有用的:监督学习和无监督学习。

监督学习 需要在高质量标记和注释数据上训练人工智能 (AI)、机器学习 (ML)、计算机视觉 (CV) 或其他算法生成的模型。这些标记数据以监督方式输入模型,人类机器学习工程师通过迭代反馈循环对其进行训练。

无监督学习 涉及在未标记的数据上训练模型,其中模型尝试查找数据中的模式和关系,而无需以标签形式给出明确的反馈。

自监督学习 是一种基于 ML 的训练格式和一系列鼓励模型从未标记数据进行训练的方法。基础模型和视觉基础模型 (VFM) 通常以这种方式训练,不依赖于标记数据。

无监督学习主要专注于分组、聚类和降维。在许多方面,这使得SSL成为无监督学习的一个子集。但是,这两种格式的输出存在差异。

另一方面,自监督学习用于执行分割、分类和回归任务,这与监督学习类似。

还有其他方法,例如半监督学习,它介于监督学习和无监督学习之间。但是,我们将把半监督学习作为另一篇关于模型训练和学习方法的文章的主题。

在这里插入图片描述
现在让我们看看为什么计算机视觉需要自我监督学习、SSL 的好处、它是如何工作的以及用例。

为什么计算机视觉模型需要自监督学习?

计算机视觉模型需要自监督学习,因为它们通常需要大量标记数据才能有效训练。获取、注释和标记这些数据可能既困难又昂贵。

特别是在高度专业化的领域,例如医疗保健,需要医疗专业人员来准确地注释和标记数据。

自监督学习可以提供标记大量数据的替代方案 - 这是一项昂贵且耗时的任务,即使您使用的是自动数据标记系统也是如此。相反,这允许模型从数据本身中学习并提高其准确性,而无需大量的标签和注释。

在这里插入图片描述
当每类标记数据具有相同数量的样本时,计算机视觉和其他算法生成的模型也表现更好。否则,偏差会潜入模型的性能。

不幸的是,如果一类图像或视频很难获得(除非您在合成数据创建或数据增强方面进行投资),则很难获得足够的数据来提高性能。

自监督学习减少或消除了为计算机视觉模型标记和注释数据的需要。同时减少了在计算机视觉情况下对增强和合成图像或视频创建的需求。

自我监督学习的好处

自监督学习对计算机视觉和其他基于 ML 和 AI 的项目、用例和模型有很多好处。

更具可扩展性: 对于较大的数据集,自监督学习更具可扩展性和管理性,因为这种方法不需要高质量的标记数据。即使图像或视频中的对象类别不像其他对象那样频繁,也不会影响结果,因为 SSL 可以处理大量非结构化数据。

改进模型结果: 自监督学习可以更好地表示数据的特征,从而提高计算机视觉模型的性能。不仅如此,SSL 方法还增强了模型的学习能力,而无需标记数据创建的结构。

增强的 AI 功能: 引入自监督学习来训练自然语言处理 (NLP) 模型。现在,它被用于基础模型,例如生成对抗网络 (GAN)、变分自编码器 (VAE)、基于转换器的大型语言模型 (LLM)、神经网络、多模态模型等。

在计算机视觉中,使用自监督学习方法可以更有效地执行图像分类、视频帧预测和其他任务。

在这里插入图片描述

自监督学习的局限性

同时,我们需要承认自监督学习存在一些局限性,例如:

需要大量的计算能力: 自监督学习需要强大的计算能力才能在大型数据集上训练模型。计算能力通常与神经网络或小型基础模型的规模相同。特别是因为模型在没有人工输入的情况下获取原始数据并对其进行标记。

准确性低: 人们很自然地期望自我监督学习不会像监督或其他方法那样产生准确的结果。如果没有以标签、注释和地面实况训练数据的形式为模型提供人工输入,初始准确率得分将很低。但是,有一些方法可以解决这个问题,我们将在下面探讨。

自我监督学习如何运作?

从基本层面上说,自监督学习是一种训练基于AI的模型的算法范式。当模型获得大量原始、几乎完全或完全未标记的数据,然后自行生成标签时,它就会起作用。

然而,这种说法有所简化,因为在这种训练方式下,可以应用多种SSL框架。让我们来看看其中最流行的七个,包括对比式和非对比式学习。

对比学习

对比学习 SSL 涉及训练模型以区分两个对比数据点或输入。这些对比点称为“锚点”,以正负格式提供。

正样本是与锚点属于同一分布的数据输入。相反,负样本与锚点的分布不同。

正样本是与锚点属于同一分布的数据输入。而负样本与锚点的分布不同。

Non-Contrastive Learning (NC-SSL) 非对比学习

另一方面,非对比自监督学习 (NC-SSL) 涉及仅使用非对比对(也称为正样本对)训练模型。而不是像对比学习那样的正面和负面样本。

对比预测编码 (CPC)

对比预测编码 (CPC) 最初是由 Google Deep Mind 的三位 AI 工程师向世界推出的,这是他们在 2019 年发布的论文。

CPC 是自然语言处理、计算机视觉和深度学习中一种流行的自监督学习方法。

CPC 也可用于计算机视觉,使用它来将预测编码与概率对比损失相结合。目的是训练一个模型来理解数据不同部分之间的表示。同时,CPC 可以更轻松地丢弃数据集中的低级噪声。

实例判别方法

实例判别方法将对比学习(例如 CPC、Contrastive 和 NC-SSL)应用于整个数据实例,例如数据集中的图像或一系列图像。

图像应随机选择。使用这种方法,一个图像以某种方式翻转(旋转、制作灰度等),作为正锚对,而一个完全不同的图像是负样本。目的是确保模型仍然理解,即使图像被翻转,它看到的是同一件事。

使用实例区分 SSL,应训练模型将马的灰度图像解释为正锚对的一部分,与牛的黑白图像不同。

在这里插入图片描述

基于能量的模型 (EBM SSL)

对于基于能量的模型 (EBM),这是一个使用数学模型计算两个输入之间的兼容性的问题。低能量输出表示高兼容性。虽然高能量输出表明,兼容性水平较低。

在计算机视觉中,使用 EBM SSL,向模型显示两张汽车图像应该会产生低能量输出。相比之下,将汽车与飞机进行比较应该会产生高能量输出。

对比群集分配

对比集群分配是实现自我监督学习的另一种方式。2020 年的一篇论文中发表了一种更具创新性的方法,介绍了一种称为 SwAV(在多个视图之间交换分配)的 ML 概念。

传统的对比集群作业涉及离线学习。模型需要在聚类分配和训练步骤之间交替,以便 ML 或 CV 模型学习理解不同的图像视图。

而使用 SwAV SSL 学习方法可以在线完成,从而更容易扩展到大量数据,同时受益于对比方法。

联合嵌入架构

自监督模型的另一种学习技术是联合嵌入架构。

联合嵌入架构涉及一个结构相同的双分支网络,其中为每个分支提供两个输入以计算单独的嵌入向量。

当两个源输入之间的“距离”很小时(例如,一个模型显示两个非常相似但略有不同的鸟在飞行中的图像)。然后可以调整潜在空间中的神经网络参数,以确保输入之间的空间缩小

在这里插入图片描述

计算机视觉自监督学习的用例

现在,让我们快速浏览一下自监督学习在计算机视觉中的许多实际应用中的四个。

医疗保健与医学成像 计算机视觉

在现实世界的用例中,自我监督学习的众多应用之一是在医疗保健领域。医学成像和注释是一个专业领域。准确性至关重要,尤其是当计算机视觉模型用于检测危及生命或限制生命的疾病时。

在计算机视觉中,DICOM、NIfTI 文件、X 射线、MRI 和 CT 扫描是用于训练算法模型的原材料。

在医疗领域,很难大规模获得准确标记的专有数据,部分原因是数据隐私和医疗保健法律(例如 HIPPA),还因为通常需要多名医生来注释这些数据。专业的医疗时间既宝贵又昂贵。很少有人有空闲时间对数据集中的大量图像或视频进行注释。

在这里插入图片描述
同时,计算机视觉在医疗保健领域非常有用,具有许多实际应用和用例。

应对上述挑战的一种解决方案是将自监督学习方法应用于医学成像数据集。举个例子:用于癌症检测的自监督学习。

Encord 与医疗专业人员和医疗保健数据科学家密切合作开发了我们的医学成像注释套件,为您提供强大的自动化图像注释套件,内置精确的 3D 注释、完全可审计的图像和无与伦比的效率。

从 2D 图像进行 3D 旋转

自监督计算机视觉学习的另一个实际应用是训练工厂中的机器人机器正确定位 3D 对象。自主和半自主机器人必须知道如何做到这一点,训练它们的一种方法是使用自监督计算机视觉模型使用图像和视频。

基于语义链接帧的视频运动预测

视频是序列中语义链接的帧序列。使用自监督学习模型更容易实现更高的准确性,因为对象通常从一个帧继续到下一个帧,至少在一系列帧上。

在预训练阶段可以应用各种参数,如特定物体运动的流畅性和重力的应用、距离、速度和时间。

在这里插入图片描述

机器人学:利用自我监督学习机制实现自主性

机器人不可能把可能遇到的所有情况都上传到硬件和软件中。要考虑的因素实在太多了。

一定程度的自主性是必不可少的,尤其是当机器人的运行地点距离控制中心太远时,例如美国宇航局休斯顿航天中心与火星车之间的通信。

即使在陆地环境中,机器人如果不具备实时、有时是即时决策的能力,充其量也是无效的,更糟糕的是会带来危险。因此,应用自我监督学习技术来确保机器人能够自主决策就显得尤为重要。

要点总结

自监督学习是在大量原始、未标记数据上训练 CV、AI、ML 或其他算法模型的有用方法。这为工程师、数据科学家和数据运营团队节省了大量的时间、金钱和资源。

另一方面,准备在预训练阶段使用我们在本文中概述的几种方法之一(例如,对比、非对比、CPC、EBL 等),以便基于 SSL 的模型可以产生更准确的结果。

否则,如果没有有助于训练模型的数据标记和注释的支持,您可能会面临准确性降低和训练过程花费更多时间的风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/295548.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UOS下通过SSH隧道访问云端内网windows桌面

1 用户痛点 随着时代的发展,众多企业的服务器慢慢走向云端。大量云端服务器节省企业成本的同时,也带来了安全性问题。例如:管理云端的服务器,特别是windows桌面服务器,往往需要给这个服务器分配一个公网IP地址&#x…

计算机网络面试题

参考:小林Coding-图解计网 必备基础知识点 (一)TCP/IP网络模型和标准ISO网络模型 1,TCP/IP详解-各层使用到的协议 对应的数据包的结构 : 2,ISO七层模型 3,TCP/IP和ISO的对比 主要特定是&…

vue-cli创建项目时由esLint校验导致报错或警告的问题及解决

vue-cli创建项目时由esLint校验导致报错或警告的问题及解决 一、万能办法 一、万能办法 //就是在报错的JS文件中第一行写上 /* eslint-disable */链接: https://www.yii666.com/blog/288808.html 其它的方法我遇见了再补充

Fiddler抓取HTTPS最全(强)攻略

对于想抓取HTTPS的测试初学者来说,常用的工具就是fiddler。可是在初学时,大家对于fiddler如何抓取HTTPS真是伤了脑筋,可能你一步步按着网上的帖子成功了,那当然是极好的。 有可能没有成功,这时候你就很抓狂了&#xff…

基于双向LSTM模型完成文本分类任务

6.4.1 数据处理 IMDB电影评论数据集是一份关于电影评论的经典二分类数据集.IMDB 按照评分的高低筛选出了积极评论和消极评论,如果评分 ≥7≥7,则认为是积极评论;如果评分 ≤4≤4,则认为是消极评论.数据集包…

建模杂谈系列236 Block Manager

说明 很久没有写了,总是写一半就没空往下写。这次正好有个单独的主题,可以写一下。 内容 1 块的分配 数据应该怎么切分和管理?这没有一个固定的答案,在我的实践中,我觉得一个块(Block)一万条记录是比较合理的。然后…

PostGIS学习教程十八:维数扩展的9交集模型

PostGIS学习教程十八:维数扩展的9交集模型 文章目录 PostGIS学习教程十八:维数扩展的9交集模型一、什么是维数扩展的9交集模型二、查找具有特定关系的几何图形三、数据质量测试四、本文涉及的函数五、更多相关资料 一、什么是维数扩展的9交集模型 “维数…

计算机基础知识——数据的表示概述

目录 1 进制转换 1.1 二进制、十进制和十六进制等常用数制及其相互转换 1.2 十进制和二进制之间转换 1.3 二进制数与八进制数、十六进制数之间的转换 2 码值:原码、反码、补码 2.1 原码 2.2 反码 2.3 补码 3 浮点数表示 3.1 浮点数的运算 1 进制转换 1…

Chinese-llama-2部署踩坑记录

Chinese-llama-2部署踩坑记录 1. Chinese-LLaMA-Alpaca-2A. 部署a. inference_with_transformers_zhb. text generation webui_zhc. api_calls_zhd. llamacpp_zhe. privategpt_zhf. langchain_zh Tool Github 1. Chinese-LLaMA-Alpaca-2 A. 部署 a. inference_with_transform…

【UnityShader入门精要学习笔记】(2)GPU流水线

本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 上节复习GPU流水线顶点着色…

【git使用】一个非常适合新手的代码管理方法——master/develop模型

生产/开发模型【支持master/develop 类型分支】 1.gitee、github创建仓库2.使用sourcetree拉取仓库3. 检出develop分支,并初始化工作流4.模拟日常开发流程5.具备发布条件,进行发布6.将master和develop分支的版本都推送到远程仓库7.继续循环4-5-6进行开发…

Python 面向对象之多态和鸭子类型

Python 面向对象之多态和鸭子类型 【一】多态 【1】概念 多态是面向对象的三大特征之一多态:允许不同的对象对同一操作做出不同的反应多态可以提高代码的灵活性,可扩展性,简化代码逻辑 【2】代码解释 在植物大战僵尸中,有寒冰…

数据结构和算法-希尔排序(增量序列 算法实现 性能分析 稳定性)

文章目录 希尔排序过程小结增量序列不是固定的 算法实现算法性能分析稳定性小结 希尔排序 基本有序,就是存在有序的子序列 通过增量4得到各个子表 对各个子表分别进行插入排序 缩小增量,再除2,此时的子表 对各个子表插入排序 缩小增量&…

STC进阶开发(四)SPI协议、矩阵键盘、EEPROM

前言 这一期我们简单介绍一下SPI协议,然后我们学习一下矩阵键盘,了解EEPROM是干什么用的,话不多说,开整! SPI协议 SPI(Serial Peripheral Interface)是一种同步串行通信协议,用于在…

OJ刷题 第十七篇()

34005 - 汽水瓶(有意思) 时间限制 : 1 秒 内存限制 : 128 MB 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方…

Python 测试框架 Pytest 入门

简介 pytest 是一个功能强大而易于使用的 Python 测试框架。它提供了简单的语法和灵活的功能,用于编写和组织测试代码。 1、简单易用:pytest 的语法简洁明了,使得编写测试用例更加直观和易于理解。它使用 assert 语句来验证预期结果&#x…

SpringBoot内嵌的Tomcat启动过程以及请求

1.springboot内嵌的tomcat的pom坐标 启动后可以看到tomcat版本为9.0.46 2.springboot 内嵌tomcat启动流程 点击进入SpringApplication.run()方法里面 看这次tomcat启动相关的核心代码refreshContext(context);刷新上下文方法 public ConfigurableApplicationContext run(Stri…

银行卡号识别

导入库 from typing import Any, Union, Sequencefrom cv2.mat_wrapper import Mat from imutils import contours import numpy as np import argparse import imutils import cv2 import myutils设置参数 # 设置参数 from numpy import dtype, ndarray, genericap argpars…

“巴渝工匠杯”2022年重庆市职业院校技能大赛(高职组)云计算样题

“巴渝工匠杯”2022年重庆市职业院校技能大赛(高职组)云计算样题 需要软件包环境可私信博主 【赛程名称】云计算赛项第一场次-私有云 某企业拟使用OpenStack搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授…

Visual Studio 2022进行文件差异比较

前言 Visual Studio 2022在版本17.7.4中发布在解决方案资源管理器中比较文件的功能,通过使用此功能,可以轻松地查看两个文件之间的差异,包括添加、删除和修改的代码行。可以逐行查看差异,并根据需要手动调整和编辑文件内容以进行…