作者:Pranoy Radhakrishnan
翻译:wwl
校对:王可汗
本文约3000字,建议阅读10分钟本文讨论了Transformer模型应用在计算机视觉领域中和CNN的比较。
在认识Transformers之前,思考一下,为什么已经有了MLP、CNN、RNN,研究者还会对Transformers产生研究的兴趣。
Transformers起初是用于语言翻译。相比于循环神经网络(比如LSTM),Transformers支持模拟输入序列元素中的长依赖,并且支持并行处理序列。
Transformers利用同一个处理模块,可以支持处理不同类型的输入(包括图像、视频、文本、语音)。每个人都希望解决不同的问题都能有统一的模型,并且兼顾准确性和速度。和MLPs有通用的函数近似器一样,transfomers模型在sequence-to-sequence问题上,有通用的解决函数。
Transformers应用了注意力机制,首先我们学习注意力机制和自注意力机制。
注意力机制
注意力机制的作用是提高输入数据中关键部分的重要性,降低其余部分的重要性。就像是你理解一个图片的时候,你会聚焦在图像中有意义的相关部分。注意力机制也是这样做的。
但是为什么我们需要注意力机制?毕竟CNNs已经在图像特征提取上表现得很好了,不是吗?
对于一个CNN,输入的每个图片都是一样的操作。CNN不会对不同特征的相对位置进行编码。如果想要对这些特征组合进行编码,则需要大的卷积核。举例来说,编码鼻子和嘴巴上边的眼睛这个信息,需要大的卷积核。
在一个图片里,如果要捕捉较大范围的依赖关系的话,是需要大的感受野。提高卷积核的尺寸可以提高模型的表达能力,但这样做也会失去使用局部卷积结构获得的计算和统计效率。
自注意力机制是注意力机制的一种,和CNN结合可以帮助拟合长距离的依赖关系且不以牺牲计算效率和统计效率为代价。自注意力模块是卷积的补充,有助于在图像区域内拟合远距离、多层次的依赖关系。
你可以看到,自注意力模块替代了卷积层,现在模型中每个位置点可以和远距离的像素点有相关关系。
在最近的一项研究中,研究者执行了一系列ResNets实验,分别用注意力模块替代部分和全部的卷积层,