目录
问题引出
人们经常把CNN看做黑箱,所以CNN到底干了些什么
可视化模型学到了什么
可视化卷积核
通过可视化卷积核,知道卷积核在寻找什么。让模板向量和另一个向量相乘,得到标量结果,当这两个向量匹配(match up)的时候,结果最大化(比如,让一个向量与自己相乘,结果最大)。
比如,将AlexNet中第一层64个尺寸为3*11*11的卷积核展示位64个11*11、3通道的图片。
可以看到,几个模型中第一层卷积核都在寻找有向边(oriented edge)
中中间层权重的可读性比较差。下面的中间层是将每一个卷积核(16*7*7)展开成16个图片,看不出来这些权重在寻找什么特征。因为这些权重是与第一层的输出相连,而不是直接与图片相连,所以我们看到的是第一层什么样的特征能让第二层最大激活,然而第一层卷积特征在图片上的展示是不好解读的
可视化最后一层的特征
近邻法
将一些图片送入CNN,收集他们在最后一层的4096维特征向量,用L2近邻法将这些特征向量与第一列(红线左侧)测试图片的特征向量比较,红线右侧是得到的近邻。观察第二行的大象,红线右侧第三个大象位于右侧,而测试图片位于左侧,按道理讲他们的像素几乎完全不同(almost entirely different),但是特征向量差别不大,据此Justin认为特征向量捕捉的是图片的语义内容
维度压缩
mnist数据集图片尺寸28*28,运用t-SNE将28*28维的原始像素特征空间压缩成2维,可以看到下图中的自然集群,这些集群对应了mnist数据集中的数据
将大量图片送入CNN,收集他们的4096维特征向量,通过t-SNE降维把4096维特征空间压缩到2维特征空间
可视化激活值
AlexNet第五层的激活结果是13*13*256向量,其中一个GUP给出的结果是13*13*128向量,将这些向量可视化为128张图片(因为只有1个通道,所以图是灰色的)。测试图下面的那个图片是右边绿色框内图片的放大,可以看到该层激活量的一个slice(即feature map)正在寻找类似人脸的东西
Yosinski et al, “Understanding Neural Networks Through Deep Visualization”, ICML DL Workshop 2014