美文网首页
深度学习之:deep Feature Extractor[VGG

深度学习之:deep Feature Extractor[VGG

作者: 生活科技 | 来源:发表于2017-12-11 18:50 被阅读0次

    0. 背景

    Karen Simonyan等人在2014年参加Imagenet挑战赛的时候提出的深度卷积神经网络。作者通过对2013年的ILSVRC中最好的深度神经网络模型(他们最初的对应模型都是alexnet)进行研究,发现他们使用了更小的感受野,并且在第一层卷积层中使用了更小的stride,也就是这两点都有助于准确度的提升。所以本文就不去做无用功,从网络的深度去挖掘CNN模型的提升空间,并且发现当网络深度在超过16层时,有明显的提升效果,故而如果截取当前16层的网络,就被称之为VGG16。
    从感受野角度来说,两个3∗3的卷积核叠加,就等于一个5∗5的卷积核的结果。可是从参数量上,前者明显会小于后者。而且从分层角度上看,因为之间会通过非线性激活函数的转换,所以3∗3的卷积核叠加还能得到更非线性的特征提取结果为了遵循单一变量的原则,除了深度外,其他涉及到的参数基本保持一致。

    1. 模型

    图1.1 VGG不同深度时的网络结构

    如图1.1所示,图片的输入都是

    如图1.1所示,图片的输入都是224∗224,卷积核大小都是3∗3,滑动的步长stride=1,在某些卷积层后面跟上最大池化,其中池化的大小为2∗2,且每一层卷积都是保留尺寸的卷积(即卷积之后,feature map的大小不变),且为了降维、对通道的线性变换、增加决策函数的非线性等目的,采用了《network in network》中的1∗1的卷积操作。其中FC层表示该层为全连接层。
    作者通过试验发现alexnet中的LRN(Local Response Normalisation,LRN)不但不利于准确度提升,反而还会占用内存,所以都省略了该层。

    图1.2 不同深度VGG下参数量,单位为百万

    2. 训练结果

    作者在训练的时候,开始先训练模型A,然后在训练模型B的时候,将前面几层CNN和最后的全连接层的参数用模型A的权重来初始化,以此达到用小模型去预训练大模型的目的;
    而且,作者用S表示对训练集图片做的一个缩放,用Q表示对测试集图片做的一个缩放,当然其中S和Q都不得小于224。

    简单的训练过程如下:

    • 给定S和Q值,将图片进行各方向同性缩放到S和Q;
    • 然后用crop的方法对缩放后的图片进行采样到224∗224;
    • 将crop采样得到的图片放入VGG模型中训练。


      图2.1基于单尺度测试情况下的结果
    图2.2基于多尺度测试情况下的结果

    从图2.1和图2.2中可以看出:从C模型与D模型对比,可以肯定深度的好处的确有助于准确度的提升;而从E模型与D模型的对比,发现还是E模型更好,作者认为深度有助于提升准确度,可是模型还是需要通过卷积核去抓取空间上下文信息。

    因为大家通常都是直接将基于imagenet训练好的VGG拿来用,所以基本没多少人会从0开始训练VGG网络。而且论文中也显示4块卡,也需要小心的训练2-3个礼拜。本文只着重于VGG的网络结构,如有必要,后续再补全该博文。

    参考文献:
    [] - Zeiler M D, Fergus R. Visualizing and understanding convolutional networks[C]//European conference on computer vision. Springer, Cham, 2014: 818-833.
    [] - Sermanet, P., Eigen, D., Zhang, X., Mathieu, M., Fergus, R., and LeCun, Y. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks. In Proc. ICLR, 2014[]

    相关文章

      网友评论

          本文标题:深度学习之:deep Feature Extractor[VGG

          本文链接:https://www.haomeiwen.com/subject/klkwixtx.html