深度学习中的经典基础网络结构总结
这篇文章从大的发展趋势介绍了下主干网络的发展,而在 CV 经典主干网络 (Backbone) 系列: 开篇 中主要是对一些比较经典的主干网络进行简单梳理。
1. 深度学习发展历史回顾
在开始正式内容之前,首先回顾下深度学习发展史,这将使整体内容更为连贯。
上图主要展示了深度学习的 “史前文明”(这里仅仅是开玩笑的说法)。从图中可以看到整个历史始于1943年,有三个发展繁荣期和两个低谷。
-
- 1943年,心理学家麦卡洛克和数学逻辑学家皮兹发表论文《神经活动中内在思想的逻辑演算》,提出了MP模型。
-
- 1960年,Henry J. Kelley 提出 BP(Back propagation),但是还仅仅应用有控制理论中。
-
- 1965年,Alexey Grigoryevich Ivakhnenko(开发了数据处理的分组方法)和Valentin Grigor_evich Lapa(控制论和预测技术的作者)在开发深度学习算法方面做出了最早的努力。
-
- 经过第一个高潮的发展,大家对深度学习充满了期待,但是结果却远远未达到预期,所以各国政府削减资助,投资人也减少投资, 上世纪70年代,第一个 AI 寒冬到来了,AI 的研究也进入了低谷期。第一次寒冬主要是从理论到数据到算力都不能满足要求。
-
- 1979年,Kunihiko Fukushima 开始将 CNN 应用于神经网络中。由于一些人的坚持,深度学习又开始有了巨大发展。
-
- 1985年,Rumelhart, Williams, 和 Hinton 证明 BP 在神经网络的作用,由此 BP 才开启了它的神经网络之旅。历史总是惊人的相似,在外界对 AI 抱有巨大希望的时候,泡沫再次破裂了, 第二次 AI 寒冬到来。第二次寒冬主要是受限于数据和算力。
-
- 1989年,第一个用于解决实际问题的网络(LeCun1989)由 Yann LeCun 于贝尔实验室提出,用于识别手写数字,当然这个还不是我们所熟知的 LeNet5, 后者是1998年才提出的。
-
- 1995年,Dana Cortes 和 Vladimir Vapnik 提出了 SVM 。1997年,Sepp Hochreiter 和 Juergen Schmidhuber 提出了 LSTM。
-
- 1999年,当时计算机处理数据的速度开始加快,gpu(图形处理单元)也得到了发展。通过GPU处理图片,在10年的时间里,计算速度提高了1000倍。这为 AI 的第三次繁荣奠定了基础。
当然现在有一个说法是 AI 已经处在第三次寒冬,理由是深度学习的潜力已经见顶,这个我们且不讨论。
2. 深度学习中的经典基础网络结构概览
上面已经讲到2000年左右,随着理论的完善和算力的巨大发展, 深度学习进入了第三次繁荣,而我们将介绍的经典网络结构也都产生于这一时期。
下面以 AlexNet 作为起点,梳理了一些经典基础网络结构,需要注意的是,这里并不包含那些具有特殊功能的网络,比如专门用于检测的 SSD, 专门用于分割的 FCN 等等之类的网络。这里所指的网络是可以作为 backbone 的基础网络结构。
上面这幅图是以三种不同的发展思路来进行分类的。如下所示。
-
- 第一行是按着如何使网络结构更深的发展思路来进行推进的。
-
- 第二行是在玩 module 的概念,当然我们看到第一行和第二行后面是被结合到一起了的。
-
- 第三条是按着如何使网络更快,结构更轻量化来进行发展的。这里仅仅只是列出了一些比较经典的网络,而且每种网络都有多个版本。下图是轻量化网络更详细的发展情况。
如果我们以 ImageNet 的成绩作为线索进行排列,如下图所示。
- 第三条是按着如何使网络更快,结构更轻量化来进行发展的。这里仅仅只是列出了一些比较经典的网络,而且每种网络都有多个版本。下图是轻量化网络更详细的发展情况。