在传统的卷积层中,学习的滤波器在训练后保持固定。相反,我们引入了一个新的框架,动态过滤器网络,其中过滤器是根据输入动态生成的。结果表明,该体系结构是一个完整的体系结构,具有一定的灵活性和适应性,但没有过多的增加模型参数。通过这种方式可以学习各种各样的过滤操作,包括局部空间转换,也可以学习选择性模糊或自适应特征提取。此外,可以组合多个这样的层,例如在一个循环架构中。
我们的动态过滤模块由两个部分组成:过滤器生成网络和动态过滤层(见图1),过滤器生成网络根据网络s的输入动态生成特定于样本的过滤参数。请注意,这些在训练后是不固定的,就像常规的模型参数一样。动态过滤层然后将这些特定于示例的过滤器应用于输入。动态过滤模块的两个组件相对于模型参数都是可微分的,这样梯度就可以在整个网络中反向传播。过滤器可以是卷积的,但也可以有其他选项。特别地,我们提出了一种特殊的动态滤波层,即我们铸造的动态局部滤波层,它不仅是特定于样本的,而且是特定于位置的。在这种情况下,过滤器会随着位置和样本的不同而变化,从而允许对输入进行更复杂的操作。我们的框架可以同时了解空间和光度的变化,因为像素不是简单地移位,而是过滤器可能作用于整个邻域。
动态过滤模块由一个过滤生成网络和一个动态过滤层组成,前者生成以输入为条件的过滤器,后者将生成的过滤器应用于另一个输入。动态滤波器模块的两个组件都是可微分的。
模型参数是指在训练过程中预先初始化和只更新的层参数。所有的样本都是一样的。动态生成的参数是特定于示例的,并且是动态生成的,不需要初始化。过滤器生成网络输出动态生成的参数,而它自己的参数是模型参数的一部分。
过滤器生成网络可以用任何可微分的架构来实现,比如多层感知器或卷积网络。当使用图像作为过滤器生成网络的输入时,卷积网络尤其适用。
动态过滤层可以实例化为动态卷积层或动态本地过滤层。
当输入IA和IB都是图像时,实现过滤器生成网络的自然方法是使用卷积网络。
卷积编码器-解码器具有较大的接受域,这有助于模型学习数字在墙壁上弹跳时的弹跳行为并生成正确的滤波器。