无监督学习笔记 - A Cookbook of Self-Supervised Learning

无监督学习笔记

参考资料:

  • 无监督学习Cookbook 几乎总结了所有的自监督学习方法,阅读过程中,根据参考文献索,进一步深入阅读每个方法具体得细节,掌握该论文,基本上就掌握了所有自监督学习的方法与基础。

  • 统计学习方法(李航) 随时可以查阅的书本教材

  • 对比学习论文综述讲解-李沐

1 自监督学习(SSL)概念

概念:自监督学习(SSL)可以从大量未标记数据中学习数据中的特征

它可以应用到图像、语音、视频和时间序列等其他模式。如:

  • NLP:目标是屏蔽文本中的单词并预测周围的单词,主要是为了捕获单词之间的关系
  • CV:MAE和BYOL模型中使用了SSL技术,可以查看这两篇论文

SSL可能在医学领域受欢迎,因为此领域标签数据成本非常高昂。

1.1 为什么要写教程

主要讲了SSL学习门槛很高,没有统一的学习材料,论文中的方法也不一定很详细,术语表示也不统一,所以需要有一个教程。

2 SSL的前世今生

2.1 SSL的起源

主要讲述2020年之前SSL的主要idea

信息恢复

思路:掩盖或删除图像中的某些内容,训练网络去恢复这些缺失的信息

应用:

  • 基于彩色化的SSL方法:将图像转化为灰度图像,然后训练网络预测原始的RGB

Learning Representations for Automatic Colorization

在这里插入图片描述

  • 屏蔽(也称为删除)图像的一部分,然后训练网络来修复丢失的像素值

Context Encoders: Feature Learning by Inpainting

在这里插入图片描述

之后演变为自编码方法,如:Masked Autoencoders Are Scalable Vision Learners

在这里插入图片描述

在视频中使用时间关系

  • 使用三元组损失来预训练模型,提高两个不同帧中对象表示的相似度
  • 预测单帧中物体运动,调整所得特征解决单帧检测问题
  • 预测给定多帧相机的自我运动
  • 从视频中删除音轨,预测缺失声音

学习空间上下文

  • 通过应用随机旋转来掩盖重力方向,然后要求模型预测旋转

Unsupervised Representation Learning by Predicting Image Rotations

在这里插入图片描述

  • 将图像分解为一系列不相交的块并预测每个块的相对位置。
  • 学习计数:模型经过训练以自我监督的方式输出图像中的对象数量。

分组相似图像

  • K均值聚类
  • 深度聚类方法

生成模型

  • 贪心逐层预训练,使用自动编码器损失一次训练深度网络的各层
  • 生成对抗网络GAN

多视图不变性

  • 对比学习
  • 使用训练较弱的网络将伪标签应用于图像,然后以标准监督方式使用这些标签进行训练
  • 虚拟对抗训练:使用伪标签在图像上训练网络,并另外执行对抗训练,以便学习到的特征对于输入图像的小扰动几乎不变

2.2 深度度量学习家族

深度度量学习方法(Deep Metric Learning,简称DML)是基于鼓励输入的语义转换版本之间相似性的原则。

DML起源于对比损失。

对比损失(Contrastive Loss)是对比学习中常用的一种损失函数,它通过比较正样本对和负样本对之间的相似性,引导模型学习有意义的特征表示

设输入样本为 x i x_{i} xi x j x_{j} xj,它们分别属于同一类别的正样本对,或者来自不同类别的负样本对。对于这两个样本,模型输出的特征表示分别为 f ( x i ) f(x_{i}) f(xi) f ( x j ) f(x_{j}) f(xj),通常通过一个神经网络得到。对比损失的基本形式是欧氏距离(Euclidean Distance)的平方,如下:

L i j = 1 2 ⋅ y i j ⋅ ∥ f ( x i ) − f ( x j ) ∥ 2 2 + 1 2 ⋅ ( 1 − y i j ) ⋅ max ⁡ ( 0 , m − ∥ f ( x i ) − f ( x j ) ∥ 2 ) 2 L_{ij} = \frac{1}{2} \cdot y_{ij} \cdot \| f(x_i) - f(x_j) \|_2^2 + \frac{1}{2} \cdot (1 - y_{ij}) \cdot \max(0, m - \| f(x_i) - f(x_j) \|_2)^2 Lij=21yijf(xi)f(xj)22+21(1yij)max(0,mf(xi)f(xj)2)2
其中:

  • y i j y_{ij} yij 是指示函数,当样本 x i x_{i} xi x j x_{j} xj 属于同一类别时为1,不同类别时为0。
  • m m m 是一个控制负样本对间隔的超参数,通常称为margin。
  • 欧氏距离用于度量样本对在特征空间中的距离。
  • L i j L_{ij} Lij 表示样本对 x i x_{i} xi x j x_{j} xj 的对比损失。

对比损失的含义是,在正样本对 x i x_{i} xi x j x_{j} xj 属于同一类别时,通过最小化它们的特征表示间的距离来促使相似性增加;而在负样本对时,通过最小化它们的距离与margin之差的平方来促使相似性减小。

