URL
TL;DR
- 本文提出一种应用于视觉任务的
Transformer
Algorithm
Architecture
code
1 | import torch |
Thought
- 一个优雅的网络结构,就该像
ViT
这样,用一张动图 + 一段不长的代码完美表示。显然Swin Transformer
不够优雅…
Transformer
1 | import torch |
ViT
这样,用一张动图 + 一段不长的代码完美表示。Swin Transformer
不够优雅…Masked Autoencoders (MAE)
,通过 mask 很高比例的图像 patch,并使用非对称 encoder-decoder
结构重建整个图进行预训练
encoder
大小BERT
非常相似,BERT
在自然语言中进行自监督预训练从而使得网络参数量可以达到惊人的一千亿;MAE
也希望通过图像自监督预训练提高网络参数和网络效果mask tokens
和 positional embeddings
等自监督标记进行有效整合;Vision Transformers (ViT)
提出了一种有效的解决方法encoder-decoder
结构中的 decoder
可以非常简单(通常是一个 MLP);但视觉自监督模型重建的信息维度是像素,所以 decoder 结构在网络中扮演一个关键角色Autoencoder
是一种经典的表征学习方法,可以将输入通过 encoder
映射到表征空间,再通过 decoder
解码Denoising autoencoders (DAE)
是将输入破坏,再通过 decoder
重建出破坏前的原始输入,Masked Autoencoder
就是一种 DAE
MAE
的 encoder
部分与 ViT
的 encoder
相同,输入为 未 mask 的图像 patch
MAE
的 decoder
部分输入包含两部分:
encoder
部分对 未 mask 的图像 patch encoder 后的表征(输入 decoder 的浅蓝色方块)mask tokens
(输入 decoder 的灰色方块)decoder
的结构更浅更窄,每个 token
的计算量只有 encoder
的 10%
mean squared error(MSE)
transformer
,任务相关的 fine-tuning 即可 SOTABERT
全称:Bidirection Encoder Representation from Transformermasked language model
:预测被遮挡的词的 token(不需要重建整个句子)next sentence prediction
:预测两个句子是否是前后相连的关系(只需预测 是 或者 否)Sequence
开始标志位Sentence
结束标志位Token Embeddings
是将句子转化成词向量,英文版本 BERT 用的分词器是 WordPiece embeddings
,词表容量 30,000Segment Embeddings
用于指明句子如何分割Position Embedding
用于记录原始位置信息(与 CNN 不同,Transformer 中没有位置信息)其中:C∈RH, Ti∈RH, H means hidden size
[MASK]
token 去 maskC
映射到二分类空间的结果和二分类 label,计算交叉熵损失NSP
数据集中,无监督预训练即可达到 97% - 98% 的准确率分析了 NSP、双向网络结构等对效果的影响
CGC
(Customized Gate Control) 结构,任务之间部分共享底层网络CGC
的升级版本 - PLE
(Progressive Layered Extraction)CGC
与多层网络结构 PLE
都优于 MMOE
CGC
结构部分共享表征,部分独用表征,共享表征和独占表征的权重分配是通过门控制k
个任务的 tower
d
表示表征向量的长度E
表示表征,Sk(x)∈Rd×(mk+ms) 表示表征集合N
表示网络总层数
MMOE
的改进版,从效果来看,对于不正相关甚至互逆的任务,都可以有效解决跷跷板问题MMOE
,没有跳出 MMOE
对多任务的定义https://arxiv.org/pdf/2105.02358.pdf
Multi-Head External Attention
使用两层全连接层和两个 normalization
层替代 transformer 的 attention 层,以降低计算复杂度DoubleNorm
标准化层替代 attention
中的 softmax
层transformer
达到 SOTA
,只是提出一种关于 attention
的思考external attention
对比 self attention
multi-head external attention
对比 multi-head self attention
MLP
权重,M∈RS×d,也可以不共享,分成 Mk、Mvdouble-normalization
结构,先在第一维做 softmax
,再在第二维做 average
EANet
与其他网络结构在不同任务上的对比实验做的非常详细,建议去看原文self-attention
并不能说明 external attention
结构优于 self-attention
结构external attention
结构可带来较多增益Channel Attention
算法,与 SENet
相比,效果更好,参数量与计算量更低SENet
结构的区别:
kernel_size = k 的 1D Conv
)ECA-Net
与以下 Channel Attention Block
进行了对比,目的是:如何对 FC 稀疏可以使得模型最终效果最好
SENet
:Squeeze and Excitation NetworkSE-Var1
:SE 变种 1SE-Var2
:SE 变种 2SE-Var3
:SE 变种 3SE-GC1
:SE 通道分组 1SE-GC2
:SE 通道分组 2SE-GC3
:SE 通道分组 3ECA-NS
:ECA-Net 的动态版SENet
SE-Var
SE-Var1
:W 是一个 单位矩阵,参数个数:1SE-Var2
:W 是一个 对角矩阵,参数个数:CSE-Var3
:W 是一个 普通矩阵,参数个数:C2SE-GC
SE-GC1
和 SE-GC2
和 SE-GC3
的区别只是 G 的取值不同ECA-NS
ECA-Net
ECA-NS
中每行元素都一样的特例,参数量:KSE-Net
的简化版,但参数量与计算量都更小SE-Net
更好这个结论感觉不太 make senseBN
:垂直于 C
维度归一化LN
:垂直于 N
维度归一化IN
:垂直于 N, C
维度归一化GN
:GN={LN, g=1IN, g=c,g
表示每个 group
覆盖的 channel
数1 | import torch |
https://arxiv.org/pdf/2109.09310.pdf
空间方向就是指 H、W 方向
图中用一个极端例子演示,实际上二值 mask 不是由人手工设计的,而是神经网络自动学习得到
普通卷积计算过程:
多功能卷积计算过程(在空间方向上):
“[]” means concat,bi means bias
$ s.t.\ s = \lceil \frac{d}{2} \lceil,\ { M_i }s_{i=1}\in{0, 1}{d\times d\times c}\ $
在卷积神经网络中 C >> H、W,所以在 Channel 方向设计多功能卷积非常必要
数学表示:
$ s.t.\ \ \forall i, \hat{f}_i \in \mathbb{R}^{d\times d\times c},\ \ n = (c - \hat{c})/g+1$
极端情况:如果一个主卷积核对应的所有二值 mask 都相同,那理论上模型效果与只是用主卷积核运算表现基本相同
所以需要加入一种使得 同一个主卷积核对应的多个每个二值 mask 更倾向不同 的损失函数
损失函数数学表示:
$ \mathcal{L}_{ortho} = \frac{1}{2} \lVert \frac{1}{d2c}MTM-I\rVert_F^2$
https://arxiv.org/pdf/2110.07641.pdf
ParNet
,12层深度可以在 ImageNet
上达到 80.72%
准确率的效果Branch
可以并行计算,而纵向深度只能顺序计算RepVGG
和 SENet
的结构合并成了 RepVGG-SSE
结构ParNet
表示 parallel substructure network
SENet
结构的原因:网络深度过浅,下采样次数太少,只能通过 SE 结构获得全局信息RepVGG
结构的原因:结构重参数化白给的涨点,不要白不要feature
,最终 fusion
tradeoff
model scale
:
ResNet
)做 model scale
的方法:
H、W
:减少下采样次数C
:增加卷积核数量block
ParNet
做 model scale
的方法:
H、W
:减少下采样次数C
:增加卷积核数量Stream
:增加横向 Branch
数量SSE
是指 Skip-Squeeze-and-Excitation
:为降低网络层数,将 SE 结构中 GAP 后的 feature 做一层 Conv 而不是两层 MLPSSE
结构之外,没有跳边连接这个图有点不公平,因为横坐标表示层数而不是参数量
ResNet
对比https://arxiv.org/pdf/2103.16788.pdf
eval
模式)已有的表征器;为新的增量数据训练一个表征器;两个表征器结果 concat
作为新的表征结果concat
即为新的表征结果 uChannel-level Masks
Sparsity Loss