深度学习——全维度动态卷积ODConv
ODConv(OMNI-DIMENSIONAL DYNAMIC CONVOLUTION)是一种关注了空域、输入通道、输出通道等维度上的动态性的卷积方法,因此被称为全维度动态卷积。
part1. 什么是动态卷积
动态卷积就是对卷积核进行线性加权
第一篇提出动态卷积的文章也是在SE之后,他提出目前的注意力机制模型主要都是在特征图上做工作,而动态卷积它对多个卷积核进行线性加权,加权值则与输入有关,这就使得动态卷积具有输入依赖性。
也就是说,对于不同的输入,我们使用不同的卷积核。之后对这些不同的卷积核,进行注意力加权。
看这组图片,这是CondConv: Conditionally Parameterized Convolutions for Efficient Inference的作者提出的。
在两种方式的对比下,发现他们的作用是一样的,但是图b中的方法计算量就像是NLnet重复计算的attention map一样,计算量太大,不适合把卷积放在这里去实现所谓的动态,所以作者提出了方法a,也就是condconv。
part2. 动态卷积和注意力机制有什么差别
动态卷积和注意力机制在神经网络中都是常用的技术,但具有不同的作用和目的。
动态卷积是指在卷积过程中,卷积核的权重不是固定的,而是可以根据输入数据的不同而动态调整。这样可以使卷积核能够更好地适应输入数据的特征,提高卷积网络的性能。
注意力机制是一种重要的神经网络模块,可以使神经网络在处理序列数据时能够更好地关注与当前任务相关的信息。注意力机制可以根据输入数据中的关键信息,给予不同的权重,在传递信息时更多地关注这些重要信息。
因此,动态卷积和注意力机制虽然都可以提高神经网络的性能,但其作用不同。动态卷积是加强了特征的适应性,而注意力机制则是更好地关注当前任务需要的信息。
part3.ODConv
ODConv的发现其实比较像CA和GC这种注意力机制,都是发现了已有的东西的不足(或许是忽略的什么,或许是发现某些计算不必要)从而提出的改进。
ODConv发现:现有的工作采用单个注意力,输入对于输出卷积核有相同的注意力值,但其他三个维度(关于空间大小、输入通道数和输出通道数) 卷积核的空间维度、输入通道维度以及输出通道维度)都被忽略了。 受此启发,作者提出了全维动态卷积(ODConv)
如下图所示
ODConv在任何卷积和内部采用并行策略,从四个维度来学习卷积核内部的注意力值,从而获得全维度的卷积核注意力值。
下图课一直观的看出,采用了SE的ODConv(b)和普通的动态卷积的对比。
也就是说,ODConv添加了卷积核的空间维度、输入通道维度以及输出通道维度的特征学习。
动态卷积和注意力机制虽然都可以提高神经网络的性能,但其作用不同。动态卷积是加强了特征的适应性,而注意力机制则是更好地关注当前任务需要的信息。