几个比较有名的卷积神经网络结构,详细的请看CS231n

  • LeNet:第一个成功的卷积神经网络应用
  • AlexNet:类似LeNet,但更深更大。使用了层叠的卷积层来抓取特征(通常是一个卷积层马上一个max pooling层)
  • ZF Net:增加了中间卷积层的尺寸,让第一层的stride和filter size更小。
  • GoogLeNet:减少parameters数量,最后一层用max pooling层代替了全连接层,更重要的是Inception-v4模块的使用。
  • VGGNet:只使用3x3 卷积层和2x2 pooling层从头到尾堆叠。
  • ResNet:引入了跨层连接和batch normalization。
  • DenseNet:将跨层连接从头进行到尾。

总结一下:这些结构的发展趋势有:

  • 使用small filter size的卷积层和pooling
  • 去掉parameters过多的全连接层
  • Inception(稍后会对其中的细节进行说明)
  • 跨层连接



为什么加入不变性可以提高网络表现:

加入了先验知识,无需从零开始用数据学习,节省了训练所需数据量。 思考表现提高的原因一定要从训练所需要的数据量切入。 提出满足新的不变性特点的神经网络是计算机视觉的一个主要研究方向。


平移不变性

可以说卷积神经网络最初引入局部连接和空间共享,就是为了满足平移不变性。因为空间共享,在不同位置的同一形状就可以被等价识别,所以不需要对每个位置都进行学习。

旋转和视角不变性

个人觉得卷积神经网络克服这一不变性的主要手段还是靠大量的数据。 并没有明确加入“旋转和视角不变性”的先验特性。


Deformable Convolutional Networks

似乎是对此变性进行了进行增强。



尺寸不变性

Inception

Inception的结构,尽管也有不同的版本,但是其动机都是一样的:消除尺寸对于识别结果的影响,一次性使用多个不同filter size来抓取多个范围不同的概念,并让网络自己选择需要的特征。



跳层连接


比如说我们在判断一个人的时候,很多时候我们并不是观察它的全部,或者给你的图片本身就是残缺的。 这时我们会靠单个五官,外加这个人的着装,再加他的身形来综合判断这个人。 这样,即便图片本身是残缺的也可以很好的判断它是什么。 这和前馈神经网络的先验知识不同,它允许不同层级之间的因素进行信息交互、综合判断。




在ResNet中,前一层的输入会跳过部分卷积层,将底层信息传递到高层。在DenseNet中,底层信息会被传递到所有的后续高层。




后续

随着时间推移,各个ResNet,GoogLeNet等框架也都在原有的基础上进行了发展和改进。 但基本都是上文描述的概念的组合使用加上其他的tricks。真正重要的是这些技巧对于各种不变性的满足。