MAE论文解读

article/2025/11/10 21:39:42

文章目录

  • 创新点
  • 算法原理
    • Masking
    • MAE encoder
    • MAE decoder
    • 重构目标
  • 实验
    • Baseline: ViT-Large.
    • 消融实验
    • Mask token
    • 自监督方法比较
    • 迁移至目标检测任务及语义分割任务
  • 结论

论文: 《Masked Autoencoders Are Scalable Vision Learners》
代码: https://github.com/facebookresearch/mae

创新点

本文说明掩码自编码器(MAE)在无监督视觉领域应用可行性;
MAE有两个重要设计:
1、非对称编、解码器;编码器仅处理可见patch,解码器通过潜在特征及mask位置重构原始图片;
2、mask遮挡大部分效果更佳,比如75%;
作者使用MAE预训练模型,在ImageNet-1K数据集上finetune后,acc达到87.8%,超越之前仅使用ImageNet-1K数据集结果。

算法原理

MAE整体流程如图1所示,
在这里插入图片描述
MAE主要包括以下部分:

Masking

1、跟随ViT(可以参考之前的文章ViT论文解读),将图片分为几个不重叠patch;
2、采样patch的一部分,剩余mask填充;

MAE encoder

未遮挡patch及位置编码送入ViT编码器(Multi-Head Attention及MLP);

MAE decoder

1、MAE decoder的输入为:
可见patch经过编码器结果以及mask token;每一个mask token可学习,指示是否有缺失patch需要预测;
2、MAE decoder仅在预训练阶段使用,用于执行图像重构任务,编码器仅用于生成图片特征,进而用于识别;

重构目标

decoder最后一层为线性映射层,使得输出channel与每个patch像素数量相等;
重构图片与原始图片在像素空间使用MSE损失函数

实验

Baseline: ViT-Large.

作者使用过ViT-Large进行消融实验,原论文ViT性能76.5%,作者复现结果82.5%,MAE结果84.9%。此处MAE仅finetune50epoch,ViT训练200epoch,MAE性能可能更高;
在这里插入图片描述

消融实验

结果如表1,
在这里插入图片描述
表1a说明:解码器深度对于提升finetuning性能几乎无影响;
表1b说明:解码器宽度使用512维,因为其在微调和线性映射上表现最佳;
表1c说明:编码器不使用mask token,在微调及linear probing上性能最优,计算量降低3.3倍;
表1d说明:作者比较不同重构目标,比如:像素值是否做归一化,是否进行PCA降维;发现使用归一化像素值效果最佳;
表1e说明:作者比较不同数据增强方案影响: MAE使用仅裁剪的增强效果很好,无论是固定大小还是随机大小(都具有随机水平翻转)。 添加颜色抖动会降低结果,因此我们不会在其他实验中使用它。
表1d说明:比较mask不同采样方案(random、block、grid)影响,如图6,结果证明随机采样效果最佳;
在这里插入图片描述

Mask token

如果编码器使用mask-token,性能更加糟糕,见表1c,由于训练和部署存在差异,训练过程中输入一大部分mask token,部署时输入完好无损图片,不存在mask token
移除编码器中mask token,大幅减少计算量;

自监督方法比较

结果如表3,
在这里插入图片描述

迁移至目标检测任务及语义分割任务

目标检测实验结果如表4,语义分割实验结果如表5
在这里插入图片描述
ViT生成单尺度特征图(16倍降采样),在迁移任务上,通过卷积上采样或降采样当前特征图,得到4个不同尺度(4倍、8倍、16倍、32倍降采样),从而引入FPN。

结论

1、在 ImageNet 和迁移学习中观察到自动编码器(一种类似于 NLP 技术的简单自监督方法)提供了可扩展的优势。
2、图片记录光,虽然不像文字通过word记录语义信息;但是实验证明MAE可以通过丰富浅层特征学习到视觉语义信息。
3、MAE可能会生成一些不存在的内容,是否可用于图像生成;


http://chatgpt.dhexx.cn/article/wNRHL3j8.shtml

相关文章

MSE与MAE

均方误差 均方误差(MSE)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和,公式如图。 下图是MSE函数的图像,其中目标值是100,预测值的范围从-10000到10000,Y轴代表的MSE取值范围是从0到正无穷&…

论文阅读|MAE

