Inception-V4 和 Inception-ResNets
Inception V4 是在 2016 年由谷歌的研究人员结合 Inception-ResNet 引入的。 本文的主要目的是降低 Inception V3 模型的复杂性,从而在 ILSVRC 2015 挑战中提供最先进的准确性。本文还探讨了在 Inception 模型上使用残差网络的可能性。这个型号
Inception-V4 的架构变化:
在本文中,讨论了两种类型的 Inception 架构。
- 纯 Inception 架构(Inception -V4):
- 论文中提到的“架构的主干”的初始层集被修改以使其更加统一。这些层在架构中的 Inception 块之前使用。
- 与需要不同副本以适应内存的早期版本不同,该模型可以在没有副本分区的情况下进行训练。这种架构在反向传播上使用内存优化来减少内存需求。
- 具有残差的初始架构:
- 该论文的作者受到 Residual Network 成功的启发。因此他们探索了将 Inception 与 ResNets 结合的可能性。他们提出了两种基于残差网络的 Inception 模型:Inception ResNet V1 和 Inception ResNet V2。让我们来看看这些架构的主要亮点。
- 这些架构中使用的 Inception 块在计算上比我们在 Inception V4 中使用的原始 Inception 块要便宜。
- 每个 Inception 块之后是一个 1×1 卷积,没有激活,称为过滤器扩展。这样做是为了扩大滤波器组的维度,以匹配下一层的输入深度。
- Inception 块内的池化操作被残差连接取代。但是,可以在减少块中找到池化操作。
- 在 Inception ResNets 模型中,求和后不使用批量归一化。这样做是为了减小模型大小,使其可在单个 GPU 上训练。
- 两种 Inception 架构都具有相同的 Reduction Blocks 架构,但架构的主干不同。他们在训练的超参数上也有差异。
- 发现 Inception-ResNet V1 的计算成本与 Inception V3 相似,Inception-ResNet V2 的计算成本与 Inception V4 相似。
架构:
- 以下是 Inception V4的架构细节:
- 整体架构
- 初始模块:
- 还原模块:
- 下面是 Inception ResNet V1 和 Inception ResNet V2的架构细节:
- 整体架构:Inception ResNet V2 具有与 V1 相似的架构模式,但不同之处在于它们的主干、Inception 和 Reduction 块。
- 架构的茎
- Inception 块:Inception ResNet 中的 Inception 块非常相似,只是参数数量很少变化。在 Inception ResNet V2 中,与 Inception ResNet V1 相比,某些层的参数数量有所增加。
- 还原块:
- 不同的 Inception 架构中的归约模块 A 是类似的。下表定义的参数数量的唯一区别:
- 下面给出了 Inception ResNets 的 Reduction Block B:
结果和结论:
在 ILSVRC 2012 验证集上,不同架构的单作物单模型评估的 top-5 和 top-1 错误率如下:
在 ILSVRC 2012 验证集上对不同架构的 144-crop(单一模型)评估的 top-5 和 top-1 错误率如下:
ILSVRC 2012 验证集上不同架构的集成结果如下:
参考:
- Inception-v4、Inception-ResNet 和 Residual Connections 对学习的影响