本篇博客介绍在AAAI-2020发表的关于人工设计的一种高效图像分类结构:
论文名称:Gated Convolutional Networks with Hybrid Connectivity for Image Classification
论文地址 : https://arxiv.org/pdf/1908.09699.pdf
代码实现:https://github.com/winycg/HCGNet
ResNet引入了residual connectivity来实现input和output的相加在每一个micro-block.DenseNet具有dense connectivity,通过改变skip连接由additive改为concatenation。两种feature 聚合连通性都可以促进feature reuse,并且减轻训练问题。下面根据参数共享,特征学习和整体效率来进行分析:
(1)参数共享
(2)特征学习
residual connectivity中的特征addition模式以没有增加feature map规模的方式促进了高效的特征重用,因此减少了参数冗余性。但是一个潜在的事实是太多的addition特征聚合会造成特征表示的坍塌和组织信息流动,因此一些早期的informative特征可能会难免被丢失。此外,参数共享机制可能会损害探索新特征的能力。
dense connectivity:后来提出的DenseNet开发了全局的dense connectivity,可以将早期的feature maps传送到后续的模块,因此保护了先前的所有信息并且促进了现有feature 的开发。此外,不同的模块对相同的特征进行共同学习,促进了有效的特征探索。
(3)整体效率
在CIFAR-10数据集,DenseNet-100利用0.8M的参数量超过了10.2M的ResNet-1001。明显的参数差距在于DenseNet-100比ResNet-1001深度更浅,由于DenseNet-100更有效的特征探索和利用模式,ResNet主要依靠增加的深度来提升特征表示能力。实验上,DenseNet每层卷积可以具有非常少的filter数量由于共同学习机制。但是一个潜在的缺点是dense connectivity对于相同特征进行重复提取造成冗余性。residual connectivity具有相对低的冗余性,由于参数共享机制。
为了结合residual connectivity和dense connectivity的优势同时避免两者的缺点,作者创建了Hybrid connectivity,采用了全局的dense connectivity和局部的residual connectivity进行嵌套的结合,即模块内部采用residual连接,模块外部采用dense connectivity,如下图1所示。
作者主要的动机(motivation)
在于减少dense connectivity的冗余性。随着网络深度的线性增加,skip连接的数量和需求的参数量以 O ( n 2 ) O(n^{2}) O(n2)的速率进行增长,其中 n n n代表在dense connectivity下堆叠的模块数量。同时,早期冗余的特征具有低贡献但是还是平方级地传到后面的模块。所以一个简单的方法是减少冗余性的方法是直接减少模块的数量,但是这样会降低特征的表示能力。因此作者在局部的模块中嵌入残差连通性来协助特征学习,构建了新的SMG模块。通过实验表明,在dense connectivity下SMG模块比经典的bottleneck模块堆叠的数量要小很多,但是却没有牺牲性能。
具体的连通性细节
hybrid connectivity模式存在于hybrid block中,类似于DenseNet的dense connectivity发生在dense block中。hybrid block包含了 n ( n ≥ 2 ) n(n\geq 2) n(n≥2)个模块,在这里,模块被命名为SMG模块。匹配growth rate在DenseNet的概念,每一个模块产生 k k k个channel的feature map。SMG模块包含2个连续的cell,称为cell 1和cell 2。全局地,每一个模块的输入时先前所有模块的输出的concatenation。局部地,residual connectivity提供了一个shortcut来让cell 1的输出绕过cell 2然后与cell 2产生的新特征进行相加来产生输出。
为了配合hybrid connectivity,作者设计了SMG模块,包含了Squeeze cell (cell 1),Multi-scale excitation cell (cell 2)和Gated mechanisms。除了特殊的说明,作者采用pre-activation的卷积,主要包含3个连续的操作:batch normalization (BN)-rectified linear unit (ReLU)-Conv。
这个cell坐落在SMG模块的初始位置,负责压缩进入的feature map来降低后续处理的复杂度。 1 × 1 1\times 1 1×1的卷积改变feature map的channel数量,从输入channel数 C ~ \tilde{C} C~变到 ⌊ α ⋅ C ⌋ \left \lfloor \alpha\cdot C \right \rfloor ⌊α⋅C⌋,其中 α > 0 \alpha>0 α>0是宽度的乘子,在这里 C ~ > ⌊ α ⋅ C ⌋ \tilde{C}>\left \lfloor \alpha\cdot C \right \rfloor C~>⌊α⋅C⌋, C C C代表squeeze cell的最终输出channel数量。然后, 3 × 3 3\times 3 3×3组卷积(GConv,组数 g g g)继续压缩feature map将channel数由 ⌊ α ⋅ C ⌋ \left \lfloor \alpha\cdot C \right \rfloor ⌊α⋅C⌋降低为 C C C, C C C需要被组数 g g g整除。此外,对于 3 × 3 3\times 3 3×3组卷积如果stride S = 2 S=2 S=2可以对feature map进行降采样。
压缩后的feature map进入来进行多尺度的激活通过多分支的卷积,不同分支的卷积具有不同kernel sizes。为了进一步提升效率,作者采用 3 × 3 3\times 3 3×3和 5 × 5 5\times 5 5×5深度卷积(depthwise convolution,DWConv)。此外, 3 × 3 3\times 3 3×3的dilation卷积(dilation size=2)来近似 5 × 5 5\times 5 5×5卷积来提升效率。这个cell的输出是2个分支产生的feature maps。
为了捕捉长期的依赖,作者利用更新门来从多尺度的信息中建模全局上下文特征,上图展示了整体的细节,包含3个阶段:spatial注意力,pooling,channel注意力。
spatial注意力,pooling:作者采用全局上下文建模来计算spatial-wise权重对于每个像素位置。对于给定的特征图 X 3 × 3 ∈ R H × W × C \mathbf{X}^{3\times 3}\in \mathbb{R}^{H\times W\times C} X3×3∈RH×W×C,一个 1 × 1 1\times1 1×1 卷积核沿着channel维度进行收缩得到spatial注意力特征图 S ~ 3 × 3 ∈ R H × W × 1 \tilde{\mathbf{S}}^{3\times 3}\in \mathbb{R}^{H\times W\times 1} S~3×3∈RH×W×1, 然后一个softmax函数归一化它得到最终的spatial注意力特征图 S 3 × 3 ∈ R H × W × 1 \mathbf{S}^{3\times 3}\in \mathbb{R}^{H\times W\times 1} S3×3∈RH×W×1, 每一个元素为:
S i , j , 1 3 × 3 = e S ~ i , j , 1 3 × 3 ∑ x = 1 H ∑ y = 1 W e S ~ x , y , 1 3 × 3 \mathbf{S}^{3\times 3}_{i,j,1}=\frac{e^{\tilde{\mathbf{S}}^{3\times 3}_{i,j,1}}}{\sum_{x=1}^{H}\sum_{y=1}^{W}e^{\tilde{\mathbf{S}}^{3\times 3}_{x,y,1}}} Si,j,13×3=∑x=1H∑y=1WeS~x,y,13×3eS~i,j,13×3
作者利用全局注意力池化通过加权地平均 S 3 × 3 \mathbf{S}^{3\times 3} S3×3来收缩全局spatial信息和生成全局上下文特征图 z 3 × 3 ∈ R 1 × 1 × C \mathbf{z}^{3\times 3}\in \mathbb{R}^{1\times 1\times C} z3×3∈R1×1×C,第 c c c个channel z 3 × 3 \mathbf{z}^{3\times 3} z3×3为:
z c 3 × 3 = ∑ x = 1 H ∑ y = 1 W X x , y , c 3 × 3 ∗ S x , y , c 3 × 3 \mathbf{z}_{c}^{3\times 3}=\sum_{x=1}^{H}\sum_{y=1}^{W} \mathbf{X}^{3\times 3}_{x,y,c}*\mathbf{S}^{3\times 3}_{x,y,c} zc3×3=x=1∑Hy=1∑WXx,y,c3×3∗Sx,y,c3×3
这里, ∗ * ∗ 代表元素相乘。基于上述的框架, z 5 × 5 ∈ R 1 × 1 × C \mathbf{z}^{5\times 5}\in \mathbb{R}^{1\times 1\times C} z5×5∈R1×1×C 可以通过输入特征图 X 5 × 5 ∈ R H × W × C \mathbf{X}^{5\times 5}\in \mathbb{R}^{H\times W\times C} X5×5∈RH×W×C获得。
channel注意力: 为了保持信息的完整性,作者连接 z 3 × 3 \mathbf{z}^{3\times 3} z3×3和 z 5 × 5 \mathbf{z}^{5\times 5} z5×5作为输入。 然后它被转换为一个隐藏表示 h ∈ R 1 × 1 × 2 ∗ C / r u \mathbf{h}\in \mathbb{R}^{1\times 1\times {2*C}/{r}^{u}} h∈R1×1×2∗C/ru, 这个 h \mathbf{h} h通常是一个稠密的特征图通过设置一个缩减因子 r u r^{u} ru 来得到更好的效率. 这可以通过一个全连接层和非线性来实现:
h = tanh ( B N ( W [ z 3 × 3 ∥ z 5 × 5 ] ) + b ) \mathbf{h}=\tanh(BN(\mathbf{W}[\mathbf{z}^{3\times 3}\parallel \mathbf{z}^{5\times 5}])+\mathbf{b}) h=tanh(BN(W[z3×3∥z5×5])+b)
其中 B N BN BN是批归一化, W ∈ R 2 ∗ C × 2 ∗ C / r u \mathbf{W}\in \mathbb{R}^{2*C \times {2*C}/{r}^{u}} W∈R2∗C×2∗C/ru 和 b ∈ R 2 ∗ C / r \mathbf{b}\in \mathbb{R}^{{2*C}/{r}} b∈R2∗C/r 表示全连接层的权重和偏置。
两个分支的全连接层作用于融合的表示 h \mathbf{h} h来生成两个中间的channel注意力图 u ~ 3 × 3 ∈ R 1 × 1 × C \tilde{\mathbf{u}}^{3\times 3}\in \mathbb{R}^{1\times 1\times C} u~3×3∈R1×1×C 和 u ~ 5 × 5 ∈ R 1 × 1 × C \tilde{\mathbf{u}}^{5\times 5}\in \mathbb{R}^{1\times 1\times C} u~5×5∈R1×1×C:
u ~ 3 × 3 = W 3 × 3 h + b 3 × 3 , u ~ 5 × 5 = W 5 × 5 h + b 3 × 3 \tilde{\mathbf{u}}^{3\times 3}=\mathbf{W}^{3 \times 3}\mathbf{h}+\mathbf{b}^{3\times 3}, \tilde{\mathbf{u}}^{5\times 5}=\mathbf{W}^{5 \times 5}\mathbf{h}+\mathbf{b}^{3\times 3} u~3×3=W3×3h+b3×3,u~5×5=W5×5h+b3×3
其中 W 3 × 3 \mathbf{W}^{3 \times 3} W3×3, W 5 × 5 ∈ R 2 ∗ C / r u × C \mathbf{W}^{5 \times 5}\in \mathbb{R}^{{2*C/r^{u}}\times {C}} W5×5∈R2∗C/ru×C and b 3 × 3 \mathbf{b}^{3 \times 3} b3×3, b 5 × 5 ∈ R C \mathbf{b}^{5 \times 5}\in \mathbb{R}^{C} b5×5∈RC 表示两个全连接层的权重和偏执。然后一个简单的softmax函数组织了归一化在 u ~ 3 × 3 \tilde{\mathbf{u}}^{3\times 3} u~3×3和 u ~ 5 × 5 \tilde{\mathbf{u}}^{5\times 5} u~5×5 之间来产生两个最终的channel注意力图 u 3 × 3 ∈ R 1 × 1 × C \mathbf{u}^{3\times 3}\in \mathbb{R}^{1\times 1\times C} u3×3∈R1×1×C和 u 5 × 5 ∈ R 1 × 1 × C \mathbf{u}^{5\times 5}\in \mathbb{R}^{1\times 1\times C} u5×5∈R1×1×C:
u 3 × 3 = e u ~ 3 × 3 e u ~ 3 × 3 + e u ~ 5 × 5 , u 5 × 5 = e u ~ 5 × 5 e u ~ 3 × 3 + e u ~ 5 × 5 \mathbf{u}^{3\times 3}=\frac{e^{\tilde{\mathbf{u}}^{3\times 3}}}{e^{\tilde{\mathbf{u}}^{3\times 3}}+e^{\tilde{\mathbf{u}}^{5\times 5}}},\mathbf{u}^{5\times 5}=\frac{e^{\tilde{\mathbf{u}}^{5\times 5}}}{e^{\tilde{\mathbf{u}}^{3\times 3}}+e^{\tilde{\mathbf{u}}^{5\times 5}}} u3×3=eu~3×3+eu~5×5eu~3×3,u5×5=eu~3×3+eu~5×5eu~5×5
u 3 × 3 \mathbf{u}^{3\times 3} u3×3和 u 5 × 5 \mathbf{u}^{5\times 5} u5×5 可以被看作是聚合多尺度全局上下文特征的比例。对于 z 3 × 3 \mathbf{z}^{3\times 3} z3×3 和 z 5 × 5 \mathbf{z}^{5\times 5} z5×5加权聚合 是更新门的最终输出:
v c = u c 3 × 3 ⋅ z c 3 × 3 + u c 5 × 5 ⋅ z c 5 × 5 , u c 3 × 3 + u c 5 × 5 = 1 \mathbf{v}_{c}=\mathbf{u}_{c}^{3\times 3}\cdot \mathbf{z}_{c}^{3\times 3}+\mathbf{u}_{c}^{5\times 5}\cdot \mathbf{z}_{c}^{5\times 5}, \mathbf{u}_{c}^{3\times 3}+\mathbf{u}_{c}^{5\times 5}=1 vc=uc3×3⋅zc3×3+uc5×5⋅zc5×5,uc3×3+uc5×5=1
其中 v c \mathbf{v}_{c} vc 是第 c c c个 channel 的输出,输出是 v ∈ R 1 × 1 × C \mathbf{v}\in \mathbb{R}^{1\times 1\times C} v∈R1×1×C.
为了使用channel权重衰减重用的特征图, 作者在残差连接上放置了一个遗忘门,上图展示了整体的细节,包含3个阶段:spatial注意力,pooling,channel注意力。
spatial注意力和pooling:对于给定的特征图 X ′ ∈ R H × W × C \mathbf{X}^{'}\in \mathbb{R}^{H\times W\times C} X′∈RH×W×C, 作者使用与更新门相同的全局注意力池化机制,然后一个channel描述器 z f ∈ R 1 × 1 × C \mathbf{z}^{f}\in \mathbb{R}^{1\times 1\times C} zf∈R1×1×C 可以被得到
channel注意力: 为了满足加权衰减每一个通道的需求,每一个通道的权重应该在 ( 0 , 1 ) (0,1) (0,1)之间,因此作者采用SE模块,堆叠两个连续的瓶颈形状的全连接层并且使用sigmoid函数作为结尾。不同于SE模块,作者嵌入了批标准化来缓解优化问题并且替换ReLU为 tanh \tanh tanh 函数为非线性。总之,对于输入 z f \mathbf{z}^{f} zf,一系列的转换如下所示:
f = σ ( W 2 f ( tanh ( B N ( W 1 f z f + b 1 f ) ) ) + b 2 f ) \mathbf{f}=\sigma(\mathbf{W}_{2}^{f}(\tanh (BN(\mathbf{W}_{1}^{f}\mathbf{z}^{f}+\mathbf{b}^{f}_{1})))+\mathbf{b}^{f}_{2}) f=σ(W2f(tanh(BN(W1fzf+b1f)))+b2f)
其中 σ \sigma σ是 sigmoid函数, W 1 f ∈ R C × C / r f \mathbf{W}_{1}^{f}\in \mathbb{R}^{C\times C/r^{f}} W1f∈RC×C/rf, b 1 f ∈ R C / r f \mathbf{b}_{1}^{f}\in \mathbb{R}^{C/r^{f}} b1f∈RC/rf, W 2 f ∈ R C / r f × C \mathbf{W}_{2}^{f}\in \mathbb{R}^{C/r^{f}\times C} W2f∈RC/rf×C 和 b 2 f ∈ R C \mathbf{b}_{2}^{f}\in \mathbb{R}^{C} b2f∈RC. r f r^{f} rf 是瓶颈因子, f ∈ R 1 × 1 × C \mathbf{f}\in \mathbb{R}^{1\times 1\times C} f∈R1×1×C是最终的channel注意力图。
对于给定进入SMG模块的特征图,压缩单元首先凝聚它为一个稠密的特征图,表示为 X ′ \mathbf{X}^{'} X′。然后 X ′ \mathbf{X}^{'} X′ 进入多尺度激活单元并且生成两个分支的输出 X 3 × 3 \mathbf{X}^{3\times 3} X3×3 和 X 5 × 5 \mathbf{X}^{5\times 5} X5×5 通过 3 × 3 3\times 3 3×3 和 5 × 5 5\times 5 5×5 DWConvs。从这以后, X ′ \mathbf{X}^{'} X′可以被看作是重用的特征图, X 3 × 3 \mathbf{X}^{3\times 3} X3×3 和 X 5 × 5 \mathbf{X}^{5\times 5} X5×5 是最新被提取的特征。一个更新门聚合 X 3 × 3 \mathbf{X}^{3\times 3} X3×3 和 X 5 × 5 \mathbf{X}^{5\times 5} X5×5来建模一个全局上下文特征图 v \mathbf{v} v, 并且进一步与衰减的 X ′ \mathbf{X}^{'} X′聚合通过每一个spatial位置的相加来建立最终的输出 O ∈ R H × W × C \mathbf{O}\in \mathbb{R}^{H\times W\times C} O∈RH×W×C。可以被看出SMG模块保留了新特征的数量级不变同时衰减重用特诊,因此能促进有效的特征探索和保持特征重利用的能力。
如上图所示,一个具有3个hybrid block的HCGNet实例,每一个绿色的方框代表SMG模块。开始的位置是stem, 包含一系列的函数来处理初始的输入图像。然后多个hybrid block堆叠起来,不同的hybrid block对应不同的spatial阶段。在两个相邻的hybrid block之间, 作者采用转换层(transition layer)来执行降采样和连通性截断。在最后的hybrid block后是一个全局平均池化和softmax函数来计算类别概率。
hybrid 块和transition layer 都采用SMG模块但是使用不同的超参数设置。我们仅仅堆叠一个SMG模块来建立transition layer,一个压缩因子 θ = 0.5 \theta=0.5 θ=0.5被用来减少channel数量,即 C = θ C ~ C=\theta \tilde{C} C=θC~。对于每个SMG模块,作者在hybrid 块中设置 g = 4 g=4 g=4, α = 4 \alpha=4 α=4 和 r u = r f = 2 r^{u}=r^{f}=2 ru=rf=2,同时在transition layers中设置 g = 1 g=1 g=1, α = 1.5 \alpha=1.5 α=1.5, S = 2 S=2 S=2 和 r u = r f = 4 r^{u}=r^{f}=4 ru=rf=4。注意作者应用标准的卷积在transition layers来获得最佳的特征提取能力,应用组卷积在hybrid block中来更好的权衡效率和表现。与hybrid block相比,作者设置更小的乘子 α \alpha α和更大的缩减因子 r u r^{u} ru 和 r f r^{f} rf 来提高效率,由于在transition layers的特征图具有更多的channel数量 。
具体的,作者构建多个网络作用在CIFAR和ImageNet图像分类任务。对于CIFAR,作者采用 3 × 3 3\times 3 3×3 标准卷积并且stride=1作为stem,输出的channel数量是第一个hybrid block growth rate的两部。并且作者建立了3个不同规格的网络: HCGNet-(8,8,8)-( k k k=12,24,36)(A1), HCGNet-(8,8,8)-( k k k=24,36,64)(A2) and HCGNet-(12,12,12)-( k k k=36,48,80)(A3)。格式上,第一个 m m m-元祖表明有 m m m hybrid 块,其中每一个数字代表在对应hybrid 块中的SMG模块的数量。第二个 m m m-元祖代表 m m m hybrid blocks的 m m m个growth rates。对于ImageNet,stem包含3个连续的 3 × 3 3\times 3 3×3 Conv-BN-ReLU, (stride 2 对于最后的层),输出channel数量为 32, 32, 64 , 然后是一个 3 × 3 3\times3 3×3的最大池化层(stride=2)。 作者构建了两个网络: HCGNet-(3,6,12,8)-( k k k=32,48,64,96)(B,表中所示) 和HCGNet-(6,12,18,14)-( k k k=48,56,72,112)(C ) .
上表展示了HCGNet与其他SOTA的网络在CIFAR-10和CIFAR-100上的对比,第一部分代表人工设计的网络,第二部分代表自动搜索的网络。
DenseNet-190每一个dense块具有31个模块,HCGNet-A2每一个hybrid block仅有8个模块,因此减少了93%的冗余性但是具有显著的准确率增益。此外,HCGNet-A2显著地超过了其他稀疏化的变体,例如LogDenseNet,SparseNet和CondenseNet,表明了作者对于DenseNet的优化比稀疏化方法更加有效。HCGNet-A2使用 16 × 16\times 16× 更少的参数超过了MixNet-190,它代表了ResNet和DenseNet最泛化的形式。HCGNet-A2使用 8 × 8\times 8× 更少的参数但是胜过了AOGNet,它是SOTA人工设计的网络通过分层和组合式的特征聚合。因此,作者提出的嵌套聚合是最佳的方法相比于其他ResNet和DenseNet的结合体和变体。
HCGNet比自动搜索的网络更加有效率。在小规模的设置下,HCGNet-A2分别获得了 1% 和 3% 的CIFAR-10和CIFAR-100错误率减少相对于其他的搜索获得的网络。此外,HCGNet-A1获得了优越的表现伴随着前所未有的效率。在大规模的设置下,HCGNet-A3完成了最佳的效果伴随着最小的复杂度。有点惊讶的是,HCGNet-A3超过了最有竞争力的NASNet-A仅仅需要其22%的参数量。
HCGNets凭借更少或相近的复杂度在流行的网络中获得了最佳的表现,包括Top-1和Top-5错误率。DenseNet-169堆叠了4个dense块,分别有6.12.32.32个模块,HCGNet-B利用更浅层的设计,分别有3,6,12,8个模块对于4个hybrid block,因此减少了88%的冗余性但是获得了2.3%的绝对增益。此外,HCGNets产生了显著更好的结果相对于DenseNet,MixNet以及DPN家族在相似复杂度的条件下。使用显著的 4.6 × 4.6\times 4.6× 更少的FLOPs,HCGNet-B可以超过SparseNet-201,它是SOTA DenseNet变体。HCGNet家族获得了更好的表现相对于ResNet,ResNeXt以及WideResNet家族以及它们的attention变体,它们代表了实践中广泛使用的模型。卓越地,HCGNets超过了先前的SOTA AOGNet在不同的模型规格下,进一步展示HCGNet设计的优越性。
上图对比了ImageNet预训练模型的可解释性,通过network dissection的方法。可解释性是通过比较最后一个卷积层的独特的检测器的数量来量化的。HCGNet-B获得了最高的分数,因此表明混合连通性设计和SMG模块不仅能够获得最佳的表现,还能够产生最佳的隐层表示。
上图展示了通过FGSM攻击得到的对抗鲁棒性比较。作者攻击网络通过不同的扰动系数 ϵ \epsilon ϵ 来测试模型的对抗鲁棒性。图中可以看出HCGNet-B具有最优越的鲁棒性相对于其他的模型,尤其是扰动很高的时候。
上图展示了在Mask-RCNN上HCGNet-B作为backbone的目标检测和实例分割的性能对比。在这里,模型都是使用的ImageNet预训练后的。结果展示了HCGNet-B可以学习到更好的特征相对于SOTA backbone ResNet和AOGNet。