Press "Enter" to skip to content

「多图」图解10大CNN架构

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

大家好,我是K同学啊!

 

你是否一直在关注不同的卷积神经网络 (CNN)?近年来,我们见证了无数CNN的诞生。这些网络已经变得如此之深,以至于很难将整个模型可视化。我们不再跟踪它们,而是将它们视为黑盒模型。

 

这篇文章是 10 种常见CNN 架构的可视化。这些插图提供了整个模型的更紧凑的视图,而不必为了查看 softmax 层而向下滚动几次。除了这些图像,我还附上了一些关于它们如何随着时间“进化”的笔记——从 5 到 50 个卷积层,从普通卷积层到模块,从 2-3 个塔到 32 个塔,从 7⨉7 到 5 ⨉5——但稍后会详细介绍。

 

在这里我想补充一点,我们在网上看到的大量 CNN 架构是许多因素的结果——改进的计算机硬件、ImageNet 竞争、解决特定任务、新想法等等。谷歌研究员 Christian Szegedy 曾提到。

 

“[大部分]进步不仅仅是更强大的硬件、更大的数据集和更大的模型的结果,而且主要是新思想、算法和改进网络架构的结果。” (塞格迪等人,2014 年)

 

关于可视化的一些说明,请注意,我已经排除了插图中的卷积过滤器数量、填充、步幅、dropouts和flatten 等信息。

 

@ toc

 

1. LeNet-5 (1998)

 

 

LeNet-5 是最简单的架构之一。它有 2 个卷积层和 3 个全连接层(因此“5”——神经网络的名称通常来自于它们所具有的卷积层和全连接层的数量)。我们现在所知道的平均池化层被称为子采样层,它具有可训练的权重(这不是当今设计 CNN 的当前做法)。这个架构有大约 60,000 个参数 。

 

:star:️什幺是小说?

 

这种架构已经成为标准的“模板”:用激活函数和池化层堆叠卷积,并以一个或多个全连接层结束网络。

 

:memo:刊物

论文: Gradient-Based Learning Applied to Document Recognition
作者:Yann LeCun、Léon Bottou、Yoshua Bengio 和 Patrick Haffner
发表于: IEEE Proceedings of the IEEE (1998)

2. AlexNet (2012)

 

 

60M 参数,AlexNet 有 8 层——5 层卷积和 3 层全连接。AlexNet 只是在 LeNet-5 上再堆叠了几层。在发表时,作者指出他们的架构是“迄今为止在 ImageNet 子集上最大的卷积神经网络之一”。

 

:star:️什幺是小说?

 

他们是第一个将整流线性单元 (ReLU) 实现为激活函数的人。

 

:memo:刊物

论文: ImageNet Classification with Deep Convolutional Neural Networks
作者:Alex Krizhevsky、Ilya Sutskever、Geoffrey Hinton。加拿大多伦多大学。
发表于:NeurIPS 2012

3. VGG-16 (2014)

 

 

到现在为止,你可能已经注意到 CNN 开始变得越来越深入。这是因为提高深度神经网络性能最直接的方法是增加它们的大小(Szegedy 等人)。Visual Geometry Group (VGG) 的人发明了 VGG-16,它有 13 个卷积层和 3 个全连接层,同时继承了 AlexNet 的 ReLU 传统。该网络在 AlexNet 上堆叠了更多层,并使用了更小的过滤器(2×2 和 3×3)。它由 138M 的参数组成,占用大约500MB的存储空间:scream:。他们还设计了一个更深的变体,VGG-19。

 

:star:️什幺是小说?

 

正如他们在摘要中提到的,这篇论文的贡献是设计了更深的网络(大约是 AlexNet 的两倍)。这是通过堆叠均匀卷积来完成的。

 

:memo:刊物

论文: Very Deep Convolutional Networks for Large-Scale Image Recognition
作者:Karen Simonyan、Andrew Zisserman。英国牛津大学。
arXiv 预印本,2014

:books:实例

深度学习100例-卷积神经网络(VGG-16)识别海贼王草帽一伙 | 第6天
深度学习100例-卷积神经网络(VGG-16)猫狗识别 | 第21天

4. Inception-v1 (2014)

 

