深层卷积网络
一、总述
计算机视觉研究中的大量研究集中在如何把这些基本构件组合起来,形成有效的卷积神经网络。
而找到感觉的方法之一就是多看一些案列,通过研究别人的来构建自己的。
已有的一些例如识别猫、识别人脸等比较好的框架,在我们需要用到其中的某部分时我们可以借鉴来解决自己的问题。
下面主要是一些计算机视觉的经典网络,包括:LeNet-5、AlexNet、VGGNet等。
然后还有残差网络(ResNet),主要是对于比较深层的网络提出了一些好的解决办法(隐藏层变多导致网络准确度达到饱和然后急剧退化)。最后就是Inception网络。
二、经典网络
2.1 LeNet-5
这是一个主要用于手写字体识别的经典的卷积神经网络。
2.1.1 网络结构
首先是一个卷积层,输入一个32×32×1的图片,然后使用为5×5×6的过滤器(卷积核)进行卷积操作,步长为1,处理后得到一个28×28×6的输出。
接着为池化层,采用平均池化(以前都是平均池化,现在多为最大池化)。过滤器大小设置为2×2×6,步长为2,得到一个14×14×6的输出。
接下来为卷积层,采用5×5×16的过滤器,步长为1,得到一个10×10×16的输出。(当时并未提出padding,因此图像会缩小)。
接着又一个池化层,输出5×5×16的输出。
然后是全连接层,有5×5×16=400个节点,每个节点有120个神经元。
最后一步为利用84个特征来得到最后的输出。本网络采用的是RBF函数,即:
而现在主要是使用softmax函数。
2.1.2 网络特点
该网络大约有6万个参数。
随着网络的加深,图像越来越小,而信道数越来越多。
当时计算力不足,所以过滤器的信道数等于上一层的信道数,这样可以简化计算,现在不需要强制这样了。
LeNet-5在池化后进行了非线性激活函数处理,使用的是sigmoid函数,现在多为ReLU函数。
Tip:读这篇论文精读第二部分,泛读第三部分,其他部分不需要仔细看,提到的变形并未在今天被广泛使用。
2.2 AlexNet
2.2.1 网络结构
原文输入图片大小是224×224,实际上227×227更好。
首先是卷积层,使用11×11×16的过滤器,步长设置为4,卷积后得到55×55×96的输出;
接着是池化层,采用最大池化,过滤器设置为3×3×96,步长为2,得到一个27×27×96的输出;
接着是卷积层,采用5×5×256的过滤器,步长为2,padding=same(填充后使得处理后的图像大小与输入相同),处理得到一个27×27×256的输出;
接着是池化层,最大池化,过滤器设置为3×3×256,步长为2,padding=same,得到一个13×13×256的输出;
接着进行两次与前面相同的卷积,最后再进行一次最大池化,最后输出为6×6×256
最后展开,构建全连接层,使用softmax输出结果(1000个种类)
2.2.2 网络特点
网络大约有6000万个参数。
与LeNet有很多相似之处,但是它更大,参数更多,比它更优异,主要有以下原因:
(1) 使用非线性激