[读书笔记] Interleaved Structured Sparse Convolutional Neural Networks读书笔记

基于交错组卷积的高效深度神经网络(IGC V2)
论文地址:https://arxiv.org/pdf/1804.06202.pdf


目的

利用消除卷积核冗余的方法构建有效的卷积神经网络


介绍

卷积神经网络的改进主要包含两个部分:

  • 网络压缩:压缩预训练模型等;
  • 结构设计:更小的卷积核,稀疏核等

用多个冗余更少的核形成一个核又分为两条主线:

  • 乘以低秩矩阵以形成高秩矩阵
  • 乘以稀疏矩阵

(加粗部分为本文作者的改进方向)

本文提出的改进:IGC块中的 1*1 卷积可进一步分解


本文的结构

一个常规卷积可以表示为

y = Wx

其中
x为SC i的矢量,S为卷积核尺寸(例:3*3卷积 S=9);
y为C o大小的矢量,C o为输出通道数;

Xception,deep roots和 IGC 构成 W 的方式

W=P2W2P1W1x W = P 2 W 2 P 1 W 1 x
W 2,W 1中至少有一个是block-wise稀疏的,即如下矩阵
Wi=Wi1000Wi2000000WiGi(3) (3) W i = [ W 1 i 0 0 0 0 W 2 i 0 0 ⋮ ⋮ ⋱ ⋮ 0 0 0 W G i i ]

P1 , P2为置换矩阵

  • IGC:W2,W1都是稀疏阵。
  • Xception:1*1 conv(对应W2) + channel-wise conv(对应W1
    W2为C*C的密矩阵;W1为C*SC的稀疏阵,分为C个块,每个块1*S。
  • Deep roots: W1为稀疏矩阵;W2为密矩阵。

IGC V2构成W的方法

y=(l=L1PlWl)x y = ( ∏ l = L 1 P l W l ) x
其中P l为置换矩阵,W l为稀疏矩阵。每个分区通道数设为K l
[读书笔记] Interleaved Structured Sparse Convolutional Neural Networks读书笔记_第1张图片
互补条件:对于所有的m,
(WLl=L1mPlWl)(Wm1l=m21PlWl) ( W L ∏ l = L − 1 m P l W l ) 和 ( W m − 1 ∏ l = m − 2 1 P l W l )
对应两个组卷积。这两个组卷积是互补的,当一个组卷积处于相同分区的通道来自于另一个组卷积的不同分区,且在另一个组卷积中,这些通道来自它所有的分区。

当满足互补条件时,一个IGC V2块构建的核是dense的。

总通道数C与L个分区的每分区通道数{K1,K2,……KL}的关系:

C=i=1LKi C = ∏ i = 1 L K i

什么条件下参数最少:
1*1 conv:CKl个,spatial conv:SCl个。所以若要参数最少,应当有一个空间组卷积核若干个1*1组卷积组成。

Q=Cl=2LKl+CSK1CL(SK1l=2LKl)1L=CL(SC)1L Q = C ∑ l = 2 L K l + C S K 1 ≥ C L ( S K 1 ∏ l = 2 L K l ) 1 L = C L ( S C ) 1 L

当且仅当
SK1=K2=K3==KL S K 1 = K 2 = K 3 = ⋯ = K L
时取等号。

这里写图片描述

实际构建IGC V2块时,取L=3(由实验得出的性能最好的取值),采用3*3空间卷积和2个1*1卷积,当通道数尽可能满足上述取等条件时为较优或最优。


讨论

  • 非结构稀疏:性能可能更好,但有两个缺点:矩阵不便于储存和优化困难。
  • 互补条件:充分非必要条件。
  • 稀疏矩阵乘法和低秩矩阵乘法:低秩矩阵分解和乘法已经广泛研究,而稀疏矩阵却没有。未来研究的可能:稀疏矩阵的分解以压缩网络,低秩稀疏矩阵等。

实验

CIFAR

预处理:首先对图像做对每测4个像素的zero-padding,然后随机裁剪生成32*32图像,水平镜像一半图像,用通道平均和标准差归一化图像。
训练设定:带Nesterov动量的SGD,学习率从0.1开始,在200,300,350 epochs分别衰减10倍。weight decay:0.0001,动量:0.9,batch size:64,400 epochs。

Tiny Imagenet

预处理:首先对图像随机拓展到【64,80】的大小,然后随机裁剪生成64*64图像,随机水平镜像,用通道平均和标准差归一化图像。
训练设定:带Nesterov动量的SGD,学习率从0.1开始,在100,150,175 epochs分别衰减10倍。weight decay:0.0001,动量:0.9,batch size:64,200 epochs。


性能

这里写图片描述

你可能感兴趣的:([读书笔记] Interleaved Structured Sparse Convolutional Neural Networks读书笔记)