A、流行的网络结构
1、AlexNet
这个模型是深度网络第一次在ImageNet比赛中达到的精度远远甩开传统的方法达到的精度,它是用5层卷积神经网络+3层全连接网络组成的。
改进点:
1.1AlexNet首次采用了ReLU激活函数
1.2 对于全连接层采用了Dropout技术、Local Response
Normalization(局部响应归一化,简称LRN,实际就是利用临近的数据做归一化,使得响应较大的值相对更大,提高模型泛化能力)
1.3 Overlapping Pooling(即重叠池化,Pooling的步长相对于Pooling Kernel的对应边要小)
1.4 采用了数据增强操作
1.5 分组卷积,多GPU并行
2、VGG16
改进点:
2.1 去掉LRN层,作者发现深度网络中AlexNet提出的LRN作用并不明显
2.2 采取更小的卷积核3*3,利用更小卷积核的堆叠代替AlexNet中的大的卷积核(参数量更小)。
2.3 采用了有规则的卷积-池化操作
2.4 采取了更深的网络(16/19层)
VGG存在问题:卷积层宽度大使得参数量巨大、效率低(说明SSD的基础特征提取网络需要另行设计符合SAR图像特性的)
3、GoogleNet/Inception
改进点:
3.1 发明了Inception模块,使用标准密集连接结构进行稀疏CNN计算(在深度网络中,大部分的激活值都是非必须的,比如激活值为零或是冗余部分),inception采用大小不同的卷积(5*5、3*3、1*1)在不同的尺度上捕捉细节信息。
3.2 大规模采用1*1卷积构建瓶颈层:随着网络的加深、加宽,计算量变的更大,为了避免这个问题,提出在使用卷积之前使用1*1的卷积操作输入,用于降维。
3.3 将全连接层全部替换为简单的全局平均pooling,在最后参数会变的更少。而在AlexNet中最后3层的全连接层参数差不多占总参数的90%。
注:Inception V2/V3相对于inception V1的改进:
Inception V2:
1、 用两个3x3代替5x5
2、的Inception块从2个变成了3个
3、pooling时有些是avg pooling有些是max pooling
4、在Inception块之间不再有额外的max-pool而是直接把卷积和池化的stride设置为2
5、BN层被用在每一个输入层后面(先BN再激活)
Inception V3:
1、修改部分Inception块,分解成非对称卷积(把nxn分解成1xn和nx1卷积,这里n=7。注意原始结构并没有7x7卷积)
2、修改部分Inception块,扩大卷积核数量(汇聚的分支数量)
4、ResNet/Dense Net
此前深度网络的问题:
4.1 随着网络深度的增加,带来网络精度的增加,但权值更新的信号从网络后面层传到前面层会越来越弱,甚至消失,这也就意味着前面的层被忽略掉了(不发生权值更新),这也称作是梯度消失。
4.2 网络优化变的越来越难执行,所以简单的增加层会导致训练误差增加(退化问题),残差网络通过构建残差块允许训练更深的网络结构。
改进点:
提出了残差学习模块,让深度网络也能训练收敛
DenseNet:用通道维度上concatenate代替直接与原信号相加的ResNet。
其与 ResNet 的主要区别在于,DenseNet 里模块B的输出不是像 ResNet 那样和模块A的输出相加,而是在通道维度上concatenate。这样模块A的输出可以直接传入模块B后面的层。在这个设计里,模块A直接跟模块B后面的所有层连接在了一起。这也是它被称为“稠密连接”的原因。
5、MobileNets:适用于移动设备,大大减少了网络层的参数数量,效率极高
改进点:传统卷积层的改进,如下图所示
我们首先对每一个通道进行各自的卷积操作,有多少个通道就有多少个过滤器。得到新的通道feature maps之后,这时再对这批新的通道feature maps进行标准的1×1跨通道卷积操作。这种操作被称为“DepthWise
convolution”,缩写“DW”。
比如输入图片维度是11 × 11 × 3,标准卷积为3 × 3 × 3 ×16(假设stride为2,padding为1),那么可以得到输出为6 × 6 × 16的输出结果。现在输入图片不变,如果先通过一个维度是3 × 3 × 1 × 3的深度卷积(输入是3通道,这里有3个卷积核,对应着进行计算),得到6 × 6 × 3的中间输出,然后再通过一个维度是1 × 1 × 3 ×16的1 ×1卷积,同样得到输出为6 × 6 × 16。
基于深度可分解的卷积,它可以将标准卷积分解成一个深度卷积和一个点卷积(1 × 1卷积核),这种分解可以有效减少计算量,降低模型大小。
6、ShuffleNets:Group convolutional + Channel Shuffle
这篇文章是在MobileNet的基础上主要做了一点改进:采用channel shuffle、pointwise group convolutions和depthwise separable convolution来修改原来的ResNet单元。
6.1 Group convolution:
一般卷积操作中比如输入feature map的数量是N,该卷积层的filter数量是M,那么M个filter中的每一个filter都要和N个feature map的某个区域做卷积,然后相加作为一个卷积的结果。对于group操作,设group个数为g,那么N个输入feature map就被分成g个group,M个filter就被分成g个group,然后在做卷积操作的时候,第一个group的M/g个filter中的每一个都和第一个group的N/g个输入feature
map做卷积得到结果,第二个group同理,直到最后一个group。最早的group操作起源于AlexNet(当时主要是问了解决模型在双GPU上的训练)。
问题:多个group操作叠加在一起,会产生边界效应,就是某个输出channel仅仅来自输入channel的小部分,这也学出来的特征比较局限。针对这个问题提出了channel shuffle。
6.2 channel shuffle:
在进行第二次groupconvolution前,对其输入的特征图进行一个分配,即将每个group的特征图分成几个subgroup并随机打乱。
ShuffleNet的网络模块结构:
下图(a)是ResNet中的bottleneck unit,将原来的3*3 Conv改成3*3 DWConv。图(b)Shuffle Net主要也是在这基础上做改动:首先用带group的1*1卷积代替原来的1*1卷积,同时跟一个channel shuffle操作,然后是3*3 DWConv。图(c)添加了一个Average pooling和设置了stride=2,另外原来Resnet最后是一个Add操作,也就是元素值相加,而在(c)中是采用concat的操作,也就是按channel合并,类似GoogLeNet的Inception操作。
B、关于设计适应于SAR图像特性的基础网络的思考
1、卷积不一定只在同一组中进行---Group convolution
优点:可以有效的减少网络的参数(参考AlexNet和Shuffle Net)
2、卷积核不一定越大越好
之前的观念是,卷积核尺度越大,则感受野越大,看到的图片信息越多,因此获得的特征越好。但是大的卷积核会导致计算量的暴增,不利于模型深度的增加,计算性能也会降低。在VGG(最早使用)、Inception网络中,利用2个3×3卷积核的组合比1个5×5卷积核的效果更佳,同时参数量(3×3×2+1 VS 5×5×1+1)被降低,因此采用3×3卷积核是更好的选择。
3、每层卷积层可以采用多种尺度卷积核的组合
传统的层叠式网络,基本上都是卷积层的堆叠,每层只用一个尺寸的卷积核,例如VGG结构中使用了大量的3×3卷积层。事实上,同一层feature map可以分别使用多个不同尺寸的卷积核,以获得不同尺度的特征,再把这些特征结合起来,得到的特征往往比使用单一卷积核的要好,Inception系列的网络,就使用了多个卷积核的结构,证明了该结构的有效性。
4、如何减少卷积层参数量—Bottleneck
如果仅仅引入多个尺寸的卷积核,会带来大量的额外的参数,为了解决这个问题,引入1×1的卷积核。
5、对于深层网络,引入ResNet/DenseNet残差结构
当层数加深时,网络的表现越来越差,很大程度上的原因是因为当层数加深时,梯度消散得越来越严重,以至于反向传播很难训练到浅层的网络。而skip connection可以有效的解决。
6、卷积操作必须同时考虑特征通道和区域吗?---DepthWise操作(MobileNet)
标准的卷积过程如左上图,一个2×2的卷积核在卷积时,对应图像区域中的所有通道均被同时考虑,问题在于,为什么一定要同时考虑图像区域和通道?我们为什么不能把通道和空间区域分开考虑?
Xception和上述介绍的MobileNet就是给予上述的问题进行了改进,提出了DepthWise connection(简称DW) 。一个depthwise操作比标准的卷积操作降低不少的参数量,同时相关论文中指出这个模型得到了更好的分类效果。
7、卷积网络中的特征通道不一定都是平等的—---SENet
无论是在VGG16、Inception、DenseNet或者ShuffleNet里面,我们对所有通道产生的特征都是不分权重直接结合的,那为什么要认为所有通道的特征对模型的作用就是相等的呢? ImageNet2017 冠军SENet的出现,证明了不同的特征不一定是平等的(有点类似注意力机制)。
8、让固定大小的卷积核有更大的感受野-----dilated convolution
在设计网络时候,可以考虑引入空洞卷积,如RFBNet根据人类的视觉特点设计了拥有不同尺度的空洞卷积的组合。