InceptionNet -- 卷积神经网络

1、InceptionNet 出现解决的问题

既然网络中的结构可以千变万化,那能不在参数量一样的前提下,让网络更加有效,这就是InceptionNet 的主要思想。

2、InceptionNet 介绍

2-1、InceptionNet V1

InceptionNet V1网络的参数量只有6.9兆,模型大小大约50M。
为什么InceptionNet V1t网络的参数这么少呢?我们先来看一下它的基本单元的结构:


InceptionNet V1

主要原因就是它有效的利用了1* 1 的卷积核。不同于VGGNet从上到下的类似于一个串联的结构,Inception的结构表现为一个网中网的结构。也就是说,对于我们中间的一个隐藏层层,它的每个节点也都是一个卷积网络。对于前一层传入进来的特征图,这层的每一个节点对它进行了1* 1 、3* 3、5* 5的卷积和3* 3的max pooling操作。

其中值得一提的是,在3* 3和5* 5 的卷积操作之前,该网络用1* 1 的卷积核降低了输入层的通道的数目,1* 1 的卷积核通常理解在通道上的一种非线性变换。例如:我们的输入是一个56* 56 * 128维的这么一个特征(这时候128就是我们通道的数量)。我们通过一个1* 1 的卷积核,可以将通道数降为32,然后我们将它再输入到3* 3的卷积核中。从上图可知,对于前一层的输入,会进行四组操作,那么输出通道的数目也可以均分给每一组。这样,大大减少了计算量。

2-2、InceptionNet V2/V3

在v2/v3中,他们有效的利用了这个知识。在VggNet中,提到了通过连续的两层3* 3的卷积核代替掉了5* 5的卷积核。而在Inception v3中,工程师们将进行进一步优化,用n* 1 和 1* n的卷积核代替了n* n的卷积核。这样既保证了视野域,也将参数减少很多。比如:原来的视野域为 7 * 7 ,换做 7 * 1 和 1 * 7 后,参数减少了 (49-14) / 49 = 5/7。

InceptionNet V2/V3

通过这样的操作,我们能够实现什么样的效果呢?

首先,参数量降低,计算量减少。拆分大的卷积核后,网络变深,网络非线性表达能力更强(因为在每一个卷积层后面都可以增加一个激活层)。要注意的是,在实验中伟大的先行者们发现,并不是拆分都能达到很好的效果。卷积的拆分最好是用在中间的部分,不要在图像的开始就进行这样的拆分。

2-3、InceptionNet V4

InceptionNet V4 的思想中,集成了残差网络的跳连。

InceptionNet V4

3、参考资料

  • 回顾和总结卷积神经网络的发展过程

  • 卷积神经网络发展历史及各种卷积神经网络模型简介

你可能感兴趣的:(InceptionNet -- 卷积神经网络)