(2024,自监督 ViT,全监督 ViT,损失可视化,MAE,RC-MAE,自蒸馏,EMA)可视化自监督 ViT 的损失景观

Visualizing the loss landscape of Self-supervised Vision Transformer

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0 摘要

2 基础:MAE 和 RC-MAE

3 损失景观

3.1 分析

4 结论和未来工作


0 摘要

掩码自动编码器(Masked autoencoder,MAE)作为视觉 transformer(ViT)中掩码图像建模的代表性自监督方法,引起了广泛关注。然而,即使 MAE 显示出比完全从头监督训练更好的泛化能力,其原因仍未得到探讨。在另一项研究中,提出了重构一致掩码自动编码器(Reconstruction Consistent Masked Auto Encoder,RC-MAE),它采用指数移动平均(EMA)教师形式的自蒸馏方案,并显示出 EMA 教师在优化过程中执行条件梯度校正(gradient correction)。为了进一步从优化的角度探讨 MAE(MAE-ViT)训练的自监督 ViT 为何具有更好的泛化能力以及 RC-MAE 梯度校正的效果,我们可视化了自监督 ViT (MAE 和 RC-MAE)的损失景观(loss landscape),并将其与监督的 ViT(Sup-ViT)进行比较。与之前基于分类任务损失的神经网络损失景观可视化不同,我们通过计算预训练任务损失来可视化 ViT 的损失景观。通过损失景观的视角,我们发现了两个有趣的现象:(1)MAE-ViT 的整体损失曲率比 Sup-ViT 更平滑和宽广。(2)EMA 教师允许 MAE 在预训练和线性探测中扩大凸性区域,导致更快的收敛。据我们所知,这是首次通过损失景观的视角研究自监督 ViT 的工作。 

2 基础:MAE 和 RC-MAE

掩码自动编码器(MAE)[19](分割-掩蔽-重建)通过随机掩蔽(mask)大量输入图像块进行自监督学习,然后使用基于 ViT 的编码器 f 对可见图像块进行编码,并使用解码器 h 对掩蔽的图像块进行重建。MAE 将输入图像 X∈R^(C×H×W) 分割成 N 个不相交的图像块 ~X ∈ R^(N×(P^2⋅C)),其中 P^2 代表图像块的面积。MAE 随后对 ~X 的一个随机子集 xi ∈ ~X, ∀i ∈ M 进行掩蔽,其中 M 是掩蔽标记的索引。可见的图像块 xj ∈ ~X, ∀j ∈ V(其中 V 是可见图像块的索引)被传递到编码器,生成编码向量 z = f({xj: j∈V})。随后,解码器 h 根据编码的可见图像块对掩蔽的图像块集合进行重建,得到 ^Y = h(z; {xj: j∈M}),其中 ^Y ∈ R^(N×(P^2⋅C))。损失函数 L_r 仅在掩蔽的图像块上计算,采用均方误差损失函数:

重构一致性掩码自动编码器(RC-MAE)[25] 提供了一种自监督学习中常用的技术 EMA 教师 [33] 的分析。EMA 教师 T 由先前学生 S 的指数移动平均值组成,其中 α ∈ [0,1] 通过

可以递归扩展为 T(t) = ∑^t_(i=0) α^i·(1−α)·S^(t−i)。除了 MAE 的重构目标 L_r 外,教师还为学生网络(如 MAE)提供一致性目标 ^Y’。因此,学生网络通过以下目标进行优化:

研究发现,在一个简单的线性模型中 [25],教师本质上像一个梯度记忆,当当前输入 x_i 与先前输入 ^xj 相似时(通过点积度量),它会有条件地移除之前的梯度方向。同样,当当前输入与先前输入正交时,点积为 0,教师不会提供校正信号。因此,EMA 教师可能通过在过拟合可能性较大时(例如,输入多样性较低时)主动防止过拟合,并在过拟合可能性较小时(例如,输入多样性较高时)允许模型学习新知识,从而稳定训练。

3 损失景观

