聊聊我眼中恺明大神MAE的成功之处
卷友们好,我是rumor。
这两天忍不住又卷去看CV领域的论文了,主要是前些日子恺明大神的MAE太过强大,感觉不看会错过一个亿。看了之后果然不负我的期待,大道至简,思路太清晰了、太深刻了,给他投光我的几百个B币都不为过。
不过,相信很多NLP领域的同学和我的第一反应一样,听到CV领域终于出了一个类似BERT的模型,却内心有一丝丝的疑惑:BERT都出来三年了,CV领域的为什么现在才出来?而明明看起来这么简单的做法,为什么只有恺明大神成功了?
没错,我也有这个疑惑,于是我去翻了一下恺明大神在相关工作提到的iGPT、ViT、BEiT。把这三篇看下来,我才真正领略到了大神思想的高度。
难道之前的工作没试过提升mask ratio吗?不是的。
难道之前的工作没试过用ViT预测pixel吗?不是的。
而这就是大神的NB之处,明明别人都试过了,觉得不work,而MAE就是能把这两个核心问题想清楚,然后做出效果。
到底怎么做出来的呢?不急,我来帮大家捋一捋。
iGPT
我们这个故事,要从2020年OpenAI的iGPT讲起。OpenAI是一个想把一切GPT化的公司,到了图像这里,自然的想法就是用GPT来训一个图像模型。但是图像是个三维的数据(长x宽x通道),不像文字一样可以变成一维向量的序列。如果直接把图像的三维矩阵拼成二维也可以,但这样数量就太多了。于是iGPT就想到了一个方法,把图像马赛克掉,变成一个个色块,数量一下就减少了,可以像NLP一样愉快地输入到Transformer了:
解决这个核心难点之后就很愉快了,可以无脑用GPT和BERT啦。
最后实验下来,BERT在两个数据集的平均表现比GPT差一点点(橙色):
而且BERT因为mask的方式,存在训练预测不一致的问题,OpenAI尝试对测试数据随机mask 5个token,最终ImageNet结果果然上升了一些(红色)。但还是改变不了OpenAI要用GPT统治一切的事实,这篇文章还是用GPT-2(摊手。
iGPT虽然尝试过形式与BERT接近的预训练,但却连一个MAE的关键点都没碰到。其中我觉得问题最大的主要是这个马赛克操作,就拿文中贴的例子来看,都被马赛克成那样子了,还学习什么呢。。。虽然事实证明还是有效果的,但还是从输入上就降低了模型的拟合能力。
但别急,这个问题马上就被解决了。
ViT
第二个出场的嘉宾,就是红遍大江南北的Vision Transformer——ViT。
它对上面问题的解决办法,就是思想上借鉴了CNN的局部特征抽取,把图片分割成一个个patch,再通过线性映射成一个类似NLP的token embedding。同时为了保留位置信息,加上了可学习的position embedding。
从ViT开始,CVer们终于可以更优雅地使用Transformer了。然而ViT的实验还是跟传统CV一样,进行有监督的预训练。为什么不试试MLM呢?其实他们试过了,但效果不好,所以没重点放出来。
在附录中,ViT其实尝试过三种预训练方法,首先mask掉50%的patch,然后:
只预测patch的mean color
只预测一个马赛克版的patch
用L2损失预测所有pixel
第三种方法真的很接近有木有!!!然而实验发现第三种更差一些,第一种最好,但也比有监督的落后4个点。
看到这里,如果去翻翻MAE的分析实验,就会发现MAE mask 50%之后的效果也很好:
怎么办,就导致我这个旁观者很着急。虽然ViT已经是很厉害的工作了,如果当时再想想,简直神上加神。到底是什么点呢?我们留到MAE再说。
BEiT
第三位出场的嘉宾是BEiT,微软今年年中的工作,作者之一是知乎的董力大佬。
BEiT的形式同样很接近BERT,只不过用了一个dVAE对patch进行离散化(就像NLP的token也是离散化的)。dVAE需要先在语料上训练出一个encoder和一个decoder,encoder用来当作tokenizer,把图像离散化(对应一个个patch),然后给Transformer输入patch,预测离散后的图像,再用decoder还原。
在预训练阶段,最多会mask 40%的patch(同样很接近MAE了)。
另外,作者们其实也试过复原pixel,但效果会有1.8%的下降。对于这个现象,BEiT给出的猜想是,就像多层CNN一样,编码器最终得到的应该是一个更全局、高维的表示,而复现pixel会让后几层太关注局部细节。
MAE
终于轮到MAE出场了,了解了上述几个模型的背景,我们再来看恺明大神在开篇提出的问题:到底是什么原因导致视觉和语言用的masked autoencoder不一样?
核心的三个点是:
结构:CNN天然适合图像领域,而应用Transformer却显得不那么自然,不过这个问题已经被ViT解了。再看上面几篇工作,会发现相比iGPT的马赛克、dVAE的离散化来说,patch形态是对信息损失最少且相对高效的
信息密度:人类的语言太博大精深了,你女朋友的每一句话,都有18层含义。而照片(ImageNet)不一样,它就那么多信息,两三个词就能概括。所以预测的时候,预测patch要比预测词语容易很多,只需要对周边的patch稍微有些信息就够了。所以我们可以放心大胆地mask。这点ViT、BEiT其实也都有,但主要就是最后一点没有深究
需要一个Decoder:首先,是不是一定要复原pixel呢?我觉得是的,因为图片信息密度有限,复原pixel这种细粒度信息会让模型强上加强。那怎么优雅地复原呢?BEiT已经说过了,在预训练图像encoder的时候,太关注细节就损失了高维抽象能力。所以凯明大神加了一个decoder。到这里分工就很明确了,encoder负责抽取高维表示,decoder则负责细粒度还原
罗马不是一天建成的,MAE真正成功的点,就在于把后两个问题想清楚,并且给出了解决方案。
当然还有一些细节,比如:
输入侧直接丢掉mask token,效果+0.7,效率x3.3
预测normalize之后的pixel,效果+0.5
选取数据增强策略,效果+0.2
另外,BEiT和MAE用的预训练数据都是ImageNet-1K,再仔细看他们的预训练超参数,不一样的地方也有很多,但具体造成多大diff还不清楚。
总结
好了,我们的故事接近尾声了。由于时间有限,我只看了以上几篇MAE引用比较的重点工作,肯定还有很多预训练的尝试没有看到,不足之处还请指正。
不同人对科研的品味都不一样,我刚入门NLP的时候,恰好是BERT诞生的时候,记得特别清楚,是18年十月初的一个周末,我达摩院的朋友来找我玩,躺我床上刷手机时,跟我说出了一个很大的工作。再加上后续的一系列预训练进展,导致我越来越喜欢大道至简的方法。知乎上也有人质疑MAE的novelty,而当我们真正顺着看下来时,却可以看到MAE是真的多走了一步,深入浅出,最终呈现给大家一个「这都可以」的结果。
最后,其实预训练模型的价值,不仅是可以更简单、有效的迁移到下游任务,更是它scale的性质,试想如果增加算力、无监督数据就能提升效果的话,你对那个还未到达的天花板好不好奇呢?
欢迎对NLP感兴趣的朋友加入我们的「NLP卷王养成」群,一起学习讨论~
扫码添加微信备注「NLP」即可⬇️
大家好我是rumor
一个热爱技术,有一点点幽默的妹子
欢迎关注我
带你学习带你肝
一起在人工智能时代旋转跳跃眨巴眼
「给学姐投个币吧」
聊聊我眼中恺明大神MAE的成功之处相关推荐
- 聊聊恺明大神MAE的成功之处!
卷友们好,我是rumor. 这两天忍不住又卷去看CV领域的论文了,主要是前些日子恺明大神的MAE太过强大,感觉不看会错过一个亿.看了之后果然不负我的期待,大道至简,思路太清晰了.太深刻了,给他投光我的 ...
- 何恺明大神新作:一种用于目标检测的主流ViT架构,效果SOTA
链接:https://arxiv.org/abs/2203.16527 作者单位:Facebook AI Research 1导读 3月30日,何恺明大神团队在ArXiv上发布了最新研究工作,该工作主 ...
- 【前沿】何恺明大神ICCV2017最佳论文Mask R-CNN的Keras/TensorFlow/Pytorch 代码实现
我们提出了一个概念上简单.灵活和通用的用于目标实例分割(object instance segmentation)的框架.我们的方法能够有效地检测图像中的目标,同时还能为每个实例生成一个高质量的分割掩 ...
- 何恺明大神巨作:Faster R-CNN 论文笔记
视频链接:https://www.bilibili.com/video/BV1j5411e7aH/ 何恺明大神奠基Two-stage目标检测算法的一篇巨作. 1.看abstract时候的问题(看其他部 ...
- 那些年,我们一起追过的恺明大神!
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 来源丨AI算法与图像处理 编辑丨极市平台 导读 何恺明是CV领域的大神,发表过需要有对后续CV ...
- 今日重磅!恺明大神又一力作!重新思考万能的ImageNet预训练模型
译者 | 刘畅 林椿眄 整理 | Jane 出品 | AI科技大本营 Google 最新的研究成果 BERT 的热度还没褪去,大家都还在讨论是否 ImageNet 带来的预训练模型之风真的要进入 NL ...
- 何恺明大神新作--UnNAS:无监督神经网络架构搜索
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 作者:江山如画 编辑:Cver 链接:https://zhuanlan.zhihu.com/p ...
- 基于tensorflow keras实现何凯明大神的Mask R-CNN的介绍
基于tensorflow keras实现何凯明大神的Mask R-CNN的介绍 . 其英文的介绍说明,见如下网址. https://github.com/matterport/Mask_RCNN 中文 ...
- 何恺明一作MAE收录CVPR 2022 Oral!高达87.8%准确率!自监督领域新代表作
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 作者:happy | 转载自:极市平台 导读 何恺明提出一种用于计算机视觉的可扩展自监督学习方案Mas ...
最新文章
- python3 打印异常堆栈信息
- python怎么读取txt文件数据保存数组中-Python Numpy中数据的常用的保存与读取方法...
- 简易的CRM系统案例之SpringMVC+JSP+MySQL+hibernate框架版本
- goods.java_javaweb网上书城项目 1.用户管理:注册会员 - 下载 - 搜珍网
- asp.net如何取得纯客户端控件的值
- 数据清理--去掉空值
- D-Link 老款路由器被曝多个高危漏洞,未完全修复
- 计算机应用技术课程本科,《计算机应用技术I》课程教学大纲(共本科29级用)().doc...
- Python_数据类型_字符串的操作
- 用matlab画x 的定积分图像,matlab图像定积分
- 松本行弘:Ruby之父
- 人脸识别数据集-WebFace260M
- 关于匿名者组织(Anonymous),你都知道哪些?
- 基于C++的P2P穿透文件传输
- 【BUUCTF】CTF_Crypto 密码学_Quoted-printable(引用可打印)
- 百度网盘完美不限速下载,60MB/s,卢本伟修改!
- android自动亮度失效问题调查
- pdf批量修改属性工具软件使用教程
- 传感器实训心得体会_生产线实习心得体会范文
- re模块,hashlib模块
热门文章
- BlueCms v1.6 本地文件包含漏洞代码审计
- JavaWeb进阶之路:MyBatis-配置解析
- 【兴趣阅读】DeepInf: Social Influence Prediction with Deep Learning
- linux下关于笔记本的显卡驱动安装archlinux
- 【国庆福利】中奖名单公布
- “新基建”背景下,智慧灯杆产业面临的问题及思考
- 大数据之VMware和centos7安装
- 深度学习CV(基础理论知识)
- [PWN][基础篇]基础理论
- 程序员心理小测试:你是否患上抑郁症?