本文提出新层:Lambda Layers!由其衍生出的LambdaResNets,极大地改善了图像分类模型的速度与准确性权衡。在ImageNet上表现SOTA,同时比EfficientNets快约4.5倍!并在检测和分割任务中性能提升明显,代码刚刚开源!
作者:ChaucerG
来源:AI人工智能初学者微信公众号
论文(ICLR 2021投稿):https://openreview.net/forum?id=xTJEN-ggl1b
代码:https://github.com/lucidrains/lambda-networks
视频:https://www.youtube.com/watch?v=3qxJ2WD8p4w
1、简介
建模长期的交互作用是机器学习重心所在。注意力机制已经成为捕获远程交互作用的选择范例。然而,自注意力机制的二次内存占用妨碍了它对长序列或多维输入的适用性,比如通常包含数万像素的图像。同时对于不仅仅图像的分辨率,图像的head个数也会带来很大的显存消耗。
基于上述局限,本文提出了termed lambda layers即Lambada Layer,它为捕获模型输入和上下文信息的结构化集合之间的长期交互提供了一个通用框架。它通过将可用上下文转换为线性函数(称为lambda)并将这些线性函数分别应用于每个输入来捕获此类交互。这里使用Lambda层作为注意力机制的替代品。注意力机制在输入和上下文元素之间定义了一个相似核,而Lambda层则是将上下文信息总结为一个固定大小的线性函数,从而绕过了需要大量记忆的注意映射。对比如下:
Lambda层用途广泛,可以实现为在全局,局部或masked contexts中对内容和基于位置的交互进行建模。由于它们避开了对昂贵的注意力图的需求,因此可以将lambda层常规地应用于成千上万个长度的输入,从而使它们可以应用于长序列或高分辨率图像。由此产生的神经网络体系结构LambdaNetworks具有高效的计算能力,并且可以通过直接调用现代神经网络库中可用的操作来轻松实现。
2、Modeling Long-Range InterActions
2.1、queries、contexts和interactions的定义
2.2、引入Keys来捕获Long-range interactions
2.3、Attentional interactions
收缩查询深度首先在查询和上下文元素之间创建一个相似性内核(注意映射),称为Attention操作。可以将此机制看作是对激发query,key,value-terminology的可区分内存的寻址。随着上下文位置m的数量不断增加,而输入和输出维数k和v保持不变,考虑到层输出是一个维数相对较小的向量v<<m,可以看出Attention Map存在计算的浪费。
2.4、Lambda interactions
3、Lambda Layers
3.1、Lambda Layer:将上下文转换为线性函数
3.2、带有结构化上下文的Lambda Layers
这里不进行详细的描述,粗略的罗列以下步骤:
3.3、使用Multi-Query Lambda减少复杂性
批量Multi-Query Lambda层使用einsum有效实现为:
这里的复杂度分析不再进行描述,更详细的内容可以看论文原文,接下来直接看其再ResNet50上的效果:
4、实验
4.1、基于ImageNet分类的实验
4.2、基于目标检测和实例分割的实验
由于笔者能力有限,其中有理解错误的地方还请担待,如果想了解更多详细信息,可以参考论文原文。
参考:[1].LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION
论文下载
在CVer公众号后台回复:lambda,即可下载本论文