卷积神经网络可以提高分类效果,然而其内部解释性却不如传统网络。为了弄清楚卷积神经网络是如何提取图像特征,Matthew D. Zeiler与Rob Fergus就这个问题发表了Visualizing and Understanding Convolutional Networks论文。
在观察第一层图片特征提取时,会发现卷积网络会首先提取一些简单的色彩,直线,曲线等低级特征,而到了第二层甚至更高层就很难解释其提取的特征了。于是作者将每一层图片的特征通过反卷积重构为原来的图像对应区域,然后来解释该层特征提取器(卷积核)的作用。
如上图所示,每一层都会通过反卷积结构相连至输出,以此来观察特征提取器(卷积核)到底学习到了什么。具体细节见下方论文链接,如下图所示时,在layer1 学习到了颜色和纹理特征,到了layer2就是一些比较复杂的纹理特征,出现了圆圈等。图的左侧时将该层的特征通过反卷积来可视化该层卷积核学习到了什么,图的右侧是该图片是什么。可以看到在layer5的时候已经出现了人们可以分辨的动物轮廓,可以解释的是,该层已经学习到了“可以分辨出原来图片的轮廓”的能力。
从上图也可以看出每一层卷积只会学习原图中的关键特征,对于复杂的背景CNN,CNN会忽略。如果遮挡或者模糊掉一些非关键部分,也不会影响识别结果。
下图是CNN学习过程,可以看到底层的特征学习在短时间内会趋向稳定,而高层的特征会需要长时间的学习。