比较杂乱的Transformer与CNN异同点的比较
反正做都做了,还是发出来的好。虽然我也查了不少资料,但不保证都正确,如果是正经想搞清楚这个问题的看看就好了。里面也包含一些GNN的内容,算是多一个视角吧
下面讨论的一些点很多是基于卷积机制和attention机制的比较,也有关于整体架构的比较。说的都是一般情况。
相同点:
1.都有参数共享。在MLP中,是没有参数共享的,每两个神经元之间都只有一个参数。CNN通过卷积核实现参数共享;tf通过KQV实现参数共享。通过参数共享,它们理论上可以对任意长度的输入进行处理
2.都是基于相似性。CNN假设一个像素值和周围像素值的关系更密切,attention也是为最相似的元素给予更高的权重。(相应不同点见2)
3.都利用了上下文关系。CNN通过卷积核这个滑动窗口来做上下文关系,tf通过attention机制来做(相应不同点见3)
4.都有一定的计算并行性。
5.两者都具有一定的可解释性。CNN的卷积核可以看做是一个过滤器,不同的卷积核可以分别提取边缘、纹理等;attention机制可以解释每个元素对其他元素的关注程度
6.attention可以认为也是一种pooling(相应不同点见11)
不同点:
1.卷积关注局部,attention关注全局,这可能与两者适合的领域有关,卷积一开始就是参照感受野设计的(并且对于归纳偏置更友好),attention是为了解决RNN中远程依赖等问题设计的,后来tf才在CV中运用。
2.虽然同样是基于相似性,但是对相似性的看法是不一样的,卷积认为一个像素值主要和周围像素值有关(也可以认为是局部的网络结构);attention认为当前元素和其他所有元素都有关系;GNN认为数据之间的关系是存在网络结构的(而tf可以看做全连接网络)
3.虽然都利用了上下文关系,但对上下文关系的建模是不一样的。GNN通过图结构捕捉节点间的上下文关系还,可以通过迭代信息传播来捕捉节点之间的上下文关系(这导致一些图神经网络,例如GCN不适合做的太深)。CNN通过局部感受野和参数共享来建模局部上下文关系。Transformer使用自注意力机制来捕捉序列中的全局上下文关系。
4.CNN的计算复杂度一般更低
5.CNN可以做到每层对输入进行压缩,而tf做起来就没那么方便(有些方法,例如Transkimmer[1]可以做到类似的),往往是经过几层之后再进行聚合
6.两者可解释性的方式是不一样的。通过卷积核/attention
7.tf分为Encoder、Decoder、Encoder-Decoder架构,而CNN一般都是Encoder-Decoder架构且卷积部分通常只作为Encoder(这就有CNN-RNN[2]、CNN-LSTM[3]之类的Encoder-Decoder架构),单独作为Decoder的CNN研究很少(例如生成代码的CNN Decoder[4])
8.在一些异构图或者需要我们不给予相似性或者是相反的相似性的场合下,tf容易修改,CNN不容易修改(与卷积核相反的结构就很难设计)
9.实践上讲,tf一般有更好的泛化性
10.CNN有平移不变性(包括scale不变性和distortion不变性,即尺度变化和一定的扭曲变形),而tf没(也有说位置嵌入具有平移不变性的,甚至还有人根据这一点设计了一种新的attention机制[8]。但平移不变形一般认为是CNN的一个优势)
11.虽然attention可以认为也是一种pooling,但是和传统池化方法不一样,是动态的分配权重的,并且可以保留更多的信息。也有引入attention pooling[7]的。
12.CNN有更强的分层架构(不少论文[5][9]都提到了这个观点,[9]还试图结合起来)。CNN的层次结构是通过卷积和池化操作来实现的,这些操作能够捕捉到图像中的局部特征并逐渐抽象出更高层次的特征。而tf只关注全局特征。
13.CNN很多参数是静态的(推理过程中),tf每个参数可以是动态的[6]
[1] Guan Y, Li Z, Leng J, et al. Transkimmer: Transformer learns to layer-wise skim[J]. arXiv preprint arXiv:2205.07324, 2022.
[2] Wang J, Yang Y, Mao J, et al. Cnn-rnn: A unified framework for multi-label image classification[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 2285-2294.
[3] Wang J, Yu L C, Lai K R, et al. Dimensional sentiment analysis using a regional CNN-LSTM model[C]//Proceedings of the 54th annual meeting of the association for computational linguistics (volume 2: Short papers). 2016: 225-230.
[4] Sun Z, Zhu Q, Mou L, et al. A grammar-based structural cnn decoder for code generation[C]//Proceedings of the AAAI conference on artificial intelligence. 2019, 33(01): 7055-7062.
[5] Wu H, Xiao B, Codella N, et al. Cvt: Introducing convolutions to vision transformers[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 22-31.
[6] Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020.
[7] Itoh T D, Kubo T, Ikeda K. Multi-level attention pooling for graph neural networks: Unifying graph representations with multiple localities[J]. Neural Networks, 2022, 145: 356-373.
[8] Wennberg U, Henter G E. The case for translation-invariant self-attention in transformer-based language models[J]. arXiv preprint arXiv:2106.01950, 2021.
[9] Heidari M, Kazerouni A, Soltany M, et al. Hiformer: Hierarchical multi-scale representations using transformers for medical image segmentation[C]//Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2023: 6202-6212.

