CNN的理解以及可视化

这里写自定义目录标题

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

CNN的可视化理解

第一个卷积层的可视化

可视化第一层的卷积核:
CNN的理解以及可视化_第1张图片可以看到卷积核中更多的是一些图像的边缘信息(轮廓信息),因此,第一层的卷积核可以提取一些图像的轮廓信息。

为什么要可视化卷积核

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

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

最后一层的可视化

方法一:通过可视化Nearest Neighbors观察最后一层全连接层获取到的特征的特点
CNN的理解以及可视化_第2张图片
左图:是在原始图像像素层面上计算近邻
右图:是在特征图层面计算近邻
可以发现右图第二行,输入图像是一个面向右侧的大象,但是计算出的近邻图中有面向左侧的大象。

方法二:降维Dimensionality Reduction
PCA降维法对MNIST数据集的网络最后一层的特征降维到二维进行可视化。
右下可以看到实现了聚类,有10个类别。
CNN的理解以及可视化_第3张图片
t-SNE降维法:常用于深度学习。
右图也是降维到二维,可以看到左下角都是一些绿色的花草也是实现了聚类。
CNN的理解以及可视化_第4张图片

中间层的可视化

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

擦除

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

激活图

类激活图是利用了最后一个卷积层的特征,将其映射到原始图像上得到的高注意力区域。
CNN的理解以及可视化_第5张图片

显著图Saliency Map

通过计算类得分与原始图像的梯度得到。
CNN的理解以及可视化_第6张图片

你可能感兴趣的:(深度学习,cnn,计算机视觉,深度学习)