CVPR 2023 | 谷歌、MIT提出统一框架MAGE:表征学习超MAE,无监督图像生成超越 Latent Diffusion

简介: CVPR 2023 | 谷歌、MIT提出统一框架MAGE:表征学习超MAE,无监督图像生成超越 Latent Diffusion

机器之心编辑部

在一篇 CVPR 2023 论文中,来自 MIT 和谷歌的研究人员提出了一种全新的框架MAGE,同时在图像识别和生成两大任务上实现了 SOTA。

识别和生成是人工智能领域中的两大核心任务,如果能将二者合并到一个统一的系统中,这两个任务应该能实现互补。事实上,在自然语言处理中,像 BERT [1] 这样的模型不仅能够生成高质量的文本,还能够提取文本中的特征。


然而,在计算机视觉领域,目前的图像生成模型和识别模型大多是分开进行训练,没有充分利用这两个任务的协同作用。这主要是由于图像生成和图像识别的模型通常具有本质上的结构差异:图像生成的输入是低维度的特征或噪声,而输出是高维度的原始图像;与之相反,图像识别的输入是高维度的原始图像,而输出是低维度的特征。


最近,来自 MIT 和 Google Research 的研究人员提出了一种基于图像语义符掩码的表征学习方法,首次在一个统一的框架中实现了图像生成和表征学习,并在多个数据集上取得了 SOTA 表现。研究论文已被 CVPR 2023 接收,相关代码与预训练模型已开源。




在 CVPR 2022 上,MAE [2] 提出了一种基于图像掩码(MIM)的表征学习方法,并在多个子任务上取得了非常好的效果。在高达 75% 的掩码率下,MAE 可以重构出与原图语义十分贴合的图像,并借此让网络能够自监督地学习图像中的特征。然而,如图 1 所示, MAE 重建的图像虽然具有与原始图像相似的语义信息,但会出现严重的模糊与失真问题。类似的问题也出现在所有基于 MIM 的表征学习方法中。同时,目前的生成模型,不管是扩散模型还是 GAN,都缺乏提取高质量图像特征的能力。


图 1:MAE 与 MAGE 重构对比


方法概述


针对上述问题,本文作者提出了 MAGE(Masked Generative Encoder),首次实现了统一的图像生成和特征提取模型。与MIM直接作用于图像的掩码方法不同,MAGE 提出了基于图像语义符的 masked image token modeling 方法。如图所示,MAGE 首先使用 VQGAN [3] 编码器将原始图像转换为离散的语义符。之后,MAGE 对其进行随机掩码,并使用基于 transformer 的 encoder-decoder 结构对掩码进行重构,重构后的语义符可以通过 VQGAN 解码器生成原始图像。通过在训练中使用不同的掩码率,MAGE 可以同时进行生成模型(接近 100% 掩码率)和表征学习(50%-80% 掩码率)的训练。如图 1 所示,MAGE 重建出的图像不仅具有与原始图像一致的语义信息,还能够同时保证生成图像的多样性与真实性。


图 2:MAGE 结构图


实验结果


MAGE 在多个图像生成与图像识别任务上都达到或超过了 SOTA。



在 ImageNet 的无监督图像生成任务中,MAGE 的 FID 从之前的 > 20 降至 7.04,甚至达到了有监督图像生成的水准(有监督 Latent Diffusion 在 ImageNet 上的 FID 为 3.60):




图3:MAGE 无监督图像生成样例


MAGE 还能够进行各类图像编辑工作,包括 image inpainting、outpainting、uncropping:


图 4:MAGE 图像编辑样例


在表征学习方面,MAGE 在 ImageNet linear probing、少样本学习、迁移学习等任务中,相较于目前的 MIM 方法有了大幅提升,并且可以达到或超过目前最优的自监督学习方法的水平。




结语


本文旨在将图像生成与表征学习统一起来。为此,本文作者提出了 MAGE,一种基于图像语义符掩码的自监督学习框架。该框架简洁、高效,并首次在图像生成和表征学习上都达到或超越了 SOTA 的表现。感兴趣的读者可以查看论文原文,以了解更多研究细节。


参考文献:

[1] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805, 2018.

[2] Kaiming He, Xinlei Chen, Saining Xie, Yanghao Li, Piotr Dollar, and Ross Girshick. Masked autoencoders are scalable ´ vision learners. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 16000– 16009, 2022.

[3] Patrick Esser, Robin Rombach, and Bjorn Ommer. Taming transformers for high-resolution image synthesis. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 12873–12883, 2021.

相关文章
|
前端开发 JavaScript API
020 Umi@4 中如何实现动态菜单
020 Umi@4 中如何实现动态菜单
1316 0
020 Umi@4 中如何实现动态菜单
|
存储 监控 算法
版本控制算法在文档管理软件中的关键作用:提升安全性与权限管理
版本控制算法是一种不可或缺的工具,这个家伙不仅能帮你记录文档的点点滴滴,还能在需要时穿越时空,让你回到过去的版本。这可是文档管理的大杀器,不仅让你不怕数据丢失,还能保证文档历史清清楚楚。接下来,就让我们来聊聊怎么样才能用版本控制算法来加强文档管理软件的安全性和权限管理吧——
313 1
|
7月前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
267 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
|
JavaScript 前端开发 搜索推荐
CSR、SSR与同构渲染全方位解析
CSR、SSR与同构渲染全方位解析
367 0
|
机器学习/深度学习 存储 自然语言处理
深度学习500问——Chapter05: 卷积神经网络(CNN)(1)
深度学习500问——Chapter05: 卷积神经网络(CNN)(1)
363 1
|
机器学习/深度学习 存储 运维
ICML 2024:清华提出时间序列大模型:面向通用时序分析的生成式Transformer
【8月更文挑战第7天】在2024年ICML大会上,清华大学团队推出“时间序列大模型(LTSM)”——Timer,一种处理大规模时间序列数据的生成式Transformer。该模型通过预训练学习通用特征,支持多种任务如预测与异常检测。Timer采用统一的数据格式S3处理异构序列,并在数据稀缺场景下展现出色性能。尽管如此,模型泛化能力与计算效率仍有待优化。论文详情参见:https://arxiv.org/abs/2402.02368。
2819 4
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
565 1
|
前端开发 API vr&ar
Android开发之OpenGL绘制三维图形的流程
即将连载的系列文章将探索Android上的OpenGL开发,这是一种用于创建3D图形和动画的技术。OpenGL是跨平台的图形库,Android已集成其API。文章以2D绘图为例,解释了OpenGL的3个核心元素:GLSurfaceView(对应View)、GLSurfaceView.Renderer(类似Canvas)和GL10(类似Paint)。通过将这些结合,Android能实现3D图形渲染。文章介绍了Renderer接口的三个方法,分别对应2D绘图的构造、测量布局和绘制过程。示例代码展示了如何在布局中添加GLSurfaceView并注册渲染器。
584 1
Android开发之OpenGL绘制三维图形的流程
|
移动开发 算法 计算机视觉
技术笔记:openCV特征点识别与findHomography算法过滤
技术笔记:openCV特征点识别与findHomography算法过滤
447 0
|
Linux
linux硬件时间修改与查看
linux修改时间和日期.查看修改硬件时间 Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。
2306 0