还需要“注意力层”吗?一堆“前馈层”在ImageNet上表现得出奇得好

牛津博士和谷歌同时发现

水木番 发自 凹非寺
量子位 报道 | 公众号 QbitAI

谷歌昨天提出的MLP-Mixer,可谓是小火了一把。

简单来说,就是不需要卷积模块、注意力机制,就可以达到与CNN、Transformer相媲美的图像分类性能。

但看到新闻的牛津大学博士Luke Melas-Kyriazi,却沮丧了好一会:

因为大约一个月前,他就发现了可以用前馈层替换注意力层,并已经获得了很好的效果。

也就是说,他的方法和MLP-Mixer差不多……

所以当他看到报纸时,他甚至一度曾考虑报废自己的成果。

但他最终还是把成果发在了arXiv上,全文包括了4页的报告和代码。

让我们来看看他的成果。

研究原理

视觉transformer在图像分类和其他视觉任务上的强大性能,通常归因于其multi-head 注意力层的设计。

但是,目前尚不清楚引起这种强劲表现的程度。

而在这份简短的报告中,他亮出了核心观念:

注意力层是必要的吗?

具体来说,他将视觉transformer中的注意力层,替换为应用于patch dimension的前馈层。

最终产生的体系结构,只是一系列以交替的方式应用于patch和特征dimension的前馈层。

在ImageNet上进行的实验中,此架构的性能出奇地好:

基于ViT / DeiT的模型,可达到74.9%的top-1精度,而ViT和DeiT分别为77.9%和79.9%。

他的结果表明,无需注意力层,视觉transformer的其他方面,例如patch embedding,可能是其性能强大的主要原因。

他也希望这些结果能帮助大家,花更多的时间,来理解为什么目前的模型能像现在这样有效。

MLP-Mixer的原理

再回头看看谷歌的MLP-Mixer。

MLP-Mixer是一种仅基于多层感知机(MLP)的体系结构。

MLP-Mixer包含两种类型的层:一种具有独立应用于图像patches的MLP(即“混合”每个位置特征),另一种具有跨patches应用的MLP(即“混合”空间信息)。

MLP-Mixer用Mixer的MLP来替代ViT的transformer,减少了特征提取的自由度,并且巧妙的可以交替进行patch间信息交流和patch内信息交流。

从结果上来看,纯MLP貌似也是可行的,而且省去了transformer复杂的结构,变的更加简洁。

你品,你细品!

怎么样,是不是很像?

Luke Melas-Kyriazi自己说,这是与谷歌MLP-Mixer并行的研究,idea完全相同,不同之处在于使用了更多的计算。

网友:几乎相同,但好过谷歌!

论文看起来与MLP-Mixer几乎相同,除了Mixer的大数据方法中包含了花式的数据和长效的实验。

他的“前馈层堆栈”比MLP-Mixer的还要精确得多!

而他也表示:

正是大公司的介入使竞争越来越激烈,他们可以在更短的时间内进行更多的实验,就像高度优化的造纸机。

好吧,果然大神们的世界做课题的方向和速度都是一样的“神”。

有兴趣的亲们记得去看这两个研究的原文。

团队介绍

Luke Melas-Kyriazi 哈佛大学数学系毕业生、现牛津大学博士。

目前,在牛津大学Andrea Vedaldi教授指导下,Luke攻读方向为机器学习和计算机视觉,专注于半监督和多模式学习研究。

参考链接:

[1]https://www.reddit.com/r/MachineLearning/comments/n62qhn/r_do_you_even_need_attention_a_stack_of
[2]https://arxiv.org/abs/2105.02723
[3]https://www.reddit.com/r/MachineLearning/comments/n59kjo/r_mlpmixer_an_allmlp_architecture_for_vision/
[4]https://arxiv.org/abs/2105.01601
[5]https://zhuanlan.zhihu.com/p/369959580
[6]https://www.163.com/dy/article/G9AVMRPD0511DPVD.html

版权所有,未经授权不得以任何形式转载及使用,违者必究。