为了可视化 ViT 的损失景观(loss landscapes),我们遵循了 [26] 中称为滤波器归一化的可视化策略。具体来说,[26] 获得了两个随机高斯方向向量 δ 和 η 来可视化在 2D 投影空间内的损失表面。需要注意的是,方向向量被归一化为与相应参数 θ 具有相同的范数。然后,通过沿着两个方向上的 2D 点评估损失来获得损失表面,如下所示:

其中 L 是由参数 θ 参数化的网络的损失函数。 α 和 β 是从 -1 到 1 变化的标量值,分别对应于损失表面的 x 轴和 y 轴。更多实现细节请参考附录 A。

3.1 分析

[26] 表明,通过这种基于滤波器归一化的可视化方法,最小化器的平坦度与泛化能力密切相关。此外,许多研究 [6; 22; 32; 23; 21; 26; 37; 9; 10] 得出的结论是,当神经网络收敛到具有小曲率和宽凸性区域的平坦区域时,它们的泛化能力更好。由于我们已经在表 1 中确认了使用 ViT [14] 的自监督学习方法 MAE[19] 和 RC-MAE[25] 比纯监督学习具有更好的泛化能力,在本节中,我们通过观察损失景观分析自监督方法更好泛化能力的原因,并从优化的角度研究 RC-MAE 中 EMA 教师的作用。

MAE-ViT 与 监督-ViT。 如图 1 所示,从头开始监督的 ViT [14] 显示出更窄的收敛区域(即凸区域),这一点也在 [10] 中观察到。相反,我们可以观察到通过 MAE [19] 进行自监督的 ViT 表现出更宽的损失景观凸区域。这表明,与完全监督模型相比,自监督方法在更广泛的初始条件下可能会收敛。我们注意到,这种更平滑和更宽(wider)的损失景观以及更好的下游任务性能(即泛化结果)与优化文献中的一个事实一致 [22; 23; 21; 32; 6; 10],即具有小曲率的宽凸区域(wide convex region)与神经网络泛化能力良好相关

MAE 与 RC-MAE。 图 2 展示了预训练和线性探测(linear probing)的 MAE [19] 和 RC-MAE [25] 自监督 ViT 的损失景观。对于预训练,如图 2(左)所示,损失景观的俯视图和 2D 损失轮廓显示 RC-MAE 从比 MAE 更宽的凸区域收敛。此外,如图 2(右)所示,MAE和RC-MAE的线性探测结果比预训练损失有更复杂的损失曲率。我们推测,冻结特征权重仅学习线性层的线性探测任务对于分类 1K 类别来说很难优化。类似于预训练结果,RC-MAE 具有比 MAE 更宽的凸区域。由于 MAE 和 RC-MAE 之间的唯一区别是增加了 EMA 教师,这表明这种更宽的凸区域可能归因于 RC-MAE 中 EMA 教师的梯度校正效果。此外,Lee 等人 [25] 通过比较重构损失图和微调准确率表明,RC-MAE 的收敛速度比 MAE 更快。MAE 和 RC-MAE 之间的这些损失景观比较以及 [25] 中的实验支持了 RC-MAE 更好的收敛特性。

4 结论和未来工作

在这项工作中,我们通过可视化各种自监督 ViT 的损失景观,研究了自监督 ViT 的泛化能力和 RC-MAE 的梯度校正效果。通过损失景观的视角,我们观察到以下有趣的现象:(1)自监督 ViT 比完全监督 ViT 具有更平滑和更宽的整体损失曲率。(2)自蒸馏架构(即 EMA 教师)允许 MAE 扩展凸性区域,加速收敛速度。然而,关于自监督学习的效果仍有进一步探索的空间。

批量大小:[26] 表明,批量大小影响最小化器的锐度。未来的工作可以探索批量大小对 MIM 预训练的影响。

优化器:[10] 使用了一种锐度感知优化器,可能具有与 RC-MAE 中 EMA 教师相同的一些特性。直接比较和分析可能会得出一些有趣的结论。

