CS231(2017)-第9课-CNN架构的模型

第九课、CNN架构的模型

1.LeNet-5(1998)


架构:input->conv1->pool1->conv2->pool2->fc1->fc2->output(两个卷积层、三个全连接层)

卷积层使用5*5、步长为1的滤波器;池化层使用2*2、步长为2的滤波器

2.AlexNet(2012)

(五个卷积层、三个全连接层)

计算输出向量大小和参数:

第一个卷积层应用96个11*11、步长为4的滤波器、不填充。

输出向量大小为:(227-11)/4+1=55   55*55*96;训练参数为:11*11*3*96+96=34944

第一个池化层应用3*3、步长为2的滤波器。

输出向量大小为:(55-3)/2+1=27  27*27*96;没有训练参数

3.ZFNet(2013)

基于AlexNet的改进,仅仅是将卷积层的滤波器大小和数量进行修改:

4.VGGNet(2014)

使用了更小的滤波器(卷积层:3*3、stride=1、pad=1;池化层:2*2最大池化、stride=2)、更多的层数(16层、19层)

使用更小滤波器的原因:堆叠3个3*3滤波器和1个7*7滤波器具有相同的有效的接受区域;层数越多,越非线性;每层可减少权重参数;7*7*C*C   3*3*C*C(C是通道数)

权重参数逐渐增多;像素数据逐渐减少;低阶段卷积层像素和高阶段全连接层全连接权重参数占内存最大。

5.GoogLeNet(2014)

设计一个局部最好的网络结构Inception模块,然后去堆叠这个模块。

input->conv->pool->conv->conv->pool->stackinception modules->output(移除了参数过多的FC层)

这样的Inception模块所需存储各层特征较多、权重参数较多。所以,可使用bottleneck层即1*1滤波器去减少特征图深度。


1*1卷积核的作用:

a. 控制特征图的深度,降维或者升维,降维可减少特征图的参数

b. 在特征图的通道数上进行卷积,压缩特征图,二次提取特征,使得新特征图的特征表达更佳

c. 跨通道的信息组合,增加了非线性特征

3*3卷积核的作用:

a. 3x3是最小的能够捕获像素八邻域信息的尺寸

b.  两个3x3的堆叠卷积层的有限感受野是5x5;三个3x3的堆叠卷积层的感受野是7x7,故可以通过小尺寸卷积层的堆叠替代大尺寸卷积层,并且感受野大小不变

c. 多个3x3的卷积层比一个大尺寸filter卷积层有更多的非线性(更多层的非线性函数),使得判决函数更加具有判决性

d.  多个3x3的卷积层比一个大尺寸的filter有更少的参数,假设卷积层的输入和输出的特征图大小相同为C,那么三个3x3的卷积层参数个数3x(3x3xCxC)=27C2;一个7x7的卷积层参数为49C2;所以可以把三个3x3的filter看成是一个7x7filter的分解(中间层有非线性的分解), 并且起到隐式正则化的作用。

5.ResNet(2015)

网络较深(152层),使用残差连接。

由此图可说明不使用残差时,深层神经网络训练错误率和测试错误率都高于相对的浅层神经网络,如此可说明并不是过拟合导致模型的性能下降,这种情况称为“Degradation”。(降解)

假定某段神经网络的输入是x,期望输出是H(x),即H(x)是期望的复杂潜在映射,但学习难度大;如果我们直接把输入x传到输出作为初始结果,通过下图“shortcut connections”(捷径层、越层连接),那么此时我们需要学习的目标就是F(x)=H(x)-x,于是ResNet 相当于将学习目标改变了,不再是学习一个完整的输出,而是最优解H(X)和全等映射x的差值,即残差。ResNet shortcut 没有权值,传递 x 后每个模块只学习残差F(x),且网络稳定易于学习,随着网络深度的增加,性能将逐渐变好。可以推测,当网络层数够深时,优化 Residual Function:F(x)=H(x)−x,易于优化一个复杂的非线性映射 H(x)。

 

ResNet有很多旁路的支线将输入直接连到后面的层,使得后面的层可以直接学习残差,这种结构也被称为shortcut connections。传统的卷积层或全连接层在信息传递时,或多或少会存在信息丢失、损耗等问题。ResNet 在某种程度上解决了这个问题,通过直接将输入信息绕道传到输出,保护信息的完整性,整个网络则只需要学习输入、输出差别的那一部分,简化学习目标和难度。在使用了 ResNet 的结构后,可以发现层数不断加深导致的训练集上误差增大的现象被消除了,ResNet 网络的训练误差会随着层数增大而逐渐减小,并且在测试集上的表现也会变好。

为了提高效率,使用bottleneck层,类似于GoogLeNet,即3层的残差网络。其使用了 Network In Network 和 Inception Net 中的1*1卷积,并且是在中间3*3的卷积前后都使用了1*1卷积,先降维再升维的操作,降低计算复杂度:

6.其他的CNN架构模型

 


猜你喜欢

转载自blog.csdn.net/attitude_yu/article/details/80952345
今日推荐