继上一篇做完lenet手写数字测试后,我们对lenet训练结果在mnist测试集上的结果进行粗浅的分析。
lenet测试结构如下,我们看到ip1输出特征向量长度为500维,不便于分析,
于是我们对该层稍作修改,将500改为2,这样2维的特征向量我们可以把特征向量作为坐标点画在二维坐标系上便于分析,修改后的测试结构如下:
我们对训练结构进行同样的修改,重新训练得到新的caffemodel文件。利用测试结构和caffemodel对mnist测试数据集进行特征提取,生成特征文件。用matlab导入特征文件,对0-9十个数字的特征值进行坐标系描点,结果如下:
然后我在ip1后连接relu,用relu输出的2维特征作图,结果如下:
对比可以发现,relu之后的结果使得坐标系中第二三四象限的点全部集中在了坐标轴上。主管观察上来说,relu之后的结果可分性变差了,那么relu非线性层的作用到底是什么?是不是不适合用于这种情况,它的优势是什么?
继续实验,我们测试去掉relu层之后的分类准确率变化情况。
2维ip1含relu:89.6%
2维ip1不含relu:89.83%
去掉relu准确率略有提升。
code:https://github.com/lhnows/caffeProjects