ZFNet

目录

简介

网络架构

研究方法

     思路​编辑

        Unpooling的过程

可视化分析过程

反卷积的可视化

AlexNet与ZFNet的filter比较

图像遮挡的识别

关于类识别相关性的分析

ZFNet的性能


 ZFNet_第1张图片

 

简介

  • 理论来源:Matthew D. Zeiler和Rob Fergus的Visualizing and Understanding Convolutional Networks论文,主要介绍CNN的每一层的特征学习,并通过可视化进行调整网络,提高精度。此外本篇文章的title--ZFNet由作者首字母Z,F组成。
  • ZFNet是2013年ImageNet图像分类竞赛冠军
  • ZFNet的网络结构:在AlexNet的基础上进行了修改,将第一层的卷积核变成了7x7,调整步长为2,并在之后的卷积层使用了更大的卷积核以获取更多的信息

网络架构

ZFNet_第2张图片

         如图ZFNet的网络架构在AlexNet的基础上进行适当了修改,第一层卷积核大小为7×7,步长为2,并在增大了后续卷积核的大小。值得一提的是,该文章的亮点在于对卷积核进行可视化的方法。

研究方法

     思路ZFNet_第3张图片

         正常CNN运行时,理应是输入通过卷积核计算出Feature Maps,之后Feature Maps通过ReLU激活函数,再通过Max Pooling,最终得到输出。通过这样的思路,从而提出本文章可视化的研究方法--寻找使对应某一层卷积核达到最大值的原始数据图片,再利用这些原始数据图片通过该层的卷积核通过反卷积得到在原始像素空间的映射图像,因此实现可视化。

        Unpooling的过程

ZFNet_第4张图片

         在Max pooling过程中,在图中以4个方格为单位选取最大值,从而得到Pooled Maps,而Unpooling则是在选取最大值的同时记录其所在位置,因此通过重建还原可以得到Unpooling对应的Feature Maps。

可视化分析过程

反卷积的可视化

         该过程通过寻找使对应某一层卷积核达到最大值的原始数据图片,再利用这些原始数据图片通过该层的卷积核通过反卷积得到在原始像素空间的映射图像,从而实现可视化。其中,彩色图片则为使对应某一层卷积核达到最大值的原始数据图片,而灰色图片则为使用这些原始数据图片通过该层的卷积核通过反卷积得到在原始像素空间的映射图像。

        通过以往知识可以知道,当layer越高时,计算机将提取更高维度的语义信息,而layer越底层时,将提取类似边缘的信息,从图中自然能看出对应的区别--例如在layer5可以看出提取出了草地背景,layer3则提取出网格,形状等边缘特征。

ZFNet_第5张图片

         从layer1-layer5的变化过程中,可以发现底层layer收敛较快,高层layer由于提取语义信息则需要通过更多的epoch才能收敛。同时在layer4可以注意到随着迭代的进行,可能会发生突变,这体现出原始数据图片的相似性。

AlexNet与ZFNet的filter比较

         利用同样的可视化方法,对AlexNet和ZFNet进行分析可以得到,在AlexNet的layer1中发现部分filter失效,其layer2可视化生成的图过大,此时可通过改变scale得到,而ZFNet中则未出现失效情况。

图像遮挡的识别

        在这项研究中,(b)是把通过一步一步移动灰色方块后的Feature Map叠加起来得到的结果,(c)则是在layer5通过上述反卷积后映射所得到的原始数据图片映射像素图像,(d)则表示在(b)中进一步对识别鲁棒性的分析,以第一张图片为例可以发现,当灰色方块遮挡脸时,将对识别结果产生较大影响,(e)为在(d)的基础上分析了灰色方块移动过程中,呈现出由于其遮挡作用导致可能识别的部分结果集合图。 

关于类识别相关性的分析

ZFNet_第6张图片

        除了以上分析之外,文章提及相关性的检测,思路是通过对某一类进行利用灰色方块实现同样的遮挡效果,然后分析部分layer中修改前与修改后的差值,自然如果差值在可接受的范围之内,则能够认为对某一修改方式不敏感,反之,将会影响最终的识别效果。

ZFNet_第7张图片

        可见,除使用灰色方块随机遮挡以外,其余操作对layer5、layer7的结果并未产生较大改变,这也说明了对于类识别而言,其对特定的遮挡效果不敏感。

ZFNet的性能

ZFNet_第8张图片

        在Caltech 256数据集上分析,可以发现如果ZFNet在ImageNet上微调之后再在Caltech 256数据集训练一个类似softmax的函数,可以得到远超当前SOTA的效果,反之,则微乎其微。

ZFNet_第9张图片

        由上图可以发现当ZFNet只需经历6个Training Images per-class时就已经能够取得当前模型相对不错的效果,这也就告诉我们,通过在其余类似数据集上微调的技巧,我们够训练出更大的模型,从而可以获得更加优异的性能。

ZFNet_第10张图片

         但值得注意的是,如果我们在PASCAL 2012数据集上训练时可以发现,即便通过ImageNet上微调,所取得的效果并不是很理想,究其原因,是因为ImageNet的图片主要是一张图片有一个主体,而PASCAL 2012数据集则是一张图片可能存在多个主体,这也表明了虽然迁移学习是当前提高模型性能一个不错的方法,但是需要仔细考量数据集分布的相差范围是否能够接受。

 

你可能感兴趣的:(深度学习,人工智能,计算机视觉,神经网络)