GitHub - XudongLinthu/context-gated-convolution: Implementation for Context-Gated Convolution
https://github.com/XudongLinthu/context-gated-convolution
目录
摘要
作为卷积神经网络(CNN)的基本构建块,卷积层被设计为提取局部模式,并且在本质上缺乏对全局上下文建模的能力。神经科学研究表明,神经元根据上下文动态修改功能的能力对于感知任务至关重要,这在大多数神经网络中被忽视。
提出了一种新的上下文门控卷积(CGC),以在全局上下文的指导下自适应地显式修改卷积层的权重。
- 传统卷积仅对局部图像块进行操作,从而合成局部特征。
- 全局特征交互方法通过合并全局信息来修改输入特征图。
首次尝试通过根据全局上下文调整卷积层的权重来将上下文感知引入卷积层。
- 提出了一种新的轻量级上下文门控卷积(CGC),以有效地生成卷积核的门,从而在全局上下文的指导下修改权重。
- 提出的CGC可以更好地捕获局部模式和合成辨别特征,并在包括图像分类、动作识别和机器翻译在内的各种任务上以可忽略的复杂度增量持续改进传统卷积的泛化。
方法
与根据上下文(例如特征表示的全局对应)修改输入特征的现有方法不同,尝试在全局上下文信息的指导下直接调制卷积核。
用全局上下文信息直接生成与W相同大小的门G是一种简单的方式,但假如使用线性层从上下文向量生成门,参数量是灾难性的:l×o×c×k1×k2。→ 受先前卷积核分解的启发,提出将门G分解为两个张量:G(1)∈Rc×k1×k2,G(2)∈Ro×k1 x k2,降低o*c的复杂性。
然而,直接生成这两个张量仍然不切实际。假设我们用两个线性层生成它们,参数的数量是l×(o+c)×k1×k2。→ 受深度方向可分离卷积的启发,分别对空间相互作用和信道方向相互作用进行建模,以进一步降低复杂性。
提出的CGC由三个模块组成:
- 上下文编码模块Context Encoding Module
- 信道交互模块Channel Interacting Module
- 门解码模块Gate Decoding Module
- 首先使用池化层将空间分辨率降低到h0×w0,将调整大小的特征映射提供给上下文编码模块。
- 对来自每个信道的所有空间位置的信息进行编码,并提取全局上下文的潜在表示。使用权重为E的线性层将每个通道中调整大小的特征图投影到大小为d的潜在向量。
- 通过信道交互将潜在表示投影到输出维度o的空间。
- 门解码从潜在表示C和投影表示O产生G(1)和G(2),以经由空间交互来构造门G。
- 通过逐元素乘法调整卷积层的权重,以合并丰富的上下文信息
复杂性:
可以通过非常有限的计算和参数增量,轻松地用我们提出的CGC替换传统卷积,并使卷积层能够适应全局上下文。