Visualizing and Understanding Convolutional Networks

论文原址:https://arxiv.org/pdf/1311.2901.pdf

1. 背景

我们都知道 CNN 卷积神经网络 效果好,但是一直以来都是一个黑盒,有2个关键问题:

  1. However there is no clear understanding of why they perform so wel
  2. or how they might be improved

其实包括我自己也是很困惑的,卷积神经网络有非常多。但是你看网上的资源来来回回都是在讲这些神经网络的结构。但是很少人知道为什么要把结构设计成这个样子。比如LeNet-5第一层卷积层为啥需要6个通道?为什么整个网络只需要2个卷积层,能不能更多或者更少?

为了解决这个黑盒问题,论文作者提出了一种可视化的方法,能够观测到卷积层的feature maps到底识别到了图片的什么特征,并以此反馈来改进神经网络的结构设计。最后通过这个方法,作者在ImageNet测试集上取得了非常突出的结果

2. 方法

论文的核心思想:map these activities back to the input pixel space, showing what input pattern originally caused a given activation in the feature maps

以LeNet-5这种经典的2D网络为例,正向的卷积过程一般包括几个步骤:

  1. filter
  2. relu
  3. max pooling
  4. 【optionally】local contrast operation

0

每个卷积核对应原始图片中的一个特征信息,但是在可视化之前你不知道它学习到的特征是什么。为了得到卷积核所识别到的“特征”信息,我们需要有一个反卷积的过程,将卷积核的信息,反射回到原图像

这个过程叫 deconvnet(反卷积)

0

Then we successively (i) unpool, (ii) rectify and (iii) filter to reconstruct the activity in the layer beneath that gave rise to the chosen activation. This is then repeated until input pixel space is reached.

2.1. Unpooling

由于池化本身就是靠牺牲图片精度来提高训练速度,所以这个过程本身是不可逆

为了解决不可逆的问题,论文里用了一种比较简单的方法,用一个全局 Switches 变量来记录

池化过程中所记录的原图像素的位置

比如上图中的 Max Locations Switches ,灰色记录的就是 Max Pooling 过程中原图的像素位置。有这个信息之后,Unpooling 就比较简单了

备注:但是这样得到的图像仍然是丢失精度的

2.2. Rectification

由于论文中的卷积神经网络用的是 ReLU 激活函数,所以反激活也是同样用 ReLU 即可

不过我有2个疑问:

  1. sigmod函数、tanh函数怎么搞?
  2. 负数 ReLU 之后怎么进行反转?

2.3. Filtering

Filter 一般也叫过滤器,也叫卷积核,不同的论文叫法不同(我也没搞清楚)。所以这个过程其实就是一个反卷积的过程,也是整个可视化最核心的部分

论文的反卷积运算其实就是采用转置卷积进行上采样

the deconvnet uses transposed versions of the same filters, but applied to the rectified maps, not the output of the layer beneath

要说清楚这个过程,就需要先回顾一下卷积运算

以往,我们会说卷积运算就是卷积核对输入的一个区域先进行对应元素的相乘再求和,然后移动到下一个区域继续进行这样的运算,但如果计算机真的这样做,效率就会很低,所以会改变一下输入和卷积核的形式,然后直接进行矩阵的乘法,

0

通过把卷积运算转化为矩阵乘法,运算的效率就会大大提高。

明白卷积运算的实际运作原理后,其实我们做反卷积,理论上就是求出卷积核的逆矩阵,然后和输出相乘就能还原得到上一层输入,但实际上反卷积运算又不是这样做,只是单纯转置卷积核矩阵,然后和feature map相乘,这样的结果虽然维度上和上一层feature map相同,但实际上并不是一个逆运算的过程。

3. 训练过程的一些细节

我不打算复现论文,所以训练(卷积)的过程我就不看了。只分析原理和效果

4. 可视化(Convnet Visualization)

x

参考:

  1. https://blog.csdn.net/qq_36627158/article/details/113626345
发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注