三元组损失类似于对比损失,由三元组组成:查询点(锚点),正例和反例。

当引入 ( N + 1 ) (N + 1) (N+1) 元组损失时,才发生了DML到SSL的转变。

InfoNCE损失是SSL的核心。

SimCLR

在这里插入图片描述
过程:

  • 一张图像经过随机增强,获得两张图像
  • 增强后的图像送到网络 f ( ⋅ ) f(\cdot) f() 里,产生两个特征向量 h h h
  • h h h 经过MLP(投影操作 g ( ⋅ ) g(\cdot) g() )产生 z
  • z 用于计算对比损失
  • 我们想要的Representation是 h h h ,最终的特征提取器是 f ( ⋅ ) f(\cdot) f()

思想:通过鼓励图像的两个增强视图(数据增强包括随机调整大小、裁剪、颜色抖动和随机模糊)之间的相似性来学习视觉表示。

作用:对每个视图进行编码后,SimCLR 使用projector(通常是 MLP,后跟 ReLU激活)将初始嵌入映射到另一个空间,在该空间中应用对比损失以鼓励视图之间的相似性。对于下游任务,在projector之前提取表示已被证明可以提高性能。

2.3 自蒸馏家族

BYOL和SimSiam依赖于机制:将两个不同的视图提供给两个编码器,并通过预测器将一个编码器映射到另一个编码器。

BYOL

首先引入了自蒸馏作为避免崩溃的一种方法,可以在无需负样本对的情况下取得SOTA。

在这里插入图片描述
BYOL 使用两个网络和一个预测器将一个网络的输出映射到另一个网络。

预测输出的网络称为在线网络或学生网络,而产生目标的网络称为目标网络或教师网络。

每个网络接收由图像变换形成的不同视图,包括随机调整大小、裁剪、颜色抖动和亮度改变。

学生网络在整个训练过程中使用梯度下降进行更新。教师网络通过在线网络权重的指数移动平均 (EMA) 更新进行更新。指数移动平均线引起的缓慢更新造成了不对称性,这对于 BYOL 的成功至关重要。(具体来说,由于在线网络和目标网络的参数不同,因此它们会产生不同的特征分布。通过使用EMA,可以使得目标网络的特征分布更加平滑,从而减少了特征分布之间的差异,提高了模型的性能。)

BYOL无需负样本,它并不关心不同样本是否具有不同的表征,仅仅使相似的样本表征类似。BYOL在迭代过程中引导网络输出作为目标,所以训练过程中不需要负样本对。

SimSiam

SimSiam 表明,EMA 在实践中并不是必需的,即使它会带来性能的小幅提升。

DINO

使用running mean(以避免对小批量大小敏感)对学生网络的输出进行聚类,得到一些中心点,并通过 softmax 离散化(平滑)表示,其中 τ 通常取为 0.1 左右

iBOT

以DINO 为基础,并将其目标与直接应用于潜空间的掩模图像建模目标相结合。这里,目标重建不是图像像素,而是通过教师网络的相同 patch embedding。

DINOv2

进一步建立在 iBOT 的基础上,通过改进训练方案、架构以及引入 KoLeo 等额外的正则化器,显着提高了其在线性和 k-NN 评估中的性能

2.4 典型相关分析家族

VICReg

2.5 掩码图像建模

3

4

5

一系列不相交的块并预测每个块的相对位置。

  • 学习计数:模型经过训练以自我监督的方式输出图像中的对象数量。

Editing…

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Trimble X9三维激光扫描仪高效应对化工厂复杂管道扫描测绘挑战【沪敖3D】

化工安全关系到国计民生,近年来随着化工厂数字化改革不断推进,数字工厂逐步成为工厂安全管理的重要手段。而化工管道作为工厂设施的重要组成部分,由于其数量多、种类繁杂,一直是企业管理的重点和难点。 传统的化工管廊往往缺乏详…

synchronized的特性

1.互斥 对于synchronized修饰的方法及代码块不同线程想同时进行访问就会互斥。 就比如synchronized修饰代码块时,一个线程进入该代码块就会进行“加锁”。 退出代码块时会进行“解锁”。 当其他线程想要访问被加锁的代码块时,就会阻塞等待。 阻塞等待…

【vue3 for beginner】Pinia基本用法:存储user的信息

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 Pinia 简介 Pinia 是一个用于 Vue.js 应用的状态管理库,是 Vuex 的…

动态规划(二) ---斐波那契型深度解析

一、使用最小花费爬楼梯 题目链接:746. 使用最小花费爬楼梯 - 力扣(LeetCode) 题目:给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一…

记录一下,解决js内存溢出npm ERR! code ELIFECYCLEnpm ERR! errno 134 以及 errno 9009

项目是个老项目,依赖包也比较大,咱就按正常流程走一遍来详细解决这个问题,先看一下node版本,我用的是nvm管理的,详细可以看我的其他文章 友情提醒:如果项目比较老,包又大,又有一些需…

Luma 视频生成 API 对接说明