与其他自监督方法的比较:我们只分析了基于 MIM 的自监督方法 [19; 25]。然而,在 MIM 方法出现之前,基于实例区分任务(例如对比学习)的方法 [20; 11; 12; 7; 18; 8; 5] 占主导地位。因此,从损失几何的角度研究和比较非 MIM 方法将是有趣的。

定量分析:我们只进行了损失景观的定性分析。然而,[10] 通过计算模型参数上的高斯扰动训练误差和主 Hessian 特征值分别定量了平均平坦度和损失曲率的程度。因此,我们期待未来的工作可以定量比较这些优化动态指标。

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

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

相关文章

QT C++(QT控件 QPushButton,QRadioButton,QCheckBox)

文章目录 1. QPushButton 普通按钮2. QRadioButton 单选按钮3. QCheckBox 复选按钮 1. QPushButton 普通按钮 QPushButton中的重要属性 text:按钮中的文本icon:按钮的图标iconSize:按钮中图标的尺寸shortCut:按钮对应的快捷键&a…

Unity3d使用3D WebView for Windows and macOS打开全景网页(720云)操作问题记录

问题描述 使用Unity3d内嵌网页的形式打开720云中的全景图这个功能,使用的是3D WebView for Windows and macOS插件,720云的全景图在浏览器上的操作是滑动鼠标滚轮推远/拉近全景图,鼠标左键拖拽网页可以旋转全景图内容。网页的打开过程是正常…

RK3588 Android13自定义一个按键实现长按短按

一、kernel修改 diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nvr-demo.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-nvr-demo.dtsi index 5aae5c613825..4cc1223f9cbf 100755 --- a/arch/arm64/boot/dts/rockchip/rk3588-nvr-demo.dtsib/arch/arm64/boot/dts/rockchip…

IDEA创建Mybatis项目

