(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 特征值分别定量了平均平坦度和损失曲率的程度。因此,我们期待未来的工作可以定量比较这些优化动态指标。

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

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

相关文章

【Linux】进程5——进程优先级

1.进程优先级 1.1.什么是进程优先级 cpu资源分配的先后顺序,就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上&#x…

爬虫可以不必自己写,使用ChatGPT编写抓取电影评论数据脚本

经常去新华书店看看有没有什么新书上架,还是更新挺及时的,可以反映新的技术趋势。这不,最近就看到了这本《巧用 ChatGPT 快速搞定数据分析》,作者是个大牛,第一次看到prompt可以这么写,得写这么长&#xff…

ipynb转markdown的简单方法

在线转换 推荐在线转换,拖进去后下载就行,简单易操作。 Convert Jupyter notebook to GitHub-Flavored Markdown for free on AlldocsThe free text converter for all your documents.https://alldocs.app/convert-jupyter-notebook-to-markdown vsc…

【C51】DIY电子音乐贺卡:C51单片机项目设计与实现

文章目录 前言:1. 要求:2. 实现效果:3. 准备工作:4. 编写代码:5. 导出bmp格式图片总结: 前言: 在当今数字化时代,电子贺卡以其独特的互动性和个性化特点,成为人们表达情…

Data Mining2 复习笔记6 - Optimization Hyperparameter Tuning

6. Optimization & Hyperparameter Tuning Why Hyperparameter Tuning? Many learning algorithms for classification, regression, … Many of those have hyperparameters: k and distance function for k nearest neighbors, splitting and pruning options in decis…

软件游戏d3dcompiler_47.dll缺失怎么办,多种有效的解决方法分享

在计算机使用过程中,我们可能会遇到各种软件错误提示,其中之一就是“d3dcompiler47.dll缺失”。这个错误提示可能会影响到我们的正常使用,甚至导致某些软件无法运行。那么,d3dcompiler47.dll缺失究竟会造成哪些问题呢?…

看似不同的事情,却是相同的坑

目录 一、背景二、过程1.遭遇战-微盘股的下杀2.不失为一件好事3.一切向后看吧,最近的学习感受4.该有的心境 三、总结 一、背景 也在一点点改变,期间势必要经历流血的过程;所谓无疯狂不成长,积极的心态去应对,去总结总…

R语言数据探索和分析22-使用随机森林和聚类算法探索和预测健康状况

一、研究背景 在两个实验中,使用了一组综合性的生物统计数据来探索和预测健康状况(特别是疾病的发生)。实验的核心在于应用高级数据分析技术,具体包括随机森林分类和聚类分析,来洞察和预测个体的健康状况。首先&#…

专业学习|南开大学《随机过程》学习笔记(一)

(1)有哪些经典的关于基本随机过程的书籍推荐? 对于想要系统学习基本随机过程的学生来说,可以参考Sheldon M.Rose编著的经典著作《随机过程》。该书涉及的内容也比较宽泛。但并不局限于单个细节论证。 此外,萨缪尔科林(…

SpringAOP 常见应用场景

文章目录 SpringAOP1 概念2 常见应用场景3 AOP的几种通知类型分别有什么常见的应用场景4 AOP实现 性能监控4.1 首先,定义一个切面类,用于实现性能监控逻辑:4.2 定义自定义注解4.3 注解修饰监控的方法 5 AOP实现 API调用统计5.1 定义切面类&am…

连续状态方程的离散化例子

连续状态方程的离散化 在控制系统中,连续状态方程的离散化是一个重要的步骤,用于将连续时间系统转换为离散时间系统,以便在数字控制器中实现。这通常涉及将连续时间的微分方程转换为离散时间的差分方程。常用的离散化方法 前向欧拉法(Forward Euler)简单易实现,但精度较…

在Anaconda中安装keras-contrib库

文章目录 1. 有git2. 无git2.1 步骤12.2 步骤22.3 步骤3 1. 有git 如果环境里有git,直接运行以下命令: pip install githttps://www.github.com/farizrahman4u/keras-contrib.git2. 无git 2.1 步骤1 打开网址:https://github.com/keras-tea…

刷代码随想录有感(97):动态规划——斐波那契数列

题干&#xff1a; 代码&#xff1a; class Solution { public:int fib(int n) {if(n < 1)return n;vector<int> dp(n 1);dp[0] 0;dp[1] 1;for(int i 2; i < n; i){dp[i] dp[i - 1] dp[i - 2];}return dp[n];} }; 动态规划五部曲&#xff1a; 1.dp数组的定…

【数据结构】二叉树专题

前言 本篇博客我们来看一些二叉树的经典题型&#xff0c;也是对上篇博客的补充 &#x1f493; 个人主页&#xff1a;小张同学zkf ⏩ 文章专栏&#xff1a;数据结构 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 ​ 目录 1.单值二叉树 …

鲜为人知的英伟达创始人:早早退出,身价不如黄仁勋零头

内容提要 普里姆因为婚姻纠纷等个人生活的干扰无法专注在工作上&#xff0c;在成立公司的10年后&#xff0c;也就是2003年宣布退休离开英伟达&#xff0c;并在2006年出售剩余的所有英伟达股份&#xff0c;过上不与外界联系、离群索居的生活&#xff0c;在家中鼓捣着如何“拯救…

数据结构【堆排序】

前言 在上一篇文章主要讲解了二叉树的基本概念和堆的概念以及接口的实现&#xff08;点此处跳转&#xff09; 我们简回顾下堆的基本概念&#xff1a; 1.堆分为大堆和小堆 大堆&#xff1a;父亲结点比左右孩子都大&#xff0c;根结点是最大的小堆&#xff1a;父亲结点比左右孩…

Redis系列-4 Redis集群介绍

Redis集群 Redis提供了持久化能力&#xff0c;保证了重启不会丢失数据&#xff1b;但Redis重启至完全恢复期间&#xff0c;缓存不可用。另外&#xff0c;对于高并发场景下&#xff0c;单点Redis服务器的性能不能满足吞吐量要求&#xff0c;需要进行横向扩展。此时&#xff0c;…

Java基础_Stream流

Java基础_Stream流 Stream流的简单使用Stream流的获取Stream流的中间方法Stream流的终结方法综合练习数字过滤字符串过滤并收集自定义对象过滤并收集 来源Gitee地址 Stream流的简单使用 public class StreamDemo01 {public static void main(String[] args) {/*** 创建集合添加…

【C++ | 拷贝赋值运算符函数】一文了解C++的 拷贝赋值运算符函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-09 1…

API接口测试工具:jmeter的安装、汉化、Jmeter桌面快捷图标和基本使用

文章目录 测试工具&#xff1a;JmeterJmeter安装和配置Jmeter汉化设置中文语言&#xff1a;永久方式设置中文语言&#xff1a;临时方式 设置Jmeter桌面快捷图标jmeter基本用法Jmeter无法保存测试问题解决 测试工具&#xff1a;Jmeter Jmeter依赖于JDK&#xff0c;所以必须确保…