《Visualizing and Understanding Convolutional Networks》阅读理解
大型卷积神经网络模型的分类性能非常强,然而我们却不知道为什么它能够表现的这么好,或者如何去改进它。
在这篇论文中,作者通过Deconvnet的技术,给出了一种可视化的方法,可以深入了解内部的结构,工作原理,以及内在结构的相关性等。
一、利用Deconvnet进行可视化
利用Deconvnet描述了具体如何反向将特征映射到像素空间。
1.正常卷积过程convnet
如上图右侧部分,上一层pooled的特征图,通过本层的filter卷积之后,形成本层的卷积特征。然后经过ReLU函数进行非线性变换得到rectified特征图。再经过本层的max-pooling操作,完成本层的卷积池化操作,传入下一层。
2.反卷积过程Deconvnet
如上图左侧部分,首先是unpooling,因为pooling是不可逆的,所以unpooling实际上就是通过记录正常pooling时的位置,然后把传进来的特征按照记录的方式重新“摆放”,从而近似pooling前的卷积层特征(彩色部分)。然后通过ReLU函数得到unpooling的特征。再利用filter转置来计算卷积前的特征图,从而形成重构的特征。
二、特征可视化
在一个完全训练的模型中对特征进行可视化,作者选择了最大的9个**值分别进行了可视化。每层可视化特征特点:1.在每张特征图上有聚集性;2.高层有更好的不变性;3.图像判别部分比较“夸张”。
上图表现出了各层特征的变换情况:我们可以发现,经过一定次数的迭代之后,底层的卷积最先收敛,高层的特征需要在经过充分的训练后才能收敛。
通过可视化Alex-net网络的第1,2层(图中的b和d),可以发现一些问题:1.第1层filter是高频和低频的信息,中间频率的filter则很少覆盖;2.第2层可视化比较混淆。
为了解决这个问题,做出了以下改进:1.减少第一层的filter size从11*11变成7 *7;2.缩小间隔,将间隔从4变成2。
三、改进实验
1.将layer 1 的filter size转换为7*7;2.将layer 1 的步长设置为2;3.全连接,而不是局部连接;4.在layer 2 3 4 5 中重复layer1 中的操作
通过对比观察,可以发现:1.移除的 layer 越多,对结果的损失就越大,这说明模型的深度对其性能非常重要;2.增加中间卷积层的大小可以提高模型的性能。但是同时增加卷积层和fc层,会导致过拟合。
四、总结
1.作者提出了一种新的卷积特征可视化方法,证明了卷及网络的一些特征、复合性、特征不变性及网络深度的关系;
2.通过遮挡实验,证明了模型可以识别出图像中物体的位置;
3.通过削减实验,证明了模型深度的重要性,但是当模型很复杂时,会导致过拟合。