Luma 视频生成 API 对接说明 随着 AI 的应用变广,各类 AI 程序已逐渐普及。AI 已逐渐深入到人们的工作生活方方面面。而 AI 涉及的行业也越来越多,从最初的写作,到医疗教育,再到现在的视频。 Luma 是一个专业高质量的视频生成平…

三维扫描检测在汽车制造中的应用

三维扫描,通过先进三维扫描技术获取产品和物体的形面三维数据,建立实物的三维图档,满足各种实物3D模型数据获取、三维数字化展示、3D多媒体开发、三维数字化存档、逆向设计、产品开发、直接3D打印制造或辅助加工制造等一系列的应用。 三维扫描…

应用案例 | 船舶海洋: 水下无人航行器数字样机功能模型构建

水下无人航行器数字样机功能模型构建 一、项目背景 为响应水下装备系统研制数字化转型及装备系统数字样机建设的需要,以某型号水下无人航行器(Underwater Unmanned Vehicle,UUV)为例,构建UUV数字样机1.0功能模型。针对…

【unity小技巧】分享vscode如何开启unity断点调试模式,并进行unity断点调试(2024年最新的方法,实测有效)

文章目录 前言一、前置条件1、已安装Visual Studio Code,并且unity首选项>外部工具>外部脚本编辑器选择为Visual Studio Code [版本号],2、在Visual Studio Code扩展中搜索Unity,并安装3、同时注意这个插件下面的描述,需要根…

P4645 [COCI2006-2007#3] BICIKLI(Tarjan+topsort求到某点的方案数)

P4645 [COCI2006-2007#3] BICIKLI - 洛谷 | 计算机科学教育新生态 思路: 我们考虑输出inf的情况,可以发现当从1出发到2经过的任意一个点处于一个环内时,路径条数是无穷多的。 有向图上从s到t的经过点,就是从s出发所能经过的所有…

基于eFramework车控车设中间件介绍

车设的发展,起源于汽车工业萌芽之初,经历了机械式操作的原始粗犷,到电子式调控技术的巨大飞跃,到如今智能化座舱普及,远程车控已然成为汽车标配,车设功能选项也呈现出爆发式增长,渐趋多元繁杂。…

【AI系统】模型压缩基本介绍

基本介绍 随着神经网络模型的复杂性和规模不断增加,模型对存储空间和计算资源的需求越来越多,使得部署和运行成本显著上升。模型压缩的目标是通过减少模型的存储空间、减少计算量或提高模型的计算效率,从而在保持模型性能的同时,…

解决Unity编辑器Inspector视图中文注释乱码

1.问题介绍 新创建一个脚本,用VS打开编辑,增加一行中文注释保存,在Unity中找到该脚本并选中,Inspector视图中预览的显示内容,该中文注释显示为乱码,如下图所示: 2.图示解决步骤 按上述步骤操作…

Java项目实战II基于微信小程序的旅游社交平台(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着移动互联网的迅猛发展,旅游已经成为人…

【错误记录】Android Studio 开发环境内存占用过多 ( 记录内存使用情况 )

文章目录 一、报错信息二、AS 内存记录分析 一、报错信息 使用 Android Studio 一段时间后 , 内存爆了 , 占用了 10G 的内存 ; 二、AS 内存记录分析 AS 刚启动时 , 只占 2014M 内存 ; 编译运行程序后 , 内存变为 2800M 左右 ; 设置显示的运行程序对应的日志 , 占用内存 就会稳定…

开发类似的同款小程序系统制作流程

很多老板想要开发一款和别人家类似的同款小程序系统,但是不知道该怎么开发制作,本文就为大家详细介绍一下开发类似的同款小程序的流程为大家做参考。 一、前期准备找到对标小程序:首先,需要找到你想要模仿的同款小程序&#xff0…

三轴云台之光学变焦功能篇

三轴云台的光学变焦功能是其重要的性能特点之一,该功能允许用户在不改变相机与拍摄对象之间物理距离的情况下,通过调整镜头的焦距来改变拍摄对象的放大倍数或视野范围。 一、光学变焦的原理 光学变焦是通过改变镜头内部的透镜组合来改变焦距的。当镜头中…

android WebRtc 无法推流以及拉流有视频无声音问题

最近在开发使用WebRtc进行视频通话和语音通话,我使用的设备是MTK的手机,期间后台的技术人员几乎没法提供任何帮助,只有接口和测试的web端,有遇到不能推流。推流成功网页端有画面有声音,但是安卓端有画面,没…

锻造船用发动机动力系统,铸强船舶“心脏”

船舶是海洋、湖泊及河流中重要的水上交通工具,不仅能够促进海上经济的发展,还能够保卫国家的制海权。船舶动力装置,也就是船舶的核心动力源——船用发动机动力系统对船舶的重要作用不言自明,关系到船舶的性能质量,能够…

uniapp 自定义导航栏增加首页按钮,仿微信小程序操作胶囊

实现效果如图 抽成组件navbar.vue&#xff0c;放入分包 <template><view class"header-nav-box":style"{height:Props.imgShow?:statusBarHeightpx,background:Props.imgShow?:Props.bgColor||#ffffff;}"><!-- 是否使用图片背景 false…