第九课、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架构模型