文章目录
最近回顾了cs231n中关于可视化的内容,根据PPT和视频内容整理一下自己的理解。从网络输入层的卷积核和中间层的特征可视化开始到基于梯度提升方法的特征匹配、特征反演等方法,进而衍生出了Deepdream以及前几篇博客介绍的风格迁移的技术。

First Layer: Visualize Filters
第一种方法是可视化神经网络第一层的卷积核,也就是训练好的卷积核中的权重w值。
如上图所示,AlexNet的第一层有64个尺寸为11x11x3的卷积核,我们把训练好的每一个卷积核看作一个11x11的三通道图片(权重值w缩放到0~255),排列成8行8列就成为了最左边的大图。这些图展示了卷积核在寻找的东西,即他们在寻找有向边,明暗线条(因为卷积核滑动到边和线的时候,会有较大的权重,这意味着对这些内容能产生更高的激活值),这些就是学习到的第一个卷积层的权值。可视化卷积核权重是为了观察卷积核在寻找什么,这个直觉来源于模板匹配和内积。
对卷积核的可视化也可以在其他层上进行,但是可解释性会差很多。因为第一层卷积是直接对人类能理解的原图片进行的处理,可视化出的线条和边是原图中的特征,而之后层的输入就已经是网络自己提取出来的feature map了,也就是说可视化中间层卷积核的结果实际上是可视化了原图特征的特征,是人类不能从视觉上理解的内容。
Last Layer
对于ImageNet来说,Last Layer就是指在最终输出1000个类别之前经过全连接层得到的4096维特征向量,对这个特征向量可视化有两种方法。
Nearest Neighbors
上图左边展示了ciffa-10数据集中在像素空间上使用最近邻找出的相似图片,可以看出相似的图片基本上有着相似的轮廓和内容,但是也会把蛤匹配到有着相同姿势的猫上。而右边则是在4096维特征空间上使用最近邻找出的相似图片,可以发现图片之间的像素会有较大差异,但是在语义特别是类别上有很大的相似性,这也说明了神经网络学习到的特征确实包含了大量的语义信息。
Dimensionality Reduction
另外一种特征可视化的方法是降维,把4096维特征映射到2维上,然后根据这2维建立一个坐标系,在平面坐标系上很容易看到哪些特征之间接近,哪些特征距离较远。上图右侧展示的是在手写体数据集mnist上,把28x28的图片拉伸为特征向量,然后降到2维,在平面坐标系上可以看出来,具有相似特征的同一种数字被聚到了一起。
这里主要是使用了t-SNE(t-distributed stochastic neighbor embedding)的降维方法,高维到低维的映射存在一个难点:高维距离较近的点在低维可能比较方便聚集在