在这篇文章中,我们将了解什么是Inception V3模型架构和它的工作。它如何比以前的版本如Inception V1模型和其他模型如Resnet更好。它的优势和劣势是什么?
目录:
- 介绍Inception模型
- Inception V3 模型结构
- Inception V3 的性能
让我们来探讨Inception V3模型架构。
Inception模型简介
Inception V3是一个基于卷积神经网络的深度学习模型,它被用于图像分类。Inception V3是基本模型Inception V1的高级版本,该模型在2014年作为GoogLeNet推出。顾名思义,它是由谷歌的一个团队开发的。
初始V1
当在一个模型中使用多个深度卷积层时,会导致数据的过度拟合。为了避免这种情况的发生,inception V1模型采用了在同一层次上使用不同大小的多个过滤器的想法。因此,在inception模型中,我们没有深层,而是有平行层,从而使我们的模型更宽,而不是使它更深。
Inception模型是由多个Inception模块组成的。
Inception V1模型的基本模块是由四个平行层组成的:
- 1×1卷积
- 3×3卷积
- 5×5卷积
- 3×3最大集合
卷积-通过对整个图像的每个像素及其局部邻居应用一个内核来转换图像的过程。
池化-池化是用来减少特征图的尺寸的过程。有不同类型的池化,但最常见的是最大池化和平均池化。
在这里,不同大小的卷积被执行以捕获图片中不同大小的信息。
天真的形式
Inception V1的这个模块被称为Naive形式。这种天真形式的缺点之一是,即使是5×5的卷积层在计算上也是相当昂贵的,即耗时和需要高计算能力。
为了克服这个问题,作者在每个卷积层之前增加了一个1×1的卷积层,这使得网络的维数减少,计算速度加快。
加入降维后的模块看起来像这样。
这就是Inception V1模型架构的构件。Inception V1的架构模型在当时比其他大多数模型要好。我们可以看到,它的错误率非常低。
Inception V1与其他模型的比较。
是什么让Inception V3模型更好?
Inception V3只是inception V1模型的高级和优化版本。Inception V3 模型使用了几种技术来优化网络,以获得更好的模型适应性。
- 它有更高的效率
- 与Inception V1和V2模型相比,它的网络更深,但其速度并没有受到影响。
- 它的计算成本较低。
- 它使用辅助的分类器作为正则化。
Inception V3模型结构
Inception v3模型是在2015年发布的,它共有42层,错误率比前辈们低。让我们来看看有哪些不同的优化使inception V3模型变得更好。
对Inception V3模型所做的主要修改是
- 因子化为较小的协整
- 空间因式分解为不对称的卷积
- 辅助分类器的效用
- 有效地减少网格大小
让我们看看这些优化是如何实现的,以及它是如何改进模型的。
因子化为较小的协整
Inception V1模型的主要资产之一是慷慨的降维。为了让它变得更好,模型中较大的康沃斯被分解成较小的康沃斯。
例如,考虑Inception V1模型的基本模块。
它有一个5×5的卷积层,如前所述,计算成本很高。因此,为了减少计算成本,5×5卷积层被两个3×3卷积层取代,如下图所示。
模块2
为了更好地理解它,请看使用两个3×3卷积层的过程是如何减少参数数量的。
由于参数数量的减少,计算成本也随之降低。这种将较大的卷积分解成较小的卷积的做法导致了28%的相对收益。
空间因子化为不对称的卷积
尽管较大的卷积被分解成较小的卷积。你可能会想,如果我们可以进一步因式分解,比如说分解成2×2的卷积。但是,为了使模型更加有效,一个更好的选择是不对称卷积。
非对称卷积的形式是n×1。
因此,他们所做的是用一个1×3的卷积和一个3×1的卷积来代替3×3的卷积。这样做就等于用3×3卷积中相同的感受野来滑动一个两层网络。
模块2
不对称卷积的结构
如果输入和输出滤波器的数量相等,对于相同数量的输出滤波器来说,两层方案要便宜33%。
应用了前两个优化技术后,起始模块看起来是这样的。
模块3
辅助分类器的效用
使用辅助分类器的目的是为了提高极深层神经网络的收敛性。辅助分类器主要用于对抗非常深的网络中的梯度消失问题。
在训练的早期阶段,辅助分类器并没有带来任何改善。但到了最后,与没有辅助分类器的网络相比,带有辅助分类器的网络显示出更高的准确性。
因此,辅助分类器在Inception V3模型架构中起到了正则器的作用。
有效减少网格大小
传统上,最大集合和平均集合被用来减少特征图的网格大小。在Inception V3模型中,为了有效减少网格大小,网络过滤器的激活维度被扩大。
例如,如果我们有一个带有k个过滤器的d×d网格,在缩小之后,它的结果是一个带有2k个过滤器的d/2×d/2网格。
而这是用两个平行的卷积和池化块后来串联完成的。
上图显示了如何在扩大滤波器库的同时有效地减少网格的大小。
最终的Inception V3模型
在进行了所有的优化后,最终的Inception V3模型看起来是这样的
总的来说,Inception V3模型由42层组成,比之前的inception V1和V2模型要高一点。但这个模型的效率确实令人印象深刻。我们稍后会讨论这个问题,但在此之前,让我们详细看看Inception V3模型是由哪些部分组成的。
类型 | 补丁/跨度大小 | 输入大小 |
---|---|---|
连接 | 3×3/2 | 299×299×3 |
对应 | 3×3/1 | 149×149×32 |
填充的Conv | 3×3/1 | 147×147×32 |
游泳池 | 3×3/2 | 147×147×64 |
游泳池 | 3×3/1 | 73×73×64 |
隔离墙 | 3×3/2 | 71×71×80 |
隔离墙 | 3×3/1 | 35×35×192 |
3 × 初始化 | 模块1 | 35×35×288 |
5 × 初始化 | 模块2 | 17×17×768 |
2 × 初始化 | 模块3 | 8×8×1280 |
游泳池 | 8 × 8 | 8 × 8 × 2048 |
线性 | 对数 | 1 × 1 × 2048 |
柔性最大 | 分类器 | 1 × 1 × 1000 |
上表描述了inception V3模型的轮廓。这里,每个模块的输出大小就是下一个模块的输入大小。
Inception V3的性能
正如预期的那样,inception V3与之前的Inception版本相比,有更好的准确性和更少的计算成本。
多作物的报告结果。
我们可以看到,与之前的模型和同时代的模型相比,inception V3模型的错误率极低。
如果你愿意了解更多关于模型的细节,这里有几个链接
- 初始V1模型的研究论文
- 关于Inception V3模型的研究论文
通过OpenGenus的这篇文章,你一定对Inception V3模型架构有了完整的了解。