MSRA王井东详解ICCV 2017入选论文:通用卷积神经网络交错组卷积

简介: 7 月 17 日,微软亚洲研究院的一篇论文,《Interleaved Group Convolutions for Deep Neural Networks》入选计算机视觉领域顶级会议 ICCV 2017(International Conference on Computer Vision)。

7 月 17 日,微软亚洲研究院的一篇论文,《Interleaved Group Convolutions for Deep Neural Networks》入选计算机视觉领域顶级会议 ICCV 2017(International Conference on Computer Vision)。论文中提出了一种全新的通用卷积神经网络交错组卷积(Interleaved Group Convolution,简称 IGC)模块,解决了神经网络基本卷积单元中的冗余问题,可以在无损性能的前提下,缩减模型、提升计算速度,有助于深度网络在移动端的部署。微软亚洲研究院视觉计算组王井东研究员向机器之心详细解读了这篇论文中的研究工作。


微信图片_20211129100936.jpg

近年来,卷积神经网络凭借其强大的性能优势,在计算机视觉、自然语言处理等领域的应用得到了业界广泛的认可,并引发了一场研究热潮。目前,神经网络领域的研究基本上可以概括为两个方向,一是探索在测试数据集上如何有更好的表现,二是关注在实际应用中存在的难点。从实际的角度出发,由于深度神经网络受到大量矩阵运算的限制,往往需要海量存储及计算资源。削减神经网络中卷积单元的冗余是解决这个问题的重要研究之一,并分为空间(spatial)及通道(channel)两个方向。而微软亚洲研究院这篇论文的研究就从通道的角度出发,设计了一种全新的卷积冗余消除策略。

 

据王井东研究员介绍,这项研究的设计思路是来自于微软亚洲研究院去年提出的深度融合(Deep Fusion [1])概念,其本质是将不同分支的网络在中间层进行融合。他们在进一步研究中发现,一个标准的卷积也可以采用类似的多分支结构 [2],由此展开深入研究,研究出了较为简单的交错组卷积模块,即 IGC 模块。


微信图片_20211129100940.jpg

深度融合简单形式概念示意图

 

每个交错组卷积模块包括两个组卷积(group convolution)过程——第一次组卷积(primary group convolution)以及第二次组卷积(secondary group convolution)。组卷积曾被用于 AlexNet 中,将模型分布在两个 GPU 上以解决内存处理问题。用一个 32 通道的例子来解释一下组卷积:把 32 个输入通道平均分为 4 组,每组拥有 8 个通道,并分别对 4 组单独做卷积运算。这样的好处是参数较少可以提升计算速度,但是同时,由于每组卷积之间不存在交互,不同组的输出通道与输入通道并不相关。为了让输入通道与每一个输入通道实现关联,交错组卷积过程巧妙地引入了第二次组卷积,即第二次组卷积过程中,每组的输入通道均来自于第一次组卷积过程不同的组,达到交错互补的目的。

 

微信图片_20211129100943.jpg

交错组卷积过程

 

从消除卷积核冗余的角度看,一个组卷积等价于具有稀疏核的普通卷积,而交错组卷积,即两次组卷积则等价于两个稀疏核相乘的普通卷积。这两个稀疏矩阵相乘可以得到两两相关的稠密矩阵,是一个线性的过程。在网络模型大小及计算复杂度相同的条件下,相较于普通卷积,使用 IGC 模块的网络更宽,性能更优。

 

王井东研究员提到,研究刚开始的时候,他们并没有发现在通道上的相关工作,直到去年十月份,他们才看到领域内的一些研究成果 [3, 4],例如 channel-wise convolution,包括谷歌的 Xception(Extreme Inception)。事实上,Xception 模块可以看作交错组卷积的一个特例。如果第一次组卷积过程中,每组只有一个输出通道,那么就变成了特殊的组卷积,即 channel-wise convolution,第二次组卷积成为 1X1 的卷积,这与 Xception 相似;如果第一次组卷积过程里仅有一组,那么这个过程就变成了普通卷积,第二次组卷积过程则相当于分配给每个通过一个不同的权重。那么问题来了,极端情况下是否能带来最佳结果?研究团队也针对这个问题进行了探讨,并设计了相关实验,结果发现并不是这样。


微信图片_20211129100947.jpg

微信图片_20211129101217.jpg


通过实验结果可以发现,网络的性能会随着通道数及组数的变化而变化,最优性能配置点存在于两个极端情况之间。精确度会随着第一次组卷积分成的组数的增加(第二次组卷积分成的组数的减少)而提升,达到极值后开始降低。

 

除此之外,论文中的实验部分还根据 CIFAR-10、CIFAR-100、SVHN 标准数据测试集,针对参数数目、计算复杂度及分类精确度性能衡量指标,将包含普通卷积模块、和融合模块及 IGC 模块的五种网络进行了比较,结果如下:


微信图片_20211129100950.jpg

微信图片_20211129100957.jpg


可以看出,由于 IGC 模块增加了网络的宽度,其性能具有明显优势。例如,在 CIFAR-100 测试集上,当网络层数为 38 时,IGC-L4M8 和 IGC-L24M2 可以达到 67.33% 和 69.56% 的分类精确度,分别比 RegConv-W18 的效果高 2.3% 和 4.5%。而由于融合算法降低了网络宽度,导致参数并没有被充分利用,因此效果明显不佳。

 

