Visualizing and Understanding Convolutional Networks笔记

本文为20141024周报。

在所有深度网络中,卷积神经网和图像处理最为密切相关,卷积网络在很多图片分类竞赛中都取得了很好的效果,但卷积网调参过程很不直观,很多时候都是碰运气。为此,卷积网络发明者Yann LeCun的得意门生Matthew Zeiler在2013年专门写了一篇论文,阐述了如何用反卷积网络可视化整个卷积网络,并进行分析和调优。

在所有深度网络中,卷积神经网和图像处理最为密切相关,卷积网络在很多图片分类竞赛中都取得了很好的效果,但卷积网调参过程很不直观,很多时候都是碰运气。为此,卷积网络发明者Yann LeCun的得意门生Matthew Zeiler在2013年专门写了一篇论文,阐述了如何用反卷积网络可视化整个卷积网络,并进行分析和调优。

反卷积

文章所用结构与12年Krizhevsky et al的结构相同,如图1。卷积之后利用激活函数进行矫正,再利用Max-pooling进行降采样,最后通过几层全连接层进行分类,最终得到结果。

QQ截图20140911124920图1

与之不同的是:1.由于在单块GPU运行,所以将之前3.4.5层的稀疏连接变成稠密连接;2.改变了卷积核大小和步长(根据可视化的结果)。

通过反卷积Deconvnet实现可视化:

在每个卷积层都加上了一个反卷积层。在卷积、ReLU、Max-pooling之后,不仅输出给下一层用作输入,也为反卷积提供输入。而反卷积层依次进行unpooling、ReLU和反卷积。见图2。

Unpooling:在max-pooling中利用switches表格记录每个最大值的位置,然后在unpooling中奖该位置填回最大数值,其余位置填0。

ReLU:直接利用ReLU函数,仍然确保输出为非负数。

反卷积:利用相同卷积核的转置作为核,与输入做卷积运算。

训练过程跟以前一样,仍然是从256*256中截取中心和边框五,224*224切片再进行中心翻转,batchsize128,学习率0.01,采用dropout策略。所有权值初始0.01,偏置为0。

图片2图2

在进行试验过程中,发现:

1.层数越高,所提取的特征越抽象,如图3。层2展示了物体的边缘和轮廓,颜色等,层3展示了纹理,层4层5开始体现类与类的差异。

Unnamed QQ Screenshot20141010184533 Unnamed QQ Screenshot20141010184543图3

2.经过一定次数的迭代之后,底层特征趋于稳定,但更高层特征要更多次迭代才能收敛,如图4。

Unnamed QQ Screenshot20141010185116图4

图示分别是迭代1.2.5.10.20.30.40.64次迭代之后的结果。

3.特征不变性,如图5。层数越低,很小的变化都能导致输出特征的变化,但层数越高,影响的结果较小。在最终的正确概率中,略微的位移和缩放都不会改变正确率,但卷积网络无法对旋转产生良好的鲁棒性(如果有良好的对称性,则正确率会产生频率一定的波动)。

QQ截图20141016133257图5

列1表示图像变化(垂直移动、缩放和旋转),列2表示层1中原始图像特征向量与改变后特征向量的欧氏距离,列3为层7中的欧氏距离,列4是最后分类器输出正确的概率。

结构选取

第一层卷积核从11*11调整为7*7,步幅大小从4调整为2,优化了最后的结果。

遮挡敏感性

研究图片内部哪个区域产生的作用最大,所以进行了遮挡实验。

QQ截图20141016140004图6

列1表示图像被随机遮挡,列2表示第五层特征图最强输出,列3带黑框为被遮挡后特征向量投影到像素空间,列4为被遮挡后分类的正确率,列5为被遮挡后最可能的分类。

列1表示图像被随机遮挡,列2表示第五层特征图最强输出,列3带黑框为被遮挡后特征向量投影到像素空间,列4为被遮挡后分类的正确率,列5为被遮挡后最可能的分类。

图片内特征相关性分析

对图片内某些特征进行遮挡,如图7。

QQ截图20141016220541图7

对图片内某些特征进行遮挡,如图7。

然后计算遮挡前与遮挡后的差值:QQ截图20141017103136

 

l是层号,QQ截图20141017113016表示在l层中,图i在进行遮挡前与遮挡后的差值。通过Δ来计算特征的相关性。QQ截图20141017101207

 

Sign为符号函数,H为汉明距离,如果Δ值越小,则该操作所遮挡的图像特征和图像其他特征的相关性越高。最后得出结果如表1。

QQ截图20141017103806表1

与随机进行遮挡相比,遮挡眼睛和鼻子所得到的Δ值较小,证明眼睛和鼻子与图片内部其他特征存在相关性。特别的,与层5相比,在层7中的Δ值普遍不大,证明在高层中,已经不关注图像的部件级特征,而更关注品类等高级信息。

实验

QQ截图20141017122721表2

在通过复现了网络(表中(a))之后,通过改变卷积核大小、步幅和特征图大小(第一层卷积核从11*11调整为7*7,步幅大小从4调整为2,最终达到了14.8%的Top-5准确率,比当时公开的数据都要精确,且只用了12年的dataset。

QQ截图20141017130906表3

表3删除了一些层和参数来验证不同的层和参数会对结果造成什么影响,在每个删除后都会进行重新训练。最终发现删除6、7层全连接层,错误率只有轻微提升,删掉两层卷积层错误率也没有明显提升,但删除这四层之后,错误率急剧提升,这可能表明总体深度对模型很重要。扩大全连接层基本无效,扩大卷积层有一点提升,但扩大他们会导致过拟合。

特征泛化能力

在不改变模型1~7层训练结果,只训练softmax层的情况下,又进行了Caltch-101、Caltch-256、PASCAL VOC 2012三个库的测试。还应用到了其他分类器。

Caltch-101库:如表4。重新训练的准确率并不高,但经过ImageNet数据训练后的网络比历史最好成绩还要好2.2%。

QQ截图20141017142802表4

Caltch-256库:如表5。重新训练的准确率并不高,但经过ImageNet数据训练后的网络比历史最好成绩还要好19%。

QQ截图20141017142817表5

Caltch-256库:如表6。重新训练的准确率并不高,但经过ImageNet数据训练后的网络比历史最好成绩还要好19%。

QQ截图20141017142839表6

结论和感谢省略……

想法

1.在扩充训练集的时候,调整图像角度是关键,不需要过多的将图像切割成多片进行训练(如将图像切成左上、右上、左下、右下、中五片这种形式);

2.仔细考虑每个层对其他层的影响,可适当精简层,特别是全连接层;

3.可先进行其他数据集的预训练。

PrintEvernoteQQFacebookTwitterGoogle+分享