Eugenio Culurciello的神经网络结构解析(Part 2)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 我们的神经网络结构之旅来到了现代工业级应用中最常见的结构——Google的Inception系列模型以及微软的ResNet。

本文来源于Eugenio Culurciello's blog
作者: Eugenio Culurciello
Linkedin: https://www.linkedin.com/in/eugenioculurciello

翻译: 郭昕 (蚂蚁金服 – 人工智能部)

原文标题:Neural Network Architectures

接上文,感兴趣的童鞋可以翻到小天的上一篇文章《Eugenio Culurciello的神经网络结构解析(Part 1)》。此外,本篇将分享Eugenio Culurciello的深度学习课程(含视频&文档),感兴趣的小伙伴可以拉到文末查看学习。


我们的神经网络结构之旅来到了现代工业级应用中最常见的结构——Google的Inception系列模型以及微软的ResNet。

GoogLeNet及Inception系列模型
Google实验室的Christian Szegedy开始了一系列致力于降低深度学习模型的尝试(例如VGG)的计算压力,这一系列尝试的第一篇文章就是Going Deeper with Convolutions。
(https://arxiv.org/abs/1409.4842)

截止2014年秋天,深度学习模型在图片以及视频帧内容的分类里已经取得了极大进展,大部分对深度学习和神经网络的质疑也基本上偃旗息鼓了。鉴于这类技术取得的巨大成功,像Google这样的科技巨头开始探索这类模型结构在他们服务器集群上的高效以及大规模部署。

Christian思考了很多方法来降低计算压力,同时还能保持最好的分类效果;或者能够在同样的计算资源下,可以获得更好的图像处理效果。

他以及他在Google的组提出了Inception模型:

image.png

这个模型第一眼看起来,基本上是一个对1x1,3x3以及5x5卷积滤波器的并行归并,但是Inception模型一个最重要的直觉,是在于通过使用1x1卷积滤波器(NiN)来大大减少了在并行模块前的大量特征,这一思想一般我们称之为”bottleneck”, 关于这一思想,我们会在Bottleneck Layer这一章节来详细介绍。

GoogLeNet使用了一个不包含Inception模块的主干来作为初始层,然后使用了类似NiN的平均pooling以及softmax分类器的结构。这一模型相比于AlexNet以及VGG,也是属于使用了极少的可训练参数的模型之一,具体的细节可以参见我们的论文:https://arxiv.org/abs/1605.07678

Bottleneck Layer
受到NiN的模型设计的启发,Inception模型的Bottleneck Layer在每一层减少了使用的特征,这也减少了所需要的计算操作,所以在运行时所花费的时间能保持在一个较少的水平。在传输数据到计算量较大的卷基层之前,特征的数目被减少了大约4倍。这一设计大大减少了计算耗时,使得这一模型得到了成功的工业级应用。

下面让我们来看看Bottleneck Layer的设计细节。假设你有256维特征输入,256维特征输出,Inception层仅进行3x3的卷积运算,那么将要进行 256x256 x 3x3 的卷积操作(这个大约是589000多的MAC基础操作),这可能已经超过了我们所能提供的计算资源预算(假设对这一层计算,使用Google的服务器,我们需要在0.5毫秒内完成)。那么如果我们不是直接对这256维特征做直接的卷积计算,而是减少特征维度,比如减少到64维(256 / 4)。针对这个方式,我们需要 256 –> 64 的1x1 卷积,然后这64维特征进入Inception的全部并行分支进行计算,然后再通过 1x1的卷积操作来恢复256维的输出 64 –> 256,那么我们所要进行的全部操作数据可以计算如下:

λ 256x64 x 1x1 = 16000

λ 64x64 x 3x3 = 36000

λ 64x256 x 1x1 = 16000

这总计是大约70000的操作数量,相比我们之前接近600000的操作数量,我们获得了接近10倍的加速。

虽然我们进行了更少的操作,但是我们并没有在这一层损失什么泛化性能,实时上,Bottleneck Layer在ImageNet的实验中取得了非常好的结果,同时这一结构也被应用于ResNet等下一代架构中。

这一设计之所以会成功,主要的原因还是在于输入的数据特征是相互关联的,他们之间的冗余性可以通过1x1的卷积来去除并大致模拟他们的基本特性。而使用较少数量的特征经过真正的卷积操作之后,他们还能通过1x1的卷积来恢复出有意义的特征用于下一层的输入。

Inception V3(以及V2)
Christian以及他的团队是非常高效的研究者,在2015年2月,他们提出了批量归一化(Batch-normalized)版本的Inception模型,并命名为Inception V2 (https://arxiv.org/abs/1502.03167) 批归一化(batch normalization)通过计算每一层输出特征的均值以及标准差,来归一化这些输出值,这相当于对数据做了”白噪声化”的处理,这能够把所有神经网络输出层的数据限制在同样的范围内,同时保持均值为0。这一设计帮助神经网络在训练的过程中不需要关注如何对数据做平移等问题,而仅仅专注在如何更好的拟合特征,可以加速训练。

在2015年12月,他们又发表了一个新版本的Inception模型以及对应结构 (https://arxiv.org/abs/1512.00567) 。在这篇文章中,涉及到更多对原始GoogLeNet结构的解释,对更多设计的选择给出了详尽的解答。其中一些原创性的工作列举如下:

  1. 通过合理设计网络的深度和广度来最大化网络中的信息流;在每一层pooling之前,都需要增加特征映射数量
  2. 当深度增大的时候,相应的广度(即特征的维度)也需要相应增加
  3. 每一层广度的增加都能够增加更多的特征组合,然后用于下一层的作为输入
  4. 尽量使用3x3的卷积操作,因为5x5或者7x7的卷积操作都可以通过3x3卷积的级联来获得,具体可以见下图:

image.png

  1. 于是新的Inception模块就如下图所示:

image.png

  1. 滤波器也可以通过扁平化卷积(https://arxiv.org/abs/1412.5474) 来级联获得,从而组合出更为复杂的模块:

image.png

  1. Inception模块同样也可以使用Pooling操作来减少inception计算中的数据大小,这基本等同于在进行卷积操作的同时也进行简单的pooling操作:

image.png

此外,Inception还是使用一个pooling层加一个softmax来作为最终的分类器。

目录
相关文章
|
4天前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
18 5
|
6天前
|
SQL 安全 网络安全
网络安全的护城河:漏洞防御与加密技术的深度解析
【10月更文挑战第37天】在数字时代的浪潮中,网络安全成为守护个人隐私与企业资产的坚固堡垒。本文将深入探讨网络安全的两大核心要素——安全漏洞和加密技术,以及如何通过提升安全意识来强化这道防线。文章旨在揭示网络攻防战的复杂性,并引导读者构建更为稳固的安全体系。
17 1
|
15天前
|
SQL 安全 测试技术
网络安全的盾牌与剑——漏洞防御与加密技术解析
【10月更文挑战第28天】 在数字时代的浪潮中,网络空间安全成为我们不可忽视的战场。本文将深入探讨网络安全的核心问题,包括常见的网络安全漏洞、先进的加密技术以及提升个人和组织的安全意识。通过实际案例分析和代码示例,我们将揭示黑客如何利用漏洞进行攻击,展示如何使用加密技术保护数据,并强调培养网络安全意识的重要性。让我们一同揭开网络安全的神秘面纱,为打造更加坚固的数字防线做好准备。
35 3
|
23天前
|
人工智能
歌词结构的巧妙安排:写歌词的方法与技巧解析,妙笔生词AI智能写歌词软件
歌词创作是一门艺术,关键在于巧妙的结构安排。开头需迅速吸引听众,主体部分要坚实且富有逻辑,结尾则应留下深刻印象。《妙笔生词智能写歌词软件》提供多种 AI 功能,帮助创作者找到灵感,优化歌词结构,写出打动人心的作品。
RS-485网络中的标准端接与交流电端接应用解析
RS-485,作为一种广泛应用的差分信号传输标准,因其传输距离远、抗干扰能力强、支持多点通讯等优点,在工业自动化、智能建筑、交通运输等领域得到了广泛应用。在构建RS-485网络时,端接技术扮演着至关重要的角色,它直接影响到网络的信号完整性、稳定性和通信质量。
|
4天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
27 3
|
4天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
16 2
|
23天前
|
存储 安全 网络安全
网络安全的屏障与钥匙:漏洞防御与加密技术深度解析
【10月更文挑战第20天】在数字世界的迷宫中,网络安全是守护我们数据宝藏的坚固盾牌和锋利钥匙。本篇文章将带您穿梭于网络的缝隙之间,揭示那些潜藏的脆弱点—网络安全漏洞,同时探索如何通过现代加密技术加固我们的数字堡垒。从基本概念到实战策略,我们将一同揭开网络安全的神秘面纱,提升您的安全意识,保护个人信息不受侵犯。
51 25
|
18天前
|
边缘计算 自动驾驶 5G
|
12天前
|
SQL 安全 算法
网络安全的屏障与钥匙:漏洞防护与加密技术解析
【10月更文挑战第31天】在数字世界的海洋中,网络安全是航船的坚固屏障,而信息安全则是守护宝藏的金钥匙。本文将深入探讨网络安全的薄弱环节——漏洞,以及如何通过加密技术加固这道屏障。从常见网络漏洞的类型到最新的加密算法,我们不仅提供理论知识,还将分享实用的安全实践技巧,帮助读者构建起一道更加坚不可摧的防线。
22 1

热门文章

最新文章

推荐镜像

更多