CondConv: Conditionally Parameterized Convolutions for Efficient Inference
用于有效推断的条件参数化卷积
- 摘要
- 引言
- 相关工作
- 条件参数化卷积
- 结论
- 对比
文章与代码
摘要
卷积层是现代深度神经网络的基本构件之一。一个基本假设是,卷积核应该为数据集中的所有示例共享。我们提出了条件参数化卷积,它为每个例子学习专门的卷积核。用CondConv替换正常卷积使我们能够增加网络的大小和容量,同时保持高效的推断。我们证明,在分类和检测任务上,使用CondConv缩放网络可以改善几种现有卷积神经网络架构的性能和推断成本权衡。
引言
我们提出了条件参数化卷积,通过计算卷积核作为输入的函数来挑战静态卷积核的范式。特别地,我们将CondConv层中的卷积核参数化为n个专家(α1W1+)的线性组合。。。+αNWn)⊙x,其中α1,。。。,α是通过梯度下降学习的输入函数。为了有效地增加CondConv层的容量,模型开发人员可以增加专家的数量。这比增加卷积核本身的大小在计算上更有效率,因为卷积核被应用于输入中的许多不同位置,而专家对于每个输入只被组合一次。这允许模型开发人员增加模型容量和性能,同时保持高效的推理。
CondConv可以作为CNN体系结构中现有卷积层的替代。我们证明了用CondConv替换卷积层可以在ImageNet分类和COCO对象检测上提高几种CNN架构的模型容量和性能,同时保持高效的推理。在我们的分析中,我们发现CondConv层跨示例学习语义上有意义的关系来计算条件卷积核。
相关工作
条件计算。与CondConv类似,条件计算旨在增加模型容量,而不会按比例增加计算成本。在条件计算模型中,对于每个示例[3,8,5,2],这是通过仅激活整个网络的一部分来实现的。然而,条件计算模型通常很难训练,因为它们需要从单个例子中向不同的专家学习离散的路由决策。与这些方法不同,CondConv不需要实例的离散路由,因此可以通过梯度下降轻松优化。
**权重生成网络。**Ha等人[13]提出使用一个小网络为一个更大的网络生成权重。与CondConv不同,对于CNNs,这些权重对于数据集中的每个示例都是相同的。这实现了更大的权重分配,这实现了比原始网络更低的参数数量但更差的性能。在神经机器翻译中,Platanios等人[32]生成2个权重来在不同的语言对之间进行翻译,但是对每个语言对中的每个示例使用相同的权重。
多分支卷积网络。像Inception[40]和ResNext [48]这样的多分支架构已经在各种计算机视觉任务中显示出成功。在这些架构中,一个层由多个卷积分支组成,这些分支被聚合以计算最终输出。CondConv层在数学上等同于多分支卷积层,其中每个分支都是单个卷积,输出通过加权和进行聚合,但只需要计算一个卷积。
示例相关激活缩放。最近的一些工作提出根据输入有条件地调整神经网络的激活。挤压和激励网络[16]学习缩放每一层输出的激活。GaterNet [4]使用一个单独的网络为更大的主干网的过滤器选择二进制掩码。基于注意力的方法[28,1,44]基于学习到的注意力权重来缩放先前的层输入。缩放激活的动机与CondConv相似,但仅限于调制基础网络中的激活。
与输入相关的卷积层。在语言建模中,吴等人[46]使用依赖于输入的卷积核作为局部注意的一种形式。在视觉中,Brabandere等人[18]生成小的依赖于输入的卷积滤波器,以变换图像用于下一帧和立体预测。Dai等人[7]建议为每个示例学习不同的卷积偏移,而不是学习与输入相关的权重。最后,在最近的工作中,SplineNets [20]应用建模为一维B样条的输入相关卷积权重来实现连续的神经决策图。
条件参数化卷积
我们的CondConv层架构有n = 3个内核,而(b)混合了专家的方法。通过在输入上有条件地参数化卷积核,CondConv在数学上等价于混合专家方法,但只需要1个卷积。
在常规卷积层中,相同的卷积核用于所有输入示例。在CondConv层,卷积核是作为输入示例的函数来计算的(图1a)。具体来说,我们通过以下方式对CondConv中的卷积核进行参数化:
其中,每个αi= ri(x)是使用带有学习参数的路由函数计算的示例相关标量权重,n是专家数量,σ是激活函数。当我们调整卷积层以使用CondConv时,每个核Wi具有与原始卷积中的核相同的维数。
我们通常通过增加内核高度/宽度或输入/输出通道的数量来增加常规卷积层的容量。但是,卷积中的每个附加参数都需要与输入要素图中的像素数成比例的附加乘加,这可能很大。在CondConv层,在应用卷积之前,我们为每个示例计算一个卷积核,作为n个专家的线性组合。至关重要的是,每个卷积核只需要计算一次,但在输入图像的许多不同位置应用。这意味着,通过增加n,我们可以增加网络的容量,而推理成本只有很小的增加;每个额外的参数只需要一个额外的乘法-加法。
CondConv层在数学上相当于更昂贵的专家线性混合公式,其中每个专家对应于一个静态卷积(图1b):
因此,CondConv具有与n个专家的线性混合专家公式相同的能力,但是计算效率高,因为它只需要计算一个昂贵的卷积。这个公式让我们深入了解了CondConv的性质,并将其与先前关于条件计算和专家混合的工作联系起来。每个示例的路由函数对于CondConv的性能至关重要:如果学习的路由函数对于所有示例都是常数,则CondConv层的容量与静态卷积层相同。
我们希望设计一个计算效率高、能够有意义地区分输入示例并且易于解释的每示例路由函数。我们通过三个步骤从层输入计算示例相关路由权重αi= ri(x):全局平均池化、全连接层、Sigmoid激活。
其中R是学习的路由权重矩阵,将汇集的输入映射到n个专家权重。正常的卷积运算只在局部感受野上进行,因此我们的路由函数允许使用全局上下文来适应局部运算。
CondConv层可以用来代替网络中的任何卷积层。同样的方法可以很容易地扩展到其他线性函数,如深度卷积和全连接层中的函数。
在ImageNet验证中,与MobileNetV1前沿[38]相比,增加CondConvMobileNetV1模型每层的专家数量可以提高相对于推理成本的性能。每层拥有更多专家的模型实现了单调的更高精度。我们与{1,2,4,8,16,32}位宽度乘数为{0.25,0.50,0.75,1.0}的专家一起训练CondConv模型
结论
本文提出了条件参数化卷积。CondConv挑战了卷积核应该在所有输入示例中共享的假设。这为增加模型容量同时保持高效推理引入了一个新的方向:增加内核生成函数的大小和复杂性。由于核只计算一次,然后在输入中卷积,增加核生成函数的复杂性比增加额外的卷积或扩展现有的卷积要有效得多。CondConv还强调了在走向更大数据集的趋势中的一个重要研究问题,即如何最好地揭示、表示和利用示例之间的关系来提高模型性能。未来,我们希望利用更大的数据集、更复杂的内核生成函数和架构搜索来进一步探索CondConv的设计空间和局限性,以设计更好的基础架构。
对比
CondConv: Conditionally Parameterized Convolutions for Efficient Inference相关推荐
- CondConv: Conditionally Parameterized Convolutions for Efficient Inference论文解读
CondConv: Conditionally Parameterized Convolutions for Efficient Inference(CVPR2020) paper:https://l ...
- 【论文笔记】CondConv: Conditionally Parameterized Convolutions for Efficient Inference
论文 论文题目:CondConv: Conditionally Parameterized Convolutions for Efficient Inference 论文地址:https://arxi ...
- 【论文笔记】Resolution Adaptive Networks for Efficient Inference (CVPR2020)
Resolution Adaptive Networks for Efficient Inference Motivation Method Experiments 借鉴意义与思考 论文地址:http ...
- [论文阅读] EIE: Efficient Inference Engine on Compressed Neural Network
这是收录于ISCA16(International Symposium on Computer Architecture). 其是Deep Compression以及DSD的系列篇,其在Deep Co ...
- 韩松EIE:Efficient Inference Engine on Compressed Deep Neural Network论文详解
EIE为韩松博士在ISCA 2016上的论文.实现了压缩的稀疏神经网络的硬件加速.与其近似方法的ESE获得了FPGA2017的最佳论文. 目录 一.背景与介绍 1.1 Motivation 1.2 前 ...
- 韩松 EIE: Efficient Inference Engine on Compressed Deep Neural Network论文详解
EIE为韩松博士在ISCA 2016上的论文,实现了压缩的稀疏神经网络的硬件加速. 与其近似方法的ESE获得了FPGA2017的最佳论文. 背景与介绍 最新的DNN模型都是运算密集型和存储密集型,难以 ...
- 论文阅读——Quantizing deep convolutional networks for efficient inference: A whitepaper
Quantizing deep convolutional networks for efficient inference: A whitepaper Abstract 本文针对如何对卷积神经网络的 ...
- Implementing Pruning Convolutional Neural Networks for Resource Efficient Inference in Mxnet
一.代码分析: 参考pytorch代码对论文<Pruning Convolutional Neural Networks for Resource Efficient Inference> ...
- [文献阅读] Sparsity in Deep Learning: Pruning and growth for efficient inference and training in NN
文章目录 1. 前言 2. Overview of Sparsity in Deep Learning 2.1 Generalization 2.2 performance and model sto ...
最新文章
- Linux开发板怎么用madplay,Linux中madplay 音乐播放器移植步骤
- 可视化经验分享 | 赠书
- 邮件服务器一些A和MX类型恶意域名请求的解释
- Access数据库OleDbHelper
- 专科生文科生学计算机有前途吗,我是一个双非大专生,感觉前途一片迷茫
- python标准词匹配_python匹配目标词
- 将java.util.concurrent.BlockingQueue用作rx.Observable
- power bi连接mysql_一起学微软Power BI系列-使用技巧(6) 连接Sqlite数据库
- Redis学习总结(19)——Redis 5种集群方式对比
- 解决wine中文显示为方框的方法
- vijos p1404遭遇战
- Unity太空大战游戏-Socket网络通信教学示例
- 购买30万住房也能落户武汉
- Hadoop大数据通用处理平台
- 你知道哪些出身最奇特的程序员?
- vue父传子mounted问题
- 自己动手模仿 springmvc 写一个 mvc框架
- c 语言的电梯调度算法,电梯调度算法
- NucleoF401RE评估板USART2使用注意事项
- Outlook中撤回已发送的邮件