CNN中间层究竟是什么?现在我们只知道是个黑盒。需要可视化每层的输出,这样才能更好地理解CNN。
What are the intermediate features looking for?
Visualising CNN
Filters (First & Intermediate)
首先是可视化第一层的卷积核,将64个卷积核一并展示出,这是Pre-trained的经典模型的卷积核。不难发现,都是oriented edges, bars of light and dark, in various angle and position, opposing colors.
如上图,再复习下卷积的计算维数。卷积核只有一个参数是固定的,即深度,是上一层feature map的深度,但长宽通常是固定的正方形,卷积核个数是不定的。每个元素的值是Unbounded,但为了可视化,压缩成0到255.
第一层卷积核16*3*7*7,其中3是确定的,三通道的深度,16个卷积核。可视化,分为16个,每个是tensor,tensor的深度向量确定了颜色(三通道),故可以二维的用颜色展示。发现是边缘的bar以及对比色。这很明显。
但是往后层的卷积核随着深度的增加,不再是三通道,如由于第一层的feature map是16层,第二层的深度是16,每个tensor的颜色不可能展示了(不然16通道是什么鬼),只能再拆分16个,这样每个matrix是7*7的单通道,0到255的灰度值(没有颜色的意义),故展现的是一片深浅的灰色。可是可视化的结果并不那么有趣,没什么意义。因为这和上一层的结果以及激活函数有关啊。