DeepAlchemy

Wir müssen wissen, wir werden wissen(WeChat公众号:DeepAlchemy)

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模型的发展,故暂略】

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。copyright@江户川柯壮 https://blog.csdn.net/edogawachia/article/details/79968926
个人分类: 深度学习
上一篇classical CNN models : AlexNet 模型结构详解
下一篇classical CNN models : vgg 模型结构详解
想对作者说点什么? 我来说一句

ZF-net

ZF -net

chenyanqiao2010 chenyanqiao2010

2016-01-09 15:18:43

阅读数:9614

没有更多推荐了,返回首页

关闭
关闭