classical CNN models : ZF Net 模型结构详解

原创 2018年04月17日 00:49:29

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

几种CNN网络结构及其资源使用

本文主要基于stanford课程CS231n-lecture7,对几种典型CNN网络结构(LeNet、AlexNet、ZFNet、VGGNet、ResNet)及其资源使用(主要针对参数个数、中间变量)...
  • fdchao
  • fdchao
  • 2016-10-24 22:11:03
  • 5862

ZF-net

ZF -net
  • chenyanqiao2010
  • chenyanqiao2010
  • 2016-01-09 15:18:43
  • 8332

CNN经典网络模型摘要--AlexNet、ZFnet、GoogleNet、VGG、ResNet

见个人博客: https://ziyubiti.github.io/2016/11/27/cnnnet/
  • ziyubiti
  • ziyubiti
  • 2016-11-28 17:34:39
  • 6017

classical CNN models : LeNet-5 模型结构详解

LeNet - 5 相关文献: Gradient-Based Learning Applied to Document Recognition YANN LECUN, MEMBER, IEE...
  • edogawachia
  • edogawachia
  • 2018-04-16 16:13:28
  • 16

Deep learning学习笔记(2):Visualizing and Understanding Convolutional Networks(ZF-net)

reference link: http://blog.csdn.net/whiteinblue/article/details/43312059 本文是Matthew D.Zeiler 和Ro...
  • u011534057
  • u011534057
  • 2016-04-28 15:41:43
  • 4140

classical CNN models : vgg 模型结构详解

VGG 相关文献 VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION Karen Simonyan∗ &...
  • edogawachia
  • edogawachia
  • 2018-04-18 15:12:27
  • 1

classical CNN models : AlexNet 模型结构详解

AlexNet 相关文献: ImageNet Classification with Deep Convolutional Neural Networks Alex Krizhevsky Il...
  • edogawachia
  • edogawachia
  • 2018-04-16 18:54:18
  • 20

Faster R-CNN+ZF 训练模型 Matlab版本

本文转载自: http://blog.csdn.net/sinat_30071459/article/details/50546891 说明:本博文假设你已经做好了自己的数据集...
  • hx921123
  • hx921123
  • 2017-02-22 16:46:28
  • 1566

classical CNN models : ResNet 模型结构详解

ResNet 相关文献: Deep Residual Learning for Image Recognition Kaiming He Xiangyu Zhang Shaoqing Ren...
  • edogawachia
  • edogawachia
  • 2018-04-19 00:54:22
  • 5

classical CNN models : GoogLeNet 模型结构详解

GoogLeNet 相关文献: Going Deeper with Convolutions Christian Szegedy1, Wei Liu2, Yangqing Jia1, Pierr...
  • edogawachia
  • edogawachia
  • 2018-04-18 18:57:12
  • 5
收藏助手
不良信息举报
您举报文章:classical CNN models : ZF Net 模型结构详解
举报原因:
原因补充:

(最多只允许输入30个字)