IDEA创建Mybatis项目 第一步:创建库表 -- 创建数据库 create database mybatis_db;-- 使用数据库 use mybatis_db;-- 创建user表 CREATE TABLE user (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(50) NOT NULL,email VARC…

transformer中对于QKV的个人理解

目录 1、向量点乘 2、相似度计算举例 3、QKV分析 4、整体流程 (1) 首先从词向量到Q、K、V (2) 计算Q*(K的转置),并归一化之后进行softmax (3) 使用刚得到的权重矩阵,与V相乘,计算加权求和。 5、多头注意力 上面…

记一次postgresql拼接函数string_agg() 和row_number() 使用

PG两个函数使用需求和简单介绍 需求背景介绍第一个需求背景是这样的需求升级一下接下来讲讲STRING_AGG()基本语法排序 然后我们再说说ROW_NUMBER()基本语法使用 row_number() over (partition by) 进行分组统计使用 row_num限定每组数量 需求背景介绍 第一个需求背景是这样的 …

【MATLAB源码-第222期】基于matlab的改进蚁群算法三维栅格地图路径规划,加入精英蚁群策略。包括起点终点,障碍物,着火点,楼梯。

操作环境: MATLAB 2022a 1、算法描述 蚁群算法(Ant Colony Optimization,ACO)是一种通过模拟蚂蚁觅食行为的启发式优化算法。它由意大利学者Marco Dorigo在20世纪90年代初提出,最初用于解决旅行商问题(T…

从《千脑智能》看大模型

千脑智能与大模型 千脑智能介绍 世界模型千脑智能理论——对大脑的全新理解旧大脑:演化的历史烙印新大脑:智慧的创新引擎新旧大脑的互动与争斗启示与借鉴 大脑对信息的处理和建模六根六尘六识 新脑:智能的创新中枢旧脑:生存的本能…

Web前端笔记:深入探索与实战精髓

Web前端笔记:深入探索与实战精髓 Web前端,作为构建互联网世界的基石之一,承载了用户与网页交互的桥梁作用。对于前端开发者而言,不断积累与更新自己的知识体系显得尤为重要。本文将从四个方面、五个方面、六个方面和七个方面&…

Spring的Controller是单例还是多例,如何保证线程安全的。

目录 验证是否单例(默认单例) 多例测试 单例对象成员变量测试 多例对象成员变量测试 解决方案 结论: 补充说明 答案:controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。 正…

求宇文玥在水下的浮力和赵丽颖捞他的时间

关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业分析/数据结构与算法学习资料 2024年汉东省在达康书记的带领下率先实现高考试点改革。为让更多的考生能提升对他们的理解和记忆,把电视剧的场景融入考试题目中。确保学生看一遍就懂,想…

STM32 proteus + STM32Cubemx仿真教程(第一课LED教程)

文章目录 前言一、STM32点亮LED灯的原理1.1GPIO是什么1.2点亮LED灯的原理 二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写1.LED灯操作函数介绍HAL_GPIO_WritePin函数原型参数说明示例代码 HAL_GPIO_TogglePin函数原型参数说明示例代码 2.代码编写3.烧写程序 总…

(三)React事件

1. React基础事件绑定 语法&#xff1a; on 事件名称 { 事件处理程序 }&#xff0c;整体上遵循驼峰命名法 App.js //项目根组件 //App -> index.js -> public/index.html(root)function App() {const handleClick () > {console.log(button被点击了)}return (<…

【值得一看的新特性】JDK21

文章目录 1. JEP 425: 虚拟线程 (Virtual Threads)1.1 是什么1.2 为什么1.3 怎么用 2. JEP 428: 结构化并发 (Structured Concurrency)2.1 是什么2.2 为什么2.3 怎么用 3. JEP 440: Record模式 (Record Patterns)3.1 是什么Record类型 3.2 为什么3.3 怎么用 4. JEP 427: switch…

9.0 Android中的网络技术

Android中网络相关的技术&#xff0c;主要分别两种&#xff0c;一种为直接显示网页&#xff0c;另外一种为获取服务器中的数据进行设置。 权限声明 访问网络是需要声明权限 <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"…

mac m1使用docker安装mysql5.7,并且开启binlog

1. 使用 mysql/mysql-server:5.7 镜像 创建一个名为 docker-compose.yml 的文件&#xff0c;内容如下&#xff1a; version: 3.1services:mysql:image: mysql/mysql-server:5.7container_name: mysql57ports:- "3306:3306"environment:MYSQL_ROOT_PASSWORD: yourpa…

k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA详细解释与安装

文章目录 前言VPA简介简单理解详细解释VPA的优缺点优点1.自动化资源管理2.资源优化3.性能和稳定性提升5.成本节约6.集成性和灵活性 缺点1.Pod 重启影响可用性2.与 HPA 冲突3.资源监控和推荐滞后&#xff1a;4.实现复杂度&#xff1a; 核心概念Resource Requests 和 Limits自动调…

51单片机采用定时器T1的方式1的中断计数方式,外接开关K4按4次后,8只LED闪烁不停

1、功能描述 采用定时器T1的方式1的中断计数方式&#xff0c;外接开关K4按4次后&#xff0c;8只LED闪烁不停 2、实验原理 定时器原理:8051的定时器可以用于计数外部事件或执行内部定时操作。在本程序中&#xff0c;定时器1被设置为模式2&#xff0c;即8位自动重装载定时器模式…

DefaultTokenServices源码

文章目录 DefaultTokenServices实现的接口AuthorizationServerTokenServicesResourceServerTokenServicesConsumerTokenServices 代码属性定义createAccessToken(OAuth2Authentication)createRefreshToken(OAuth2Authentication) DefaultTokenServices DefaultTokenServices是…

Unity Shader基础知识的入门了解

目录 1、Unity 中的shader 里面的所谓的顶点坐标&#xff0c;用通俗的语言讲解一下? 什么是顶点&#xff1f; 顶点坐标是什么&#xff1f; 通俗解释顶点坐标 在Unity Shader中的顶点坐标 在Shader中使用顶点坐标 总结 2、顶点UV1/UV2 是什么意思&#xff0c;用通俗的语…