这里写自定义目录标题

  • CNN的可视化理解
  • 第一个卷积层的可视化
  • 最后一层的可视化
  • 中间层的可视化
  • 擦除
  • 激活图
  • 显著图Saliency Map


CNN的可视化理解

第一个卷积层的可视化

可视化第一层的卷积核:

现在的cnn能达到什么水平 cnn能看吗_现在的cnn能达到什么水平

可以看到卷积核中更多的是一些图像的边缘信息(轮廓信息),因此,第一层的卷积核可以提取一些图像的轮廓信息。

为什么要可视化卷积核

目的就是我们想要研究每一层卷积层到底提取的是图像的什么信息。
通过可视化卷积核我们发现,卷积核是一些图像轮廓信息,所以我们可以知道,哦~原来卷积神经网络第一层提取了一些图像的轮廓信息。
好的,为什么这么说呢?
卷积操作,就是通过卷积核与原始图像的各个区域进行内积运算。我们可以看成是两个向量的点乘,而在范数的约束下,优化的目标是令这个乘积最大。所以想一想向量相乘~~当然是向量同方向时乘积最大。同方向即图像数据与卷积核权值相匹配。

如果对卷积中间层进行可视化,可解释性会差一些。

最后一层的可视化

方法一:通过可视化Nearest Neighbors观察最后一层全连接层获取到的特征的特点


现在的cnn能达到什么水平 cnn能看吗_深度学习_02


左图:是在原始图像像素层面上计算近邻

右图:是在特征图层面计算近邻

可以发现右图第二行,输入图像是一个面向右侧的大象,但是计算出的近邻图中有面向左侧的大象。方法二:降维Dimensionality Reduction

PCA降维法对MNIST数据集的网络最后一层的特征降维到二维进行可视化。

右下可以看到实现了聚类,有10个类别。

现在的cnn能达到什么水平 cnn能看吗_深度学习_03


t-SNE降维法:常用于深度学习。

右图也是降维到二维,可以看到左下角都是一些绿色的花草也是实现了聚类。

现在的cnn能达到什么水平 cnn能看吗_深度学习_04

中间层的可视化

如何知道图像中的哪些区域对分类最有效?如下方法:

擦除

通过滑动窗口擦除(其实就是置成灰色像素块)图像中的像素块,观察后续的分类结果。

激活图

类激活图是利用了最后一个卷积层的特征,将其映射到原始图像上得到的高注意力区域。

现在的cnn能达到什么水平 cnn能看吗_cnn_05

显著图Saliency Map

通过计算类得分与原始图像的梯度得到。

现在的cnn能达到什么水平 cnn能看吗_现在的cnn能达到什么水平_06