这种具有5M参数的22层架构称为Inception-v1。在这里,网络中的网络(见附录)方法被大量使用,如本文所述。这是通过“Inception模块”完成的。Inception模块的体系结构设计是近似稀疏结构研究的产物(阅读论文了解更多!)。每个模块提出3个想法:

 

 

    1. 具有不同过滤器的并行卷积塔,然后进行串联,在 1×1、3×3 和 5×5 处捕获不同的特征,从而对它们进行“聚类”。这个想法是由阿罗拉等人的动机。在纸张可证明界学习的一些深层次的表示,表明层由层结构,其中一个应该分析的最后一层的相关统计数据,并将它们聚集到具有高相关单位团体。

 

    1. 1×1卷积用于维数降低,以除去计算瓶颈。

 

    1. 由于从1×1卷积激活函数,它的加入还增加了非线性。

 

    1. 作者还引入了两个 辅助分类器 ,以鼓励在 分类器 的较低阶段进行区分,增加传播回来的梯度信号,并提供额外的正则化。所述 辅助网络 (被连接到辅助分类分支)在推理时间将被丢弃。

 

 

值得注意的是,“这种架构的主要特点是提高了网络内部计算资源的利用率。”

 

注意:

 

模块的名称(Stem和Inception)在其更高版本(即Inception-v4和Inception-ResNets)之前未用于此版本的Inception。我在这里添加了它们以便于比较。

 

:star:️什幺是小说?

 

使用密集模块/块构建网络。我们不是堆叠卷积层,而是堆叠模块或块,其中是卷积层。因此名称为Inception(参考由Leonardo DiCaprio主演的2010年科幻电影Inception《盗梦空间》)。

 

:memo:刊物

论文: Going Deeper with Convolutions
作者:Christian Szegedy、Wei Liu、Yangqing Jia、Pierre Sermanet、Scott Reed、Dragomir Anguelov、Dumitru Erhan、Vincent Vanhoucke、Andrew Rabinovich。谷歌、密歇根大学、北卡罗来纳大学
发表于:2015 年 IEEE 计算机视觉和模式识别会议 (CVPR)

5. Inception-v3 (2015)

 

 

Inception-v3 是 Inception-v1 的继承者,有 24M 参数。等等 Inception-v2 在哪里?别担心——它是 v3 的早期原型,因此它与 v3 非常相似但不常用。当作者提出 Inception-v2 时,他们对其进行了许多实验,并记录了一些成功的调整。Inception-v3 是包含这些调整的网络(调整优化器、损失函数以及向辅助网络中的辅助层添加批量归一化)

 

Inception-v2 和 Inception-v3 的动机是避免 代表性瓶颈 representational bottlenecks (这意味着大幅减少下一层的输入维度)并通过使用因子分解方法进行更有效的计算。

 

注意:

 

模块的名称(Stem,Inception-A,Inception-B等)直到其更高版本即Inception-v4和Inception-ResNets才用于此版本的Inception。我在这里添加了它们以便于比较。

 

:star:️什幺是小说?

 

 

    1. 最早使用批量归一化的设计者之一(为简单起见,上图中未反映)。

 

 

:sparkles:与之前的版本Inception-v1 相比有什幺改进?

 

 

    1. 将n × n卷积分解为非对称卷积:1× n和n ×1 卷积

 

    1. 将 5×5 卷积分解为两个 3×3 卷积操作

 

    1. 将 7×7 替换为一系列 3×3 的卷积

 

 

:memo:刊物

论文: Rethinking the Inception Architecture for Computer Vision
作者:Christian Szegedy、Vincent Vanhoucke、Sergey Ioffe、Jonathon Shlens、Zbigniew Wojna。谷歌,伦敦大学学院
发表于:2016 年 IEEE 计算机视觉和模式识别会议 (CVPR)

:books:实例

深度学习100例 – 卷积神经网络(Inception V3)识别手语 | 第13天

6. ResNet-50 (2015)

 

 

从过去的几个 CNN 中,我们只看到设计中的层数越来越多,并获得了更好的性能。但是“随着网络深度的增加,准确度会饱和(这可能不足为奇)然后迅速下降。” 微软研究院的人用 ResNet 解决了这个问题——使用跳过连接(又名快捷连接,残差),同时构建更深层次的模型。

 

ResNet 是批标准化的早期采用者之一(由 Ioffe 和 Szegedy 撰写的批规范论文于 2015 年提交给 ICML)。上图是 ResNet-50,有26M参数。

 

ResNets 的基本构建块是 conv 和 identity 块。因为它们看起来很像,你可以像这样简化 ResNet-50(不要为此引用我!): :star:️什幺是小说?

 

 

    1. 普及跳过连接(他们不是第一个使用跳过连接的人)。

 

    1. 在不影响模型泛化能力的情况下设计更深的 CNN(最多 152 层)

 

    1. 最早使用批量标准化的人之一。

 

 

:memo:刊物

