Transformer VS MLP

最近一直在看transformer和MLP的论文,对于进行医学图像分割时到底用哪个暂时还没头绪,针对最近看的论文和其他博客总结,我的小结如下:

1 、两者都是如何处理输入图片的

答案:transformer和MLP对输入图片的处理方式都是一样的,具体如下:

①首先对上一级的输出或原图(假设大小均为H*W*3)进行分块(patch)处理,每个patch的大小为P*P*3,所以一共就分成了N个patch,N=HW/p^{2}

②得到N个patch后,对每个大小为p*p*3的patch进行展平(flatten)处理,展成一个长度为3p^{2}的向量。

③N个这样的向量拼接在一起就结合成一个维度是 (N,3p^{2}) 的张量,再把张量通过线性映射到D维,这样最后我们就得到了一个维度是 (N,D) 的张量,它由N  个 1 x D 的向量组成,每个向量我们把它称为1个 token。这个张量才是Transformer或MLP的输入。

现如今,大部分都是通过patch embedding实现的,Patch Embedding 其实就是一个 kernel size = patch size,stride = patch size 的卷积,然后经过一个激活函数和归一化层:

z0​=BN(σ{Convcin→h​​(X, stride =p, kernel size =p)})

2、Transformer和MLP哪个更强

答案:最近看了一篇名为A Battle of Network Structures: An Empirical Study of CNN, Transformer, and MLP的论文,下载地址:https://arXiv.org/abs/2108.13002

文中通过对比‘三大巨头’CNN,Transformer和MLP的特性,CNN一直以来都是医学图像分割的主流,Transformer和MLP近几年来在分割任务上开始引领新的趋势,例如用transformer实现的swinunet,swin transformer,transunet等,但问题在于transformer模型处理图片所需的时间更长,MLP近年来一直在分类任务上表现卓绝,在分割任务上初露矛头,最终得出结论:CNN和Transformer具有互补性,且多阶段模型总是优于单阶段模型。

 

 

你可能感兴趣的:(transformer,深度学习,人工智能)