网络宽度对性能起到了至关重要的作用,不过目前,如何平衡神经网络的深度与宽度这一问题在业内还没有定论。对此,王井东研究员发表了自己的见解。一方面,深度神经网络在存在一些优势的同时也会带来梯度消失等问题,ResNet 等优化算法也应运而生;另一方面,在解决落地问题时,非常深的网络结构的实际意义往往并没有想象中那么大,例如,在达到一定层次时,再增加网络的深度只会增加计算的复杂度却并没有带来相应的效果提升。「神经网络宽度的作用在本质上与核方法相似,就是把本来不能线性可分的部分变得线性可分。虽然现阶段在理论上还没有解决深度与宽度的权衡问题,不过利用有效的方法增加网络的宽度是非常值得探索的一个方向。」

 

另外,该研究团队在 ImageNet 上与 ResNet-18 进行了比较,在分类错误率方面存在优势。「我们的实验主要是想表达 IGC 模块与标准的卷积比较会带来什么样的好处,而不是在标准数据集上将其他所有算法刷下去。」王井东研究员解释道。


微信图片_20211129101007.jpg


在与其他世界前领先算法进行比较的过程中,IGC 在 CIFAR-10 数据集上表现最为出色,在 SVHN 上精确度可以达到第三(第一跟第二则是该研究团队另外一篇论文 [5] 所提出的算法的结果)。王井东研究员表示,如果采用 bottleneck 层,他们的结果在 CIFAR-100 上表现会更好一些。


微信图片_20211129101010.jpg


补充材料中,团队还设计了一个 Group-and-Point-wise Convolution(GPC)(类似于 deep roots [3]) 模块,通过实验与同样基于通道的 deep roots 算法进行了比较。Deep roots 本质上相当于一个组卷积加上一个 1X1 的卷积,某种意义上讲,Xception 也是 deep roots 的一个特例。结果显示,交错组卷积表现更好。


王井东研究员表示,解决冗余还有很多其他的角度,比如二值化网络等。IGC 模块可以与这些还存在上升空间的算法实现互补,进一步降低神经网络的冗余,在不失精度的情况下,实现缩减网络模型、降低计算量的目的。「非常有趣的是,在组卷积中,每组都在进行普通的卷积,这里也可以继续使用交错组卷积。在我们的交错组卷积模块中,未来也许会有第三次、第四次组卷积,这也是我们未来对这个算法进行改进的方向之一。」

 

自去年八月份产生这个想法后,微软亚洲研究院研究团队于九月开始着手推进这个项目。在经历了大约半年的时间后,团队在今年三月份正式向 ICCV 2017 提交论文及研究成果。在这期间,团队也曾在探索过程中遇到阻碍和瓶颈,走过一些弯路。据王井东研究员介绍,在受到深度融合的启发之后,团队把研究重点放在了沿着深度融合的思路推广普通卷积,开始尝试让组卷积(secondary group convolution)共享参数。不过,由于团队发现这个方式的效果提升并不明显,所以最终选择了不共享参数的研究道路。除此之外,由于现在很多平台并没有对组卷积有很好的支持,所以团队在实现方面也曾遇到了一些问题,并在实践层次做了相关工作,也寄希望于 cuDNN 将来有更好的支持。

 

深度学习技术的突破给计算机视觉领域带来了较大的冲击。「许多做计算机视觉的研究人员之前是很难想象到今天这个领域会得到如此多的关注。」王井东研究员表示,虽然深度学习的优越性在计算机视觉领域有所表现,但是距离很多算法落地还有很长的一段路要走。「做研究的人可以多从实际应用出发,让算法在产品中发挥价值,这也是我们的初心。」


[1] Jingdong Wang, Zhen Wei, Ting Zhang, Wenjun Zeng: Deeply-Fused Nets. CoRR abs/1605.07716 (2016).

 

[2] Ting Zhang, Guo-Jun Qi, Bin Xiao, Jingdong Wang: Interleaved Group Convolutions for Deep Neural Networks. CoRR abs/1707.02725 (2017).

 

[3] Yani Ioannou, Duncan P. Robertson, Roberto Cipolla, Antonio Criminisi: Deep Roots: Improving CNN Efficiency with Hierarchical Filter Groups. CoRR abs/1605.06489 (2016).

 

[4] François Chollet: Xception: Deep Learning with Depthwise Separable Convolutions. CoRR abs/1610.02357 (2016).

 

[5] Liming Zhao, Jingdong Wang, Xi Li, Zhuowen Tu, Wenjun Zeng: On the Connection of Deep Fusion to Ensembling. CoRR abs/1611.07718 (2016). 微信图片_20211129092521.png


相关文章
|
16天前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
39 3
|
7天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
10天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
13 2
|
10天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
16 1
|
13天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
52 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
14天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
9天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
11天前
|
机器学习/深度学习 算法 计算机视觉
深度学习与生活:如何利用卷积神经网络识别日常物品
【10月更文挑战第24天】在这篇文章中,我们将探索深度学习如何从理论走向实践,特别是卷积神经网络(CNN)在图像识别中的应用。通过一个简单的示例,我们将了解如何使用CNN来识别日常生活中的物体,如水果和家具。这不仅是对深度学习概念的一次直观体验,也是对技术如何融入日常生活的一次深刻反思。文章将引导读者思考技术背后的哲理,以及它如何影响我们的生活和思维方式。
|
28天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第7天】本文将深入探讨卷积神经网络(CNN)的基本原理,以及它如何在图像识别领域中大放异彩。我们将从CNN的核心组件出发,逐步解析其工作原理,并通过一个实际的代码示例,展示如何利用Python和深度学习框架实现一个简单的图像分类模型。文章旨在为初学者提供一个清晰的入门路径,同时为有经验的开发者提供一些深入理解的视角。

热门文章

最新文章