原文:Inception深度网络家族盘点 | Inception v4 和Inception-ResNet未来走向何方 ?

作者:David 9的博客 - david9ml(微信) - yanchao727@gmail.com

多融合和标准化的网络是深度架构未来的可见趋势 — David 9

Inception深度网络架构 已经走过4个版本,AI的空前热潮,让业内期待新网络架构的心情如同当年期待Window系统版本一样。

Inception V1的想法其实很简单:一方面,我们人工地调整每层卷积窗口的尺寸(真麻烦!); 另一方面,我们又想让深度网络更“深”,为什么不让同一层就有各种大小卷积可以学习?

image

是不是轻松多了?仅仅一层 block 就包含 1x1卷积,3x3卷积,5x5卷积,3x3池化.

这样,网络中每一层都能学习到“稀疏”或者“不稀疏”的特征:

image

网络结构之 GoogleNet(Inception V1) - AIUAI

另外,Inception V1开创了两个变化:

[1] - 以前每一层线性卷积需要之后跟一个 Relu 激活函数或者 pooling 层增加非线性。而 Inception V1 直接通过 DepthConcat 在每个block后合成特征,获得非线性属性。

[2] - 最后阶段的全连层FC不再是必要的,传说中的global average pooling 可以替代 FC 减少过拟合的风险。

Inception V2 和 V3讨论集成了 Inception 中的许多 Tricks,包括在 Inception block 中,与其用7×7 尺寸的卷积,不如用一对 1×7 和 7×1 卷积更高效。另外引入Batch Normalize 等等。但是,我们都知道:是金子总会发光的,好的 Tricks 总能到处通用 !而不是在一个架构中才能用!

终于,我们要请出主角 Inception V4Inception-ResNet, 是不是有人要打我了?恭喜你有耐心看到这里。

其实Inception V4改动也不大,但是它告诉懒人们一个很重要的信息:什么样的输出应该用什么样Inception Block。 连Block都懒得调了,这群人简直了 !

比如要输出35x35尺寸的特征图,你不用费心调了,我告诉你,这个 Inception Block最好:

image

来自:https://arxiv.org/pdf/1602.07261v2.pdf

如果要输出17x17尺寸的特征图?没关系,这个 Inception Block最好:

image

另外,注意到每组卷积之前都有1x1卷积,之前我们说过,1x1的卷积是为了降低输入特征图个数,不至于到最后特征图泛滥。于是,就像拼积木一样,把上述 Blocks 拼到 Inception V4 中就可以了:

image

Inception V4总体架构

其中,Inception-A 的 block 和 Inception-B 的 block 展开,正是上一张和上上一张图片的架构。可见,Inception V4 的 Block 更像是模块化的拼接,具体其他 Block 的设置读者可以参考原始论文 - Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

除了Inception V4标准化,可用性,和高效性的增强,文章提出的 Inception-ResNet 的思想就更加直接:我们何不搞个Inception和ResNet的混合体?

我们知道ResNet通过跳层连接使得深度网络信号传递更深,可构建更深和收敛更快的网络:

image

ResNet跳层示例

在“胖胖”的Inception Block基础上,加上跳层,即是 Inception-ResNet 的思想**:

image

这种混合架构能有多大的准确率提高呢?实话说不是特别大的提高:

image

image

image

以上是top-5,top-1上的错误率比较。可见 Inception-v4 和 Inception-v3 之间的改进并不大,对应的Inception-ResNet 改进版 Inception-ResNet-v2 和 Inception-ResNet-v1的改进更是不大。无论如何,也许这称不上 smart work,但还是感谢作者的 hard work。另外可以看到的是,多架构融合标准化的网络是深度架构未来的可见趋势。

参考文献:

[1] - Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

[2] - https://datascience.stackexchange.com/questions/15328/what-is-the-difference-between-inception-v2-and-inception-v3

[3] - http://nicolovaligi.com/history-inception-deep-learning-architecture.html

Last modification:January 22nd, 2019 at 11:49 am