论文: Deep Residual Learning for Image Recognition
作者:Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. Microsoft
发表于:2016 年 IEEE 计算机视觉和模式识别会议 (CVPR)

:books:实例

深度学习100例 -卷积神经网络(ResNet-50)鸟类识别 | 第8天

7. Xception (2016)

 

 

Xception 是对 Inception 的改编,其中 Inception 模块已替换为深度可分离卷积。它的参数数量也与 Inception-v1 ( 23M )大致相同。

首先,跨通道(或跨特征图)相关性由 1×1 卷积捕获。
因此,通过常规的 3×3 或 5×5 卷积捕获每个通道内的空间相关性。

将这个想法发挥到极致意味着对每个通道执行 1×1 ,然后对每个输出执行 3×3 。这与用深度可分离卷积替换 Inception 模块相同。

 

:star:️什幺是小说?

 

 

    1. 引入了完全基于深度可分离卷积层的 CNN。

 

 

:memo:刊物

论文: Xception: Deep Learning with Depthwise Separable Convolutions
作者:François Chollet. Google.
发表于:2017 IEEE 计算机视觉与模式识别会议 (CVPR)

8. Inception-v4 (2016)

 

Google 的再次发起了 Inception- v4, 43M 的参数。同样,这是对 Inception-v3 的改进。主要区别在于 Stem 组和 Inception-C 模块中的一些细微变化。作者还“为每个网格大小的 Inception 块做出了统一的选择”。他们还提到拥有“剩余连接(residual connections)可以显着提高训练速度”。

 

总而言之,请注意有人提到 Inception-v4 由于增加了模型尺寸而效果更好。

 

:sparkles:与之前的版本Inception-v3 相比有什幺改进?

 

 

    1. Stem 模块的变化。

 

    1. 添加更多 Inception 模块。

 

    1. Inception-v3 模块的统一选择,意味着对每个模块使用相同数量的过滤器。

 

 

:memo:刊物

论文: Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
作者:Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, Alex Alemi. Google.
发表于: 第三十届 AAAI 人工智能会议论文集

9. Inception-ResNet-V2 (2016)

 

在与Inception-v4相同的论文中,同一作者还介绍了Inception-ResNets – 一系列Inception-ResNet-v1和Inception-ResNet-v2。该系列的后一个成员有56M参数。

 

:sparkles:与之前的版本Inception-v3 相比有什幺改进?

 

 

    1. 将 Inception 模块转换为Residual Inception 块。

 

    1. 添加更多 Inception 模块。

 

    1. 在 Stem 模块之后添加了一种新型的 Inception 模块(Inception-A)。

 

 

:memo:刊物

论文: Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
作者:Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, Alex Alemi. Google
发表于: 第三十届 AAAI 人工智能会议论文集

:books:实例

深度学习100例-卷积神经网络(Inception-ResNet-v2)识别交通标志 | 第14天

10. ResNeXt-50 (2017)

 

如果您正在考虑 ResNet,是的,它们是相关的。ResNeXt-50 有25M参数(ResNet-50 有 25.5M)。ResNeXts 的不同之处在于在每个模块中添加了平行的塔/分支/路径,如上所示“总共 32 个塔(total 32 towers)”。

 

:star:️什幺是小说?

 

 

    1. 增加模块内并行塔的数量(“基数”)(我的意思是 Inception 网络已经对此进行了探索,只是在此处添加了这些塔)

 

 

:memo:刊物

论文: Aggregated Residual Transformations for Deep Neural Networks
作者:Saining Xie, Ross Girshick, Piotr Dollár, Zhuowen Tu, Kaiming He. University of California San Diego, Facebook Research
发表于:2017 IEEE 计算机视觉与模式识别会议 (CVPR)

附录:网络中的网络(2014)

 

回想一下,在卷积中,像素的值是过滤器中权重和当前滑动窗口的线性组合。作者提出,让我们拥有一个带有 1 个隐藏层的迷你神经网络,而不是这种线性组合。这就是他们创造的 Mlpconv。所以我们在这里处理的是(卷积神经)网络中的(简单的 1 个隐藏层)网络。

 

Mlpconv 的这个想法被比作 1×1 卷积,并成为 Inception 架构的主要特征。

 

:star:️什幺是小说?

 

 

    1. MLP 卷积层,1×1 卷积

 

    1. 全局平均池化(取每个特征图的平均值,并将结果向量送入 softmax 层)

 

 

:memo:刊物

论文:Network In Network
作者:Min Lin, Qiang Chen, Shuicheng Yan. National University of Singapore
arXiv 预印本,2013

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注