Inception v1
相比于
GoogLeNet
之前的众多卷积神经网络而言,
inception v1
采用在同一层中提取不同的特征(使用不同尺寸的卷积核),并提出了卷积核的并行合并(也称为 Bottleneck layer),如下图
这样的结构主要有以下改进:
1.
一层
block
就包含
1x1
卷积,
3x3
卷积,
5x5
卷积,
3x3
池化
(
使用这样的尺寸不是必需的,可以根据需要进行调整)
。这样,网络中每一层都能学习到
“
稀疏
”
(
3x3
、
5x5
)或
“
不稀疏”
(
1x1
)的特征,既增加了网络的宽度,也增加了网络对尺度的适应性;
2.
通过
deep concat
在每个
block
后合成特征,获得非线性属性。虽然这样提高了性能,但是网络的计算量实在是太大了,因此 GoogLeNet
借鉴了Network-in-Network 的思想,使用
1x1
的卷积核实现降维操作,以此来减小网络的参数量(这里就不对两种结构的参数量进行定量比较了
)
,如图所示。
最后实现的
inception v1
网络是上图结构的顺序连接,其中不同
inception模块之间使用 2x2
的最大池化进行下采样,如表所示。
![](https://i-blog.csdnimg.cn/blog_migrate/bff85b8f893b1e856b58da72735eec3a.png)
如表所示,实现的网络仍有一层全连接层,该层的设置是为了迁移学习的实现(下同)。
在之前的网络中,最后都有全连接层,经实验证明,全连接层并不是很必要的,因为可能会带来以下三点不便:
网络的输入需要固定
参数量多
易发生过拟合
实验证明,将其替换为平均池化层(或者
1x1
卷积层)不仅不影响精度,还可以减少。