ZFnet的创新点主要是在信号的“恢复”上面,什么样的输入会导致类似的输出,通过这个我们可以了解神经元对输入的敏感程度,比如这个神经元对图片的某一个位置很敏感,就像人的鼻子对气味敏感,于是我们也可以借此来探究这个网络各层次的功能,也能帮助我们改进网络。

论文结构

  1. input: \(3 \times 224 \times 224\), filter size: 7, filter count: 96, stride: 2, padding: 1, 我觉得是要补一层零的,否则输出是109而不是110-->ReLU --> maxpool: size: \(3 \times 3\), stride: 2, 似乎这里也要补一层零, 否则 \(\lfloor \frac{110-3}{2}+1 \rfloor=54\) --> contrast normalized;
  2. input: \(96 \times 55 \times 55\), filter size: 5, count: 256, stride: 2, padding: 0 --> ReLU --> maxpool: size: \(3 \times 3\), stride: 2, padding: 1--> contrast normlized;
  3. input: \(256 \times 13 \times 13\), filter size: 3, count: 384, stride: 1, padding: 1 --> ReLU
  4. input: \(384 \times 13 \times 13\), filter size: 3, count: 384, stride: 1, padding: 1 --> ReLU
  5. input: \(384 \times 13 \times 13\), filter size: 3, count: 256, stride: 1, padding: 1 --> ReLU --> maxpool: size: 3, stride: 2, padding: 0 --> contrast normlized?
  6. input: \(6 * 6 * 256\) -- > 4096 -- > ReLU -- > Dropout(0.5)
  7. input: 4096 -- > 4096 --> ReLU -- > Dropout(0.5)
  8. input: 4096 --> numclass ...

反卷积

网上看了很多人关于反卷积的解释,但是还是云里雾里的.

先关于步长为1的,不补零的简单情况进行分析吧, 假设:

input: \(i \times i\),

kernel_size: \(k \times k\) ,

stride: 1,

padding: 0

此时输出的大小\(o\)应当满足:

\[i = k + o - 1 \Rightarrow o = i-k+1
\]

现在,反卷积核大小依旧为\(k'=k\), 那么我们需要补零\(c'\)为多少才能使得反回去的特征大小为\(i\).

即:

\[2c' + o = k + i-1 \Rightarrow c'= k-1
\]

即我们要补零\(c'=k-1\).

如果stride 不为1呢?设为\(s\), 那么:

\[i = k + s(o-1) \Rightarrow o = \frac{i-k}{s}+1
\]

按照别的博客的说话,需要在特征之间插入零那么:

\[2c'+(s-1)(o-1) +o= k+s'(i-1)
\]

如果我们希望\(s'=1\)(至于为什么希望我不清楚):

\[c' = k-1
\]

如果还有补零\(p\):

\[i+2p = k+s(o-1)
\]

但是回去的时候我们是不希望那个啥补零的,所以:

\[2c'+(s-1)(o-1) +o= k+s'(i-1)
\]

不变,

如果\(s'=1\), 结果为:

\[c' = k-p-1
\]

最大的问题是什么,是why! 为什么要这样反卷积啊?

ZFNet: Visualizing and Understanding Convolutional Networks的更多相关文章

  1. [论文解读]CNN网络可视化——Visualizing and Understanding Convolutional Networks

    概述 虽然CNN深度卷积网络在图像识别等领域取得的效果显著,但是目前为止人们对于CNN为什么能取得如此好的效果却无法解释,也无法提出有效的网络提升策略.利用本文的反卷积可视化方法,作者发现了AlexN ...

  2. 0 - Visualizing and Understanding Convolutional Networks(阅读翻译)

    卷积神经网络的可视化理解(Visualizing and Understanding Convolutional Networks) 摘要(Abstract) 近来,大型的卷积神经网络模型在Image ...

  3. 深度学习论文翻译解析(十):Visualizing and Understanding Convolutional Networks

    论文标题:Visualizing and Understanding Convolutional Networks 标题翻译:可视化和理解卷积网络 论文作者:Matthew D. Zeiler  Ro ...

  4. Visualizing and Understanding Convolutional Networks论文复现笔记

    目录 Visualizing and Understanding Convolutional Networks 论文复现笔记 Abstract Introduction Approach Visual ...

  5. 【网络结构可视化】Visualizing and Understanding Convolutional Networks(ZF-Net) 论文解析

    目录 0. 论文地址 1. 概述 2. 可视化结构 2.1 Unpooling 2.2 Rectification: 2.3 Filtering: 3. Feature Visualization 4 ...

  6. Visualizing and Understanding Convolutional Networks

    前言:研究卷积神经网络,把阅读到的一些文献经典的部分翻译一下,写成博客,代码后续给出,不足之处还请大家指出. 本文来自:tony-tan.com Github:github.com/Tony-Tan ...

  7. 深度学习研究理解5:Visualizing and Understanding Convolutional Networks(转)

    Visualizing and understandingConvolutional Networks 本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主 ...

  8. 论文笔记:Visualizing and Understanding Convolutional Networks

    2014 ECCV 纽约大学 Matthew D. Zeiler, Rob Fergus 简单介绍(What) 提出了一种可视化的技巧,能够看到CNN中间层的特征功能和分类操作. 通过对这些可视化信息 ...

  9. Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)

    摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...

随机推荐

  1. 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)

    1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...

  2. 关于learning Spark中文版翻译

      在网上找了很久中文版,感觉都是需要支付一定金币才能下载,索性自己翻译算了.因为对Spark有一定了解,而且书籍前面写道,对Spark了解可以直接从第三章阅读,就直接从第三章开始翻译了,应该没有什么 ...

  3. Oracle—表、约束、索引、表空间、分区、序列、统计信息

    表.约束.索引.表空间.分区.序列.统计信息 一.表及其操作 1.创建表 create table 表名 ( 字段名1 字段类型 默认值 是否为空 , 字段名2 字段类型 默认值 是否为空, 字段名3 ...

  4. 转 【Android】- Android与html5交互操作

    转自:https://blog.csdn.net/baidu_35701759/article/details/70314812 1. Android提供了WebView控件可访问网页 通过webVi ...

  5. Spring Cloud Feign原理详解

    目录 1.什么是Feign? 2.Open Feign vs Spring Cloud Feign 2.1.OpenFeign 2.2.Spring Cloud Open Feign 3.Spring ...

  6. vue中vuex的五个属性和基本用法

    VueX 是一个专门为 Vue.js 应用设计的状态管理构架,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data ). Vuex有五个核心概念: state, ge ...

  7. 超过三张表禁止join

    一. 问题提出 <阿里巴巴JAVA开发手册>里面写超过三张表禁止join,这是为什么? 二.问题分析 对这个结论,你是否有怀疑呢?也不知道是哪位先哲说的不要人云亦云,今天我设计sql,来验 ...

  8. XML解析器

    1.非验证解析器 检查文档格式是否良好,如用浏览器打开XML文档时,浏览器会进行检查,即格式是否符合XML(可拓展标记语言)基本概念. 2.验证解析器 使用DTD(Document Type Defi ...

  9. SourceTree Git可视化管理工具通过 ssh 密钥登录

    整个流程分三步:① 生成SSH密钥:② Github/Gitee/Coding 代码托管平台绑定公钥:③ SourceTree 拉取代码 1.生成 SSH 密钥 这里直接使用 SourceTree 来 ...

  10. CF808A Lucky Year 题解

    Content 年份中有不超过 \(1\) 个非 \(0\) 数字的年份是幸运年份.现给出当前年份 \(n\),求到下一个幸运年份还要等多久. 数据范围:\(1\leqslant n\leqslant ...