zoukankan      html  css  js  c++  java
  • classical CNN models : ZF Net 模型结构详解

    ZF Net

    相关文献:

    Visualizing and Understanding Convolutional Networks

    Matthew D. Zeiler and Rob Fergus

    D. Fleet et al. (Eds.): ECCV 2014, Part I, LNCS 8689, pp. 818–833, 2014.

    ZF Net是用作者的名字命名的。这篇文章的模型是在alexnet上的改进,也是2013年的ILSVRC的冠军。实际上在网络结构上似乎没有特别大的变动,因此也没有vgg,googlenet,ResNet等出名。但是这篇文章的一个很大的贡献在于它提出了两个新的问题:为何CNN如此有效,以及怎样改进才可以提高 why they perform so well, or how they might be improved。也就是CNN的原理问题。实际上,至今为止,CNN在很大程度上仍然是一个黑箱,对某些参数和结构的微调带来的变化仍然是不可预知的。Without clear understanding of how and why they work, the development of better models is reduced to trial-and-error. 这篇文章可以看做是CNN可视化或者CNN可解释性的开山之作,对应于那两个问题,作者给出了一个Deconvnet用来做可视化的方法,从而展示了CNN究竟看到了什么特征。

    因此这里重点整理一下Deconvnet可视化的内容,对于ZF Net的分类网络的结构和改进略作说明。

    网络结构


    这里写图片描述

    总体来说,和alexnet很相近。区别在于,一方面,把alexnet中的sparse connection全部变成了dense的,sparse connection指的是alexnet中为了分给两个GPU,从而两块GPU上的网络层除了在一个卷积层以外,其他卷积层都分别计算,所以是稀疏的连接。另一方面,把输入的kernel由11变成了7,并且stride也减小了,为了更好的保留信息。

    CNN的可视化(multi-layered Deconvolutional Network,Deconvnet)

    可视化的方法如下:

    首先,给一张图片学习特征,然后为了检验特定的convnet activation,我们把该层其他的所有的activation都置零,然后把这些feature maps作为输入,送入attached Deconvnet中去,然后我们依次执行:

    • unpooling (去池化)
    • rectify(整流(对应于relu))
    • filter(滤波(对应于卷积层的操作))

    从而重建出可以使得选中的层激活的下面的层的活动情况。上述的操作一直重复,知道达到input pixel space,即输入像素空间。


    这里写图片描述

    下面对unpooling,rectify和filter依次说明:

    Unpooling

    由于池化操作max pooling是不可逆的,因此我们用近似的方法来代替它。首先记录下maxima的位置,记做switch variable,然后把现在的池化后的每个像素点按照switch放回到原来的位置,而剩下的位置也就是非最大值的位置,直接置零。由于池化一般是接在activation之后的,因此relu过后应该都是非负数,所以置零也是合理的。但是会有信息的丢失。

    Rectification

    如果正向是ReLU的话,那么反向仍然用ReLU作为激活函数。从而得到valid feature reconstruction

    Filtering

    由于通过卷积得到了输出,因此由输出在倒退回去的话,当然也是approximately,可以用同样的filter的转置来操作(根据作者的说法似乎RBM等autoencoder自编码的模型也这么干)。对rectify之后的结果用transpose矩阵卷积就可以得到最终的结果。

    (此处的一些问题似乎可以参考同一作者的另一篇文章Adaptive Deconvolutional Networks for Mid and High Level Feature Learning,在文中也有引用)

    实验结果:


    这里写图片描述

    遮挡实验,用来说明神经网络是知道一张图片中那些东西影响了它的判断。


    这里写图片描述

    2018年04月17日00:46:49

    【ps:对于deconvolution相关的还需要进一步调研,此处重点在于整理ImageNet中CNN模型的发展,故暂略】

  • 相关阅读:
    区间DP中的环形DP
    hdu 5251 包围点集最小矩形 ***
    hdu 4858 水题
    hdu 3530 单调队列 **
    hdu 3338 最大流 ****
    hdu 2732 最大流 **
    hdu 5233 离散化 **
    hdu 3555 数位dp *
    zoj 3469 区间dp **
    2015 安徽程序设计省赛总结
  • 原文地址:https://www.cnblogs.com/morikokyuro/p/13256744.html
Copyright © 2011-2022 走看看