VGGNet网络结构:
VGGNe初步探索了卷积神经网络深度与其性能的关系,通过反复堆叠3x3的卷积层和2x2的池化层,VGGNet成功构建了16~19层得网络。
VGGNet的扩展性很强,迁移到其他图像数据上的泛化兴非常好,到目前为止,VGGNet依然经常被用来提取图像特征。
VGGNet共有5段卷积,每一段内都有2~3个卷积层,同时每段尾部都会连接一个最大池化层来缩小feature map尺寸。
A到E网络逐渐变深,但是参数量变化不大。CNNs中参数左右集中在全连接层;卷积层参数少,但是计算量大,主要是卷积层耗时。D和E就是VGGNet-16和VGGNet-19。
VGGNet网络特点和技术点:
卷积层只使用了3x3和1x1两种小卷积核,且常出现多个3x3卷积核串联堆叠的情况,这种设计非常实用:比如2个3x3卷积核串联堆叠,作用相当于1个5x5卷积核;3个3x3卷积核串联堆叠,作用相当于1个7x7卷积核。这样做有2个优点:①减少了卷积核的参数量(其实这个优点不是很突出)
②层数增加,使用的激活函数(如ReLU)次数变多,产生了更强的非线性变换(抽象能力),使得网络对特征的学习能力更强。
原论文作者对比各级网络总结出了以下介个观点:
①LRN层作用不大,却导致更多的内存消耗和计算时间。
②越深的网络效果越好。
③1x1卷积很有效,但是没有3x3卷积效果好,大一些的卷积核可以学习到更大的空间特征。
1x1卷积:
又称为网中网(Network In Network),它不考虑像素与像素之间的关系。其作用:
(1)通道数量的升维/降维,只改变feature map输出的channels,不改变它的宽度和高度,是一个性价比很高的聚合操作;实现降维和升维的操作其实就是channels间信息的线性组合变化。
(2)可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep。
NIN论文中解释1×1的卷积实现了多个feature map的结合,从而整合了不同通道间的信息。(个人认为这个作用并不是特点,因为其它大小的卷积核也可以实现)
多尺度训练Mutli-Scale:
训练采用多尺度训练,将原始图像缩放到不同尺寸S,然后再随机裁切成224 x 224的图片,并且对图片进行水平翻转和随机RGB色差调整,这样能增加很多数据量,对于防止模型过拟合有很不错的效果。
初始对原始图片进行裁剪时,原始图片的最小边不宜过小,这样的话,裁剪到224 x 224的时候,就相当于几乎覆盖了整个图片,这样对原始图片进行不同的随机裁剪得到的图片就基本上没差别,就失去了增加数据集的意义,但同时也不宜过大,这样的话,裁剪到的图片只含有目标的一小部分,也不是很好。
针对上述裁剪的问题,提出的两种解决办法:
(1) 固定最小边的尺寸为256;
(2) 随机从[256,512]的确定范围内进行抽样,这样原始图片尺寸不一,有利于训练,这个方法叫做尺度抖动(scale jittering),有利于训练集增强。
网友评论