CNN笔记(CS231N)——CNN架构(CNN Architectures)

CNN架构

这一讲主要介绍了一些常用的CNN架构,例如AlexNet、VGG、GoogleNet等

AlexNet

AlexNet是一个八层的卷积神经网络,它是第一个采用ReLU激励函数的神经网络

由于当时内存限制,在这个网络中,同一卷积层被分为两个部分放在两个GPU中分别计算。在1、2、4、5层只计算本GPU中的特征图,在3、6、7、8层中将两个GPU中的特征图放在一起计算

在ILSVRC中,AlexNet是第一个利用卷积神经网络胜出的方法

VGG

随着神经网络进一步发展,网络朝着越来越深的方向发展,VGG网络就是14年挑战的胜出者,它有两种架构,一种是16层,一种是19层。但是深层网络的问题就是更难收敛,因为深层网络更容易出现梯度消失以及梯度爆炸的问题

在VGG中采用了小卷积核+多层的形式来达到与大卷积核相同的效果,例如3个3×3的卷积核跟一个7×7的卷积核效果是相同的。因为第一个卷积核输出的作用域是3×3,因为步长是1,所以第二层上的3×3对应得到是第一层上的5×5,同理第三层上的3×3对应的是第一层中的7×7,也就是与一个7×7的卷积核效果相同。尽管效果相同,但是采用小卷积核有更少的参数,大大减少了计算量

我们可以从下图看出浅层卷积层用了最多的内存来存放特征图,深层网络拥有最多的参数个数

GoogleNet

GoogleNet是14年提出的网络,它拥有更深的层数以及更高的计算效率。在GoogleNet中提出了Inception模块的概念,目的是为了设计一个好的局部网络拓扑,然后将这个模块级联起来获得更好的效果

Inception模块的内部将多个卷积核以及池化核并联起来,然后将各自的输出级联起来作为最终的输出。这样的好处就是能用不同卷积核提取不同的特征,来达到更好的效果。但是问题就算是由于池化层会保留特征图的深度,因此最终模块的输出只会增加而不会减少,最后变得非常大

解决方法就是在模块中假如bottleneck层,bottleneck层是1×1的卷积层,这一层可以减小输入深度从而减小输出深度并减小计算量

一个完整的GoogleNet如下,我们可以看到再网络的中间处也增加了输出,原因就是为了解决网络层数太深,以至于在反向传播的时候靠近输出的卷积层参数比较容易调整,而靠近输入的卷积层参数不容易调整的问题(梯度消失)。加上这些浅层辅助输出以后从浅层辅助输出到靠近输入的卷积层路径就更短,梯度也就更容易传递

ResNet

ResNet是一个革命性的网络,它的层数达到了152层,赢得了当年的所有比赛。

对于一个深层神经网络,我们第一直观的理解就是由于参数众多,很可能出现过拟合的问题,但是我们在实验的时候可以看到更深的网络不仅在测试集表现不好,在训练集表现也不尽人意,这就说明了更深的网络会导致更差的效果,但是原因并不是过拟合

事实上更深的神经网络表现差是一个优化问题,也就是之前提到的:靠近输入层的卷积层参数更难调整

在ResNet提出了这样一种残差结构,使得输出是卷积层输出加上输入。这样卷积层输出实际上是一个改变量,也就是对输入的残差,这其中做的一个假设就是输出是与输入的值大小类似,因此我们只需要让网络学习输出他们的残差即可

ResNet就是这样一个个残差结构级联而成的网络,正是由于有输入到输出直连的部分,从输出到靠近输入的卷积层路径变短,梯度消失的问题得到了缓解,因此训练更容易收敛,解决了之前提到的深层网络效果差的问题

对于更深层的网络,我们也会采用bottleneck层来提高计算效率

ResNet的效果非常好,甚至超过了人类的表现

下图中左边的图表是不同网络top-1准确度的对比,右边的图标是不同网络操作次数、内存使用以及准确率的对比

其他网络

除了以上提到的几种常用网络,还有很多其他的网络可能对我们的研究有启发效果,第一个是NiN,它将多个卷积+全连接的结构级联在一起来构建网络中的网络

第二个是在ResNet上改进的网络,它主要对残差结构进行了优化

Wide ResNet也是在ResNet上改进的网络,作者认为深度并不是提高网络表现的最主要因素,而是网络层的宽度,因此在Wide ResNet中采用更多的卷积核,更少的层数来达到与ResNet相同的效果,这样的好处是能够通过并行化来提高计算效率

ResNeXt将GoogleNet与ResNet结合在了一起使用

Stochastic Depth网络在训练时随机舍弃一些层,来减小路径距离,再在测试的时候使用完整的网络

FractalNet将不同深度的网络结合在一起生成最终的输出

DenseNet让每一层网络的输出都连接到之前每一层网络的输出上

SqueezeNet利用squeeze模块与expand模块大大减少了网络参数个数

下面就是这讲的一个总结

猜你喜欢

转载自blog.csdn.net/shanwenkang/article/details/87005662