论文笔记【1】-- DeepViT: Towards Deeper Vision Transformer
CVPR 2021 DeepViT: Towards Deeper Vision Transformer
DeepViT论文? ? ??DeepViT Code
Phenomenon 现象:CNNs与ViTs的对比过程中,事实上,已知网络越深,性能越好。但是,ViTs所呈现的效果却不尽如此,堆积到32个blocks的效果还不如24blocks ? Why?
Why?原因:ViTs很依赖于self-attention,在深层结构中,self-attention无法学习有效的表征学习概念,阻碍了模型获得预期的性能增益。attention map逐渐变得相似,甚至某些层后相同!即,在深度ViT模型的顶层,特征图往往是相同的。(attention map相似度的判断:余弦相似度,余弦相似矩阵计算不同层次的attention map的跨层相似度)= attention collapse(注意力分散/崩溃)?
Method 方法:
- Higher Dimension Space : 出发点:增加维度会增加token的表达能力,那么更多信息的情况下,注意力图之间的相似度就会减少。效果:随着embedding dimension的增长,相似的block的数量在下降,同时模型的Acc在上升。但是,增加embedding dimension也会显著增加计算成本,带来的性能改进往往会减少,且需要更大的数据量来训练,增加了过拟合的风险。
- Add temperature in self-attention:出发点:缓解过渡平滑over-smoothing现象,在过渡平滑的地方进行锐化,通过添加temperature λ的减小可以让attention map的分布变得更加的sharp,使得attention map的数值拉开,在实际实现的时候作者使得 λ的值随着层数的加深而逐渐衰减,或者干脆把 λ设置为可学习的参数。效果:只起到非常小的作用。
- Drop attention:出发点:因为对于不同的block来说,会随机drop掉不同的值,故attention maps之间的相似性可以得到减少。效果:只起到非常小的作用。
- Re-attention:出发点:同一transformer块的不同head的attention map的相似性相当小,很明显,来自同一自我注意力层的不同head关注输入token的不同方面。利用可学习的方式交换来自不同attention head的信息,动态融合它们来重新生成各层的注意力映射图,以增加它们在不同层次上的多样性,内存消耗和性能可以忽略不计。效果:相似的block的数量在下降,同时模型的Acc在上升,ViT可以做深些啦!
Result 结果:普通的self-attention的attention map的特点是:只学习到一些局部的patch之间的relationship,而且在网络的深层时attention map很接近。Re-attention的attention map的特点是:学习到更大范围内的patch之间的relationship,而且在网络的深层时attention map有差别。整体:发现了attention collapse,并提出了一种新的Re-attention,以最小的计算量和内存开销来解决这个问题。通过Re-attention,能够在增加vit的深度时保持一个不断增加的性能。
Other 遗留:不同的head作用不一样,head作用小的给的权重就小。attention就是权重?
|