Google团队提出的Inception Module结构在实现上借鉴了论文《Network in NetWork》(以下简称NIN,该论文由Min Lin和Qiang Chen等人于2014年发表)中的一些做法。在NIN中,主要通过串联卷积层与MLP层(级联在一起称为MLPConv(Multilayer Perceptron + Convolution))的方式增加了卷积层的表达能力。在一般的卷积神经网络中,提升表达能力的主要措施是增加输出通道数(使用多个卷积核提取更多的特征),但是,这样会增大计算量并有可能导致过拟合。而NIN中的MLPConv则实现的是利用多层感知器(其实就是多层的全连接层)来替代单纯的卷积神经网络中的加权求和。具体来讲,MLPConv使用MLP对卷积操作得到的特征图进行进一步的操作,让MLP层像卷积层一样通过滑动计算CNN的输出从而得到本层的最终输出特征图。下图展示了MLPConv的连接情况,其中左边的特征图由卷积操作得到。
在一般的卷积神经网络中,无论是输入还是输出,不同的卷积核之间是不同的;但是在MLPConv中,卷积操作得到的特征图会经过权值共享的MLP来得到要输出的特征图。这样的处理方式拥有更强大的表达能力,因为允许在输出通道之间组合信息(特征图的多少决定通道的深度),所以效果明显。可以将全连层看作是卷积核大小为1*1的卷积层,于是MLPConv就基本等效于普通卷积层再连上1*1的卷积和ReLu激活函数。
参考书籍:《TensorFlow深度学习算法原理与编程实战》 蒋子阳 著