Inception网络
2018-12-09 19:39:38
一、1 * 1卷积
pooling可以对feature map的height,width进行修改,但是对通道数目无法修改。
1 * 1卷积可以在不改变图像大小的前提下修改通道数目。并且如果使用多个1 * 1卷积可以起到类似FC的功能,因此1 * 1卷积也被称为Network in Network,具体可以见下图。
二、Inception模块
当不知道在卷积神经网络中该使用1 * 1卷积还是3 * 3的卷积还是5 * 5的卷积或者是否需要进行pooling操作的时候,我们就可以通过inception模块来将所有的操作都做一遍,然后将得到的结果直接concat到一起,由神经网络来决定是使用哪种方式处理。
这里有一个问题就是计算复杂度的问题,如下图所示:
计算该层的时间复杂度为28 * 28 * 32 * 5 * 5 * 192 ~= 1.2亿
如何有效的降低时间复杂度成为了问题的关键。Inception网络中使用了bottleneck层来降低时间复杂度,本质上就是使用1 * 1的卷积先将原有通道数下降,再进行后续的计算,通过这种方式可以大大降低时间复杂度。
这次的时间复杂度为28 * 28 * 16 * 192 + 28 * 28 * 32 * 5 * 5 * 16 ~= 1200万。
三、Inception网络
上图就是上文中讲到的Inception模块,而Inception网络就是将这些模块进行组合。中间红色的部分为pooling层,主要用来减少参数量,另外,Inception网络也被称为GoogleNet,他们在模型的中间也加入了分类网络,认为这样可以提高网络的深度,并提高模型的效果。