摘要
Network in Network(‘NIN’) 构造了一个复杂的微型网络结构,用于对数据进行抽象处理(其实就是提取特征)。利用全局平均池化对特征图进行分类,能够有效避免过拟合问题。
特点
- 卷积神经网络的假定是线性可分的。NIN中的微型网络结构可以进行非线性的划分。利用多层感知机(MLP)作为微型网络结构的一部分,感知机是普遍的函数近似者,同时又可以进行back propagation.
- mlpconv layer代替了传统神经网络的卷基层和pooling层,mlpconv layer的中间是多个MLP串联,多个mlpconv layer串联构成了NIN。
- 传统神经网络fc层是黑箱,用全局均值池化来代替fc层,它是特征图和分类之间的链接通道。fc会导致过拟合问题,同时依赖dropout规范化现象很严重,全局均值池化本身就带有规则化的功能,能够有效的避免过拟合问题。
- 全局均值池化特点:One advantage of global average pooling over the fully connected layers is that it is more native to the convolution structure by enforcing correspondences between feature maps and categories. 第二点,不要要进行参数优化,避免了过拟合。此外,全局均值池化总结了空间信息,对于空间信息的转换更加具有鲁棒性。
这里选择多层感知机主要考虑了以下两个方面:
1. 多层感知机跟卷及神经网络一样可以利用back propogation 进行反馈 训练网络;
2. 多层感知机自己也可以生成深度模型。
传统卷积神经网络可以看做特征提取器,full-connected结构 后面连接的softmax等分类结构。
但是fc层存在很多问题,易于过拟合,影响整个网络的性能。dropout可以设置一部分fc参数为0,从而使其对网络不产生影响,因此总会跟fc层一起使用。
global average pooling用来代替传统的fc网络层。
visualization of NIN
对最后一层milconv layer进行可视化。。。。。、
并不是global average pooling 可视化。
可以直接利用caffe对特征图进行可视化。
这篇文章看了很久了,终于看明白了。
MLPconv层,其实就是一个正常的卷积神经网络+kernel为1 的卷积神经网络(n个),每个卷积神经网络的特征层数可以自己设置,但是最后一组的最后一个mlpconv层的输出维数为类别数(class数目)。
global average pooling层 就是对最后的n个特征层数,每个特征层做一个均值,就生成了n个数字,然后输入softmax进行分类。它的kernel大小要根据最后一组最后一层卷积神经网络的输出大小决定,比如是10(类数)X m(pooling后的大小) X m,那么kernel的值就应该是m。
Emma
2017.02.27