Masked Autoencoders Are Scalable Vision Learners 参考资料 Self-Supervised Learning 超详细解读 (六):MAE:通向 CV 大模型 - 知乎 (zhihu.com) Self-Supervised Learning 超详细解读 (目录) - 知乎 (zhihu.com)、 1. 有监督(Supervise…

MAE论文笔记

MAE论文笔记 Masked Autoencoders Are Scalable Vision Learners MAE模型和其他的结构的关系,可以认为是在ViT的基础上实现类似于BERT的通过完型填空获取图片的理解 标题和作者 Masked Autoencoders Are Scalable Vision Learners 其中的Autoencoders 中的auto是…

MAE

背景 作者开门见山说明了深度学习结构拥有越来越大的学习容量和性能的发展趋势,在一百万的图像数据上都很容易过拟合,所以常常需要获取几百万的标签数据用于训练,而这些数据公众通常是难以获取的。MAE的灵感来源是DAE(denosing autoencoder)…

RMSE(均方根误差)、MSE(均方误差)、MAE(平均绝对误差)、SD(标准差)

RMSE(Root Mean Square Error)均方根误差 衡量观测值与真实值之间的偏差。 常用来作为机器学习模型预测结果衡量的标准。 MSE(Mean Square Error)均方误差 MSE是真实值与预测值的差值的平方然后求和平均。 通过平方的形式便于…

【深度学习】详解 MAE

目录 摘要 一、引言 二、相关工作 三、方法 四、ImageNet 实验 4.1 主要属性 4.2 与先前结果的对比 4.3 部分微调 五、迁移学习实验 六、讨论与结论 七、核心代码 Title:Masked Autoencoders Are Scalable Vision LearnersPaper:https://arx…

MAE模型介绍

目录 介绍 模型 ​编辑 实验过程 结论 介绍 Masked Autoencoders Are Scalable Vision Learners Facebook Al的kaiming大神等人于2021年十一月提出了一种带自编码器(MAE),它基于(ViT)架构。他们的方法在imageNet上的表现要好于从零开始训练的VIT。 灵感来源&…

深度学习:MAE 和 RMSE 详解

平均绝对误差MAE(mean absolute error) 和均方根误差 RMSE(root mean squared error)是衡量变量精度的两个最常用的指标,同时也是机器学习中评价模型的两把重要标尺。 那两者之间的差异在哪里?它对我们的生活有什么启示…

RMSE、MAE等误差指标整理

1 MAE Mean Absolute Error ,平均绝对误差是绝对误差的平均值 for x, y in data_iter:ymodel(x)d np.abs(y - y_pred)mae d.tolist()#maesigma(|pred(x)-y|)/m MAE np.array(mae).mean() MAE/RMSE需要结合真实值的量纲才能判断差异。 下图是指,假如g…

MAE详解

目录 一、介绍 二、网络结构 1. encoder 2. decoder 3. LOSS 三、实验 全文参考:论文阅读笔记:Masked Autoencoders Are Scalable Vision Learners_塔_Tass的博客-CSDN博客 masked autoencoders(MAE)是hekaiming大佬又一新作,其做法很…

crontab用法详解

crontab命令用于设置周期性被执行的命令,适用于日志备份,清理缓存,健康状态检测等场合。 crontab的配置文件:/etc/crontab

linux的crontab用法与实例

linux的crontab用法与实例 crontab的适用场景 在Linux系统的实际使用中,可能会经常让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息、负载状况;定时执行某些任务/脚本来对远端进行数据采集或者备份等操作。 首先通过…

定时任务 crontab 命令安装和用法整理

Crontab 概念 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令,类似于闹钟,可以定时执行任务。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中(是“cron table”的简写&#…

crontab用法与实例

crontab用法与实例 本文基于 ubuntu 18.04 在Linux系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息、负载状况;定时执行某些任务/脚本来对远端进行数据采集等。这里将介绍下crontab的配…

crontab的基本用法

1、 crontab -l 查看所有的定时任务 2、 crontab -e 编辑定时任务。 i 进入编辑模式 。esc退出编辑模式。:wq! 保存并退出。 报错信息: “/tmp/crontab.4qE940”:1: bad month errors in crontab file, can’t install. 说明定时任务编辑失败,文件中有错…

linux中crontab的用法

一:crontab 简介 crontab是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程…

1.4 - 操作系统 - Linux计划任务,CronTab用法详解

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「订阅专栏」:此文章已录入专栏《网络安全入门到精通》 CronTab计划任务 一、服务二、查看计划任务三、编辑计划任务四、删除计划任务五、配置文件Linux系统使用CronTab命令来操作计划任务。…

crontab 详细用法、定时任务 、时间规则

简介 Linux crontab和Windows task schedules非常的相似。Crontab可以用来在系统中定期的执行任务。比如:写了一个爬虫需要每天早上八点执行,就可以用到Crontab;安装的Tomcat服务器需要每天凌晨重启一次,也可以使用到Crontab。总之&#xff0…

crontab的使用方法介绍

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行 安装:apt-get install cron (服务器环境下默认都会安装) 使用:crontab -e 进入编辑页面(第一次进入会让你选择编辑…

Crontab配置及使用总结

1、 crontab命令概念 crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不…