论文链接:https://arxiv.org/pdf/2206.03398.pdf 卷积神经网络(CNN)在深度学习中被广泛使用,由于其理想的模型性能,这使其成为了一个高效和有效的机器学习框架。然而,CNN架构必须针对特定的任务进行定制,以纳入诸如输入长度、分辨率和维度等考虑因素。在本文中,通过连续卷积神经网络(CCNN)克服了对问题特定的CNN架构的需求:一个配有连续卷积核的单一CNN架构,可以用于对任意分辨率、维度和长度的数据的任务,而不需要结构变化。连续卷积核对每一层的长距离依赖进行建模,消除了当前CNN架构中需要的降采样层和任务依赖深度。通过将相同的CCNN应用于一维序列(1D)和可视化数据(2D)上的任务,CCNN在所有考虑的任务上都表现得很有竞争力,并且经常超过目前最先进的技术。 卷积神经网络(CNN)是一类广泛用于机器学习应用的深度学习模型。其高性能和高效率,使得它们在多个跨顺序的应用中达到了最先进的水平。然而,一般来说,CNN和神经网络的一个重要限制是它们的架构必须针对特定的应用进行定制,以处理不同的数据长度、分辨率和维度。这反过来又导致了大量特定于任务的CNN架构。数据可以有许多不同的长度,例如,图像可以是32x32或1024x1024。标准的CNN是卷积核是局部的,这需要为每个长度定制一个精心选择的步长和池化层来捕获整个上下文的自定义架构。此外,许多类型的数据本质上是连续的,在不同的分辨率下具有相同的语义意义,例如,图像可以在任意分辨率下捕获,并具有相同的语义内容,音频可以在16kHz或44.1kHz任意采样,但人耳听起来仍然是相同的。然而,由于卷积核的离散性,传统的CNN被限制在分辨率上,不能跨分辨率使用。当考虑具有相同CNN的不同维数数据时,这两个问题进一步加剧,例如语言(1D)、视觉(2D)和高维数据(3D, 4D),因为不同维数具有不同的特征长度和分辨率,例如音频的一秒长度很容易达到16000,这与基准数据集中图像的大小形成强烈对比。
一、实现细节
(二)、通用CNN架构
本文的目标是构建一个单一的CNN架构,可以用于任意分辨率、长度和维度的数据。由于其卷积核的离散性质,标准的CNN需要特定任务的架构,这将核固定到特定的数据分辨率,这种操作使它们不适合建模全局上下文,因为构造大型离散卷积核需要大量的参数。因此,为了构建一个通用的CNN架构,开发一个分辨率不可知的卷积层是至关重要的,它能够以参数高效的方式建模远程依赖关系。
(三)、对连续参数化的需要
离散卷积核在每个核位置用
N
o
u
t
?
N
i
n
N_{out}*N_{in}
Nout??Nin?定义独立可学习权重。因此,大型卷积核需要大量的参数,而传统的CNN依赖于局部卷积核,结合任务相关的深度值和池化层来建模远程依赖。我们可以通过使用一个小的神经网络来构建连续的卷积核,该网络将位置映射到这些位置的核值上。这种方法将卷积核的大小与构造它所需的参数数量解耦,从而允许以参数高效的方式构造任意长的核。此外,这种参数化克服了标准核的离散性质,允许构造分辨率不可知的卷积核,它在任意分辨率的坐标上操作。因此,无论输入长度和分辨率如何,都可以使用相同的核生成器网络,从而可以使用相同的CNN。此外,只需改变输入坐标的维度,同样的核生成网络就可以构造序列D=1(图1b)、视觉D=2(图1c)和高维任务D 3(图1d)的卷积核。总之,连续卷积核的特性允许构建一个单一的CNN架构,可以跨数据长度、分辨率和维度使用。 上图为连续卷积的内核。一个连续的卷积核用一个小的神经网络
G
K
e
r
n
e
l
G_{Kernel}
GKernel?参数化,
G
K
e
r
n
e
l
G_{Kernel}
GKernel?接收坐标
c
i
∈
R
D
c_i\in R^D
ci?∈RD作为输入,输出该位置卷积核的值
K
(
c
i
)
=
G
K
e
r
n
e
l
(
c
i
)
R
N
i
n
?
N
o
u
t
图一
a
所示
K(c_i)=G_{Kernel}(c_i) R^{N_{in}*N_{out}} 图一a所示
K(ci?)=GKernel?(ci?)RNin??Nout?图一a所示。K的连续参数化允许卷积层(i)建模长期依赖,(ii)处理不规则采样数据,(iii)跨不同分辨率使用。此外,通过改变坐标
c
i
c_i
ci?的维数,可以使用相同的核生成器网络为顺序数据图一b所示、可视化数据图一b所示和高维数据(1d)构建卷积核。 本文贡献: 1、本文提供的连续CNN (CCNN):一个简单的,通用的CNN,可以跨数据分辨率和维度使用,不需要结构修改。CCNN在几个连续(1D)和视觉(2D)任务,以及不规则采样数据和测试时间分辨率变化的任务上匹配并经常超过最先进的技术。 2、本文对现有的连续CNN方法进行了若干改进,使其能够与当前最先进的方法相匹配 。本文的改进包括改变内核生成器网络的初始化,修改卷积层和CNN的整体结构。
(四)、连续内核卷积
连续核卷积通过使用小型神经网络
G
K
e
r
n
e
l
∈
R
D
=
R
N
i
n
?
N
o
u
t
G_{Kernel} \in R^D=R^{N_{in}*N_{out}}
GKernel?∈RD=RNin??Nout?作为核生成器网络,将卷积核参数化为连续函数。这个网络将坐标
c
i
∈
R
D
c_i\in R^D
ci?∈RD映射到该位置的卷积核的值:
G
K
e
r
n
e
l
(
c
i
)
R
N
i
n
?
N
o
u
t
{G_{Kernel}(c_i) R^{N_{in}*N_{out}}}
GKernel?(ci?)RNin??Nout?。通过传递一个K坐标的向量
[
c
i
]
i
∈
[
1
,
…
,
K
]
[c_i]_{i\in [1,…,K]}
[ci?]i∈[1,…,K]?通过
G
K
e
r
n
e
l
G_{Kernel}
GKernel?可以构造一个大小相等的卷积核K,即
K
=
[
G
K
e
r
n
e
l
(
c
i
)
]
i
∈
[
1
,
…
,
K
]
K = [G_{Kernel}(c_i)]_{i\in [1,…,K]}
K=[GKernel?(ci?)]i∈[1,…,K]?。随后,输入信号
x
:
R
D
=
R
N
i
n
x:R^D=R^{N_{in}}
x:RD=RNin?与生成的卷积核
K
:
∈
R
D
=
R
N
i
n
?
N
o
u
t
K:\in R^D=R^{N_{in}*N_{out}}
K:∈RD=RNin??Nout?进行卷积运算,构造出输出特征表示
y
:
R
D
=
R
N
o
u
t
y:R^D=R^{N_{out}}
y:RD=RNout?。即:
y
=
C
o
n
v
N
d
(
K
,
x
)
y = ConvNd (K, x)
y=ConvNd(K,x)。 对任意数据维度的一般操作: 通过改变输入坐标
c
i
c_i
ci?的维数D,可以使用核生成器网络
G
K
e
r
n
e
l
G_{Kernel}
GKernel?构造任意维数的卷积核。因此,同样的操作可以用于处理顺序D=1、可视化D=2和高维数据。 每一层的参数和计算高效的远程依赖建模: 可以使用核生成器网络
G
K
e
r
n
e
l
G_{Kernel}
GKernel?来构造和输入信号一样大的卷积核,以便在每一层建模远程依赖,即
K
=
[
G
K
e
r
n
e
l
(
c
i
)
]
i
∈
[
1
,
…
,
K
]
;
K
=
l
e
n
(
x
)
K = [G_{Kernel}(c_i)]_{i\in [1,…,K]};K=len(x)
K=[GKernel?(ci?)]i∈[1,…,K]?;K=len(x)。
G
K
e
r
n
e
l
G_{Kernel}
GKernel?中参数的数量与卷积核的长度无关,因此在参数固定的情况下,可以构造任意大小的卷积。利用卷积定理可以有效地计算具有大卷积核的卷积,该定理指出,时域的卷积等于频域的点积。 不规则的数据采样: 对于某些应用程序,输入x可能不在常规网格上,例如医疗数据。离散卷积核不适合这种应用,因为它们的值只在某些预设位置已知,而不适合任意坐标
c
i
c_i
ci?。相反,连续核在任何地方都被定义,因此可以原生处理不规则数据。 不同输入分辨率的等效响应: 如果输入信号x的分辨率发生变化,例如,最初观察到的音频是8KHz,现在观察到的音频是16KHz,与离散卷积核进行卷积将产生不同的响应,因为在每个分辨率下,内核将覆盖不同的输入子集。另一方面,连续内核是分辨率无关的,因此无论输入的分辨率如何,它都能够识别输入。当以不同的分辨率呈现一个输入时,例如,更高的分辨率,通过核生成器网络传递更细的坐标网格就足以构建相应分辨率的相同核。对于在分辨率r(1)和r(2)采样的信号x和连续卷积核K,两个分辨率下的卷积近似等于一个与分辨率变化成比例的因子: 超参数学习:连续核的一个有希望的性质是,它们可以学习参数,否则必须被视为超参数的CNN与离散核。例如,FlexConvs 将其卷积核定义为核生成器网络
G
k
e
r
n
e
l
G_{kernel}
Gkernel?和一个带有科学系参数μ,σ的裁剪高斯掩码
G
a
u
s
s
μ
,
σ
Gauss_{μ,σ}
Gaussμ,σ?的乘积,即
K
(
c
i
)
=
G
k
e
r
n
e
l
(
c
i
)
?
G
a
u
s
s
μ
,
σ
(
c
i
)
.
K(c_i)=G_{kernel}(c_i) ·Gauss_{μ,σ}(c_i).
K(ci?)=Gkernel?(ci?)?Gaussμ,σ?(ci?).。高斯掩码定义了核的大小,通过学习掩码,可以在训练时有效地学习卷积核的大小。在并行工作中,作者观察到类似的策略可以用来额外学习神经网络的深度和宽度。
二、The Continuous Convolutional Neural Network: Modelling Long Range Dependencies in ND
一种改进的连续核卷积残差块:最近的工作表明,通过改变使用的非线性和归一化层在块内的位置可以使得残差块可以得到强有力的改善。基于这些观察结果,作者修改了FlexNet架构,使用与S4网络类似的块组成的残差网络。CCNN架构如下图所示。
深度可分连续核卷积:可分离卷积早已被证明可以提高CNN的参数和计算效率。最近,它们的使用在CNN中比传统卷积有了改善,这是因为空间和通道维度的分离,降低了卷积的计算和参数复杂性。基于这些观察,作者构建了一个深度可分离版本的FlexConv ,其中一个通道卷积是由核生成器网络
G
K
e
r
n
e
l
:
R
D
=
R
N
i
n
G_{Kernel}:R^D=R^{N_{in}}
GKernel?:RD=RNin?生成,然后是一个从
N
i
n
N_{in}
Nin?到
N
o
u
t
N_{out}
Nout?的点卷积。这一变化允许在不增加网络参数和计算复杂度的情况下,构建更宽的CCNN,从30个隐藏通道到110个隐藏通道。 正确初始化内核生成器网络
G
K
e
r
n
e
l
G_{Kernel}
GKernel?:在之前的工作中,内核生成器网络没有为参数化卷积核而正确初始化。在初始化时,希望卷积层的输入和输出方差保持相等,以避免梯度爆炸或弥散,即
V
a
r
(
x
)
=
V
a
r
(
y
)
Var(x)=Var(y)
Var(x)=Var(y)。因此,卷积核被初始化为方差
V
a
r
(
K
)
=
g
a
i
n
2
/
(
通道核大小
)
Var(K)=gain^2 /(通道核大小)
Var(K)=gain2/(通道核大小),增益取决于所使用的非线性函数。然而,神经网络的初始化使输入的统一方差在输出处保持不变。因此,当用作核生成器网络时,标准的初始化方法会导致核存在统一的方差,即Var(K)=1。因此,使用神经网络作为核生成器网络的CNN经历了与通道核大小成正比的特征表示方差逐层增长。例如,CKCNNs和FlexNets在初始化时的日志顺序为
1
e
19
1e^{19}
1e19。这是不可取的,因为它会导致训练不稳定和较低的学习率。
三、实验验证
|