try ai
科普
编辑
分享
反馈
  • 扩张卷积

扩张卷积

SciencePedia玻尔百科
核心要点
  • 扩张卷积通过插入间隙来增大卷积核的感受野,从而在堆叠时能够在不增加参数的情况下实现视野的指数级增长。
  • 一个关键的权衡是稀疏采样,这可能导致“棋盘格伪影”或错过微小特征,通常通过在不同层使用不同的扩张率来缓解。
  • 对于需要大范围上下文和高分辨率的模型,例如计算机视觉中的语义分割和使用TCN进行序列建模,它是一项基础技术。
  • 实际影响区域,即有效感受野(ERF),通常小于理论感受野,并遵循高斯分布。

引言

在卷积神经网络(CNN)中,一个根本性的挑战在于如何在不产生过高计算成本的情况下捕获广泛的上下文信息。标准卷积面临一个艰难的权衡:更宽的感受野需要更大的卷积核,而这会导致参数、内存使用和训练时间爆炸式增长。网络如何才能在不丢失细节或变得极其缓慢的情况下看到全局画面?本文探讨了一种优雅而强大的解决方案:扩张卷积。它通过解释该技术如何巧妙地免费扩展网络的视野来填补知识空白。在接下来的章节中,我们将首先剖析扩张卷积的“原理与机制”,从其基本公式到通过堆叠层实现的指数级增长,甚至其潜在的缺陷。随后,我们将在“应用与跨学科联系”中探讨其在各个领域的变革性影响,从计算机视觉中的语义分割到基因组学中生命密码的建模。

原理与机制

拓宽视野的巧妙技巧

想象一下,你是一名试图理解复杂场景的侦探。如果你用放大镜观察一个脚印,你会得到精美的细节,但会失去所有的背景信息。如果你退后一步看整个房间,你又会丢失精细的细节。在神经网络的世界里,标准的卷积操作就像那把放大镜。它将一个小型的滤波器,或称​​卷积核​​,应用于整个图像,识别如边缘、纹理或角点等局部模式。要看到更大的模式——比如一张脸而不仅仅是一个鼻子——你可能会直观地认为你需要一个更大的放大镜,即一个更大的卷积核。

但更大的卷积核代价高昂。一个 3×33 \times 33×3 的卷积核有9个参数需要学习。一个 7×77 \times 77×7 的卷积核有49个。一个 13×1313 \times 1313×13 的卷积核则有169个。随着卷积核的增大,参数数量爆炸式增长,使得网络更慢、更耗内存、更难训练。多年来,这是一个根本性的权衡:用更高的成本换取更广的视野。

​​扩张卷积​​应运而生,它是一个非常简单而优雅的想法,感觉有点像吃了一顿免费的午餐。与其让卷积核成为一个实心的权重块,我们何不拿一个小卷积核,把它的权重散开呢?想象一下,拿一个 3×33 \times 33×3 的卷积核,在它的行和列之间插入一个像素的间隙。这就是一个​​扩张率​​ ddd 为2的扩张卷积。这个卷积核仍然只有9个参数,但它现在作用于一个 5×55 \times 55×5 的区域。我们在没有增加任何一个需要学习的新参数的情况下,扩大了我们的视野。

这个新的、更宽的影响区域被称为​​感受野​​。对于一个大小为 kkk、扩张率为 ddd 的一维卷积核,其感受野的有效大小 RRR 由一个简单而优美的公式给出:

R=(k−1)d+1R = (k-1)d + 1R=(k−1)d+1

你可以自己推导出这个公式。一个大小为 kkk 的卷积核有 kkk 个“采样点”或权重。第一个和最后一个采样点之间的距离是 (k−1)(k-1)(k−1) 个间隔。在扩张率为 ddd 的情况下,每个间隔的长度为 ddd。所以总跨度是 (k−1)d(k-1)d(k−1)d。我们加1是为了算上最后一个采样点本身。对于一个卷积核大小 k=5k=5k=5、扩张率 d=3d=3d=3 的扩张卷积,其感受野跨度为 (5−1)×3+1=13(5-1) \times 3 + 1 = 13(5−1)×3+1=13 像素。要用标准的、非扩张的卷积获得相同的感受野,我们需要一个大小为13的卷积核。标准卷积的参数数量将是前者的 135=2.6\frac{13}{5} = 2.6513​=2.6 倍!这就是扩张的魔力:它将感受野大小与参数数量解耦。

堆叠以获得指数级视野

当我们把这些层一层层堆叠起来时,这个技巧的真正威力就显现出来了。如果一个标准卷积层给你的视野带来线性增长,那么堆叠扩张卷积可以给你带来指数级的增长。

让我们看看这是如何运作的。想象一个层的堆叠,每一层都有一个 3×33 \times 33×3 的卷积核 (k=3k=3k=3)。让第一层是标准卷积 (d1=1d_1=1d1​=1)。它的感受野是 (3−1)×1+1=3(3-1)\times 1 + 1 = 3(3−1)×1+1=3。现在,让第二层是一个扩张率为 d2=2d_2=2d2​=2 的扩张卷积。这一层的每个神经元观察第一层输出的一个 3×33 \times 33×3 的区域,但它的采样点相隔2个像素。关键的洞见在于,第一层中这些间隔开的点本身也有感受野。因为步幅为1,上一层中大小为 ddd 的一步对应于下一层感受野中心 ddd 个像素的位移。

一个包含 LLL 层的堆叠,其感受野的增长遵循一个简单的递推关系。第 ℓ\ellℓ 层之后的感受野,我们称之为 RℓR_\ellRℓ​,是前一层感受野 Rℓ−1R_{\ell-1}Rℓ−1​ 加上第 ℓ\ellℓ 层卷积核提供的新范围。这个新范围是 (k−1)dℓ(k-1)d_\ell(k−1)dℓ​。所以,我们有:

Rℓ=Rℓ−1+(k−1)dℓR_\ell = R_{\ell-1} + (k-1)d_\ellRℓ​=Rℓ−1​+(k−1)dℓ​

从单个像素开始 (R0=1R_0=1R0​=1),LLL 层之后的总感受野是:

RL=1+∑ℓ=1L(k−1)dℓR_L = 1 + \sum_{\ell=1}^{L} (k-1)d_\ellRL​=1+ℓ=1∑L​(k−1)dℓ​

现在,考虑一个三层的堆叠,其中 k=3k=3k=3,扩张率每步翻倍:d=1,2,4d=1, 2, 4d=1,2,4。

  • 第1层之后 (d=1d=1d=1): R1=1+(3−1)×1=3R_1 = 1 + (3-1)\times 1 = 3R1​=1+(3−1)×1=3。
  • 第2层之后 (d=2d=2d=2): R2=R1+(3−1)×2=3+4=7R_2 = R_1 + (3-1)\times 2 = 3 + 4 = 7R2​=R1​+(3−1)×2=3+4=7。(或使用求和公式:1+2(1+2)=71 + 2(1+2) = 71+2(1+2)=7)。
  • 第3层之后 (d=4d=4d=4): R3=R2+(3−1)×4=7+8=15R_3 = R_2 + (3-1)\times 4 = 7 + 8 = 15R3​=R2​+(3−1)×4=7+8=15。(或使用求和公式:1+2(1+2+4)=151 + 2(1+2+4) = 151+2(1+2+4)=15)。

感受野从3增长到7再到15!这种指数级增长使得一个只有几层的网络能够聚合来自输入非常大区域的信息,而使用标准卷积要达到同样的效果需要一个深得多的网络。这一原理正是像WaveNet这样用于生成逼真人类语音的开创性模型背后的引擎。

从更形式化的角度来看,任何卷积都可以表示为一个将输入向量转换为输出向量的大矩阵。对于标准卷积,这是一个沿对角线有重复卷积核权重带的​​托普利兹矩阵​​。扩张为这种结构引入了一种优美的稀疏性:非零对角线现在被扩张率隔开,中间是零带。这种稀疏矩阵用更少的连接为我们提供了同样广阔的视野。

从频域视角看

物理学和工程学中的每一个伟大思想通常都可以从多个角度来理解。到目前为止,我们一直从空间上将扩张卷积看作是散开一个卷积核。现在,让我们戴上信号处理工程师的帽子,从​​频域​​来看它。

一张图像可以被认为是一个信号,是不同频率正弦波的组合。卷积充当一个滤波器,放大某些频率并抑制其他频率。一个标准的、小的卷积核通常是一个​​低通滤波器​​;它对局部像素进行平均,从而平滑图像并去除高频噪声。

在这种情况下,扩张做了什么?时域/空域和频域之间存在着一种优美的对偶性。在一个域中扩展信号的操作会导致它在另一个域中被压缩。根据离散时间傅里叶变换(DTFT)的性质推导,在空域中将滤波器的脉冲响应扩张一个因子 ddd,会导致其频率响应被压缩同样的因子 ddd。如果我们原来的滤波器 hhh 的频率响应是 H(ω)H(\omega)H(ω),那么扩张后的滤波器 hdh_dhd​ 的频率响应是 H(dω)H(d\omega)H(dω)。

这意味着如果我们原来的滤波器阻断了高于截止频率 ωc\omega_cωc​ 的频率,扩张后的滤波器现在将阻断高于 ωc/d\omega_c/dωc​/d 的频率。扩张有效地降低了滤波器的截止频率,使其成为一个更强的低通滤波器。

这个视角不仅仅是学术上的好奇心;它具有深远的实际意义。CNN中一个常见的操作是​​步进​​(也称为下采样),我们只保留每 MMM 个输出来减小特征图的大小。著名的奈奎斯特-香农采样定理告诉我们,为了安全地将信号下采样一个因子 MMM 而不丢失信息(这种效应称为​​混叠​​),信号的最高频率必须小于 π/M\pi/Mπ/M。

由于扩张改变了输出的频率内容,它也改变了最大安全步幅。对于网络中一个扩张率为 rrr、原始带宽限制为 ωc\omega_cωc​ 的分支,新的带宽限制是 ωc/r\omega_c/rωc​/r。为避免混叠,我们必须选择一个步幅 MMM,使得 ωc/r≤π/M\omega_c/r \le \pi/Mωc​/r≤π/M。这种关系在设计像空洞空间金字塔池化(ASPP)这样的架构时至关重要,其中多个扩张卷积并行运行。为了安全地对输出进行下采样,必须根据扩张率最小的分支来选择步幅 MMM,因为该分支的频谱最宽,因此最容易受到混叠的影响。

稀疏凝视的风险

到目前为止,扩张卷积听起来好得几乎不像真的。和工程中的所有事物一样,这里也有权衡。这“免费的午餐”并非完全免费。我们付出的代价是​​稀疏性​​。通过将卷积核的采样点隔开,我们没有观察感受野中的每一个像素。我们是在一个网格上采样。

这可能导致两个相关的问题。第一个是我们可能干脆错过东西。想象一个假设情景,我们的扩张率是 d=8d=8d=8。我们的采样网格每8个像素有一个点。如果一个感兴趣的小物体,比如大小为 5×35 \times 35×3 像素,恰好完全落在我们采样网格的点之间,网络可能完全看不到它。一个风格化的模型显示,检测到这样一个物体的概率可能随着扩张率的平方下降,如 wxwyd2\frac{w_x w_y}{d^2}d2wx​wy​​。这是一个鲜明的提醒:大的感受野并不能保证你能看到里面的所有东西。

第二个,更隐蔽的问题被称为​​棋盘格伪影​​。如果我们堆叠几个具有相同扩张率 ddd 的层,采样网格在每一层都会被加强。网络只从一个固定的输入像素网格接收信息,而对中间的像素完全无视。这可能在输出中导致周期性的伪影,看起来像一个周期为 ddd 的棋盘。这是非常不希望看到的,因为网络实际上是在幻化出输入数据中不存在的结构。

幸运的是,我们可以反击。一个聪明的策略是在网络的训练目标中添加一个特殊的项——一个明确惩罚这些伪影的损失函数。如果一个伪影是一个每 ddd 个像素重复一次的模式,那么一个没有伪影的图像如果被移动几个像素(小于 ddd),它看起来应该大致相同。我们可以设计一个鼓励这种不变性的损失,有效地迫使网络“填补空白”并产生更平滑的输出。另一个简单但有效的经验法则是,避免选择一个过大的扩张率,以至于卷积核的有效跨度比特征图本身还宽,这会保证一些卷积核权重总是从零填充区域采样。

用高斯之眼看世界:有效感受野

我们还必须揭示最后一个更深层次的真相。我们一直在谈论感受野,就好像它是一个有硬边界的盒子。我们计算了它的大小,R=(k−1)d+1R = (k-1)d+1R=(k−1)d+1,并假设这个盒子里的每个像素对输出神经元的激活贡献相等。这就是​​理论感受野​​(TRF)。但这真的是网络“看”世界的方式吗?

答案,或许并不令人意外,是否定的。输入像素对输出神经元的影响不是均匀的。在实践中,影响在感受野的中心最强,并随着我们向边缘移动而衰减,其形状通常非常类似于高斯(钟形)曲线。TRF定义了这条曲线的支撑范围——即它非零的区域。但曲线的大部分质量集中在一个小得多的区域。这个集中影响的区域被称为​​有效感受野​​(ERF)。

我们实际上可以测量这个!如果我们将网络看作一个巨大的函数,我们可以计算最终特征图中心单个输出像素相对于输入图像中每个像素的梯度。这张梯度图精确地揭示了每个输入像素的微小变化对最终输出的影响有多大。我们发现的不是一个均匀的正方形,而是一个模糊的、中心突起的斑点。ERF本质上就是这个斑点的标准差或方差。

这是一个深刻的认识。一个网络可能有一个巨大的理论感受野,但如果它的有效感受野很小,它实际上并没有使用所有那些长程上下文。这就像拥有一个巨大的图书馆,但只读你面前书架上的书。理解ERF对于诊断和设计现代神经网络至关重要。

融会贯通:扩张的艺术

扩张卷积是一个基础工具,但有效地使用它是一门艺术,需要在其强大的好处和固有的风险之间取得平衡。

  • ​​优势​​:它以极小的参数预算为我们提供了巨大的感受野,并且当层堆叠时,这个感受野可以指数级增长。
  • ​​风险​​:它的稀疏采样可能会错过小特征并产生棋盘格伪影,尤其是在重复使用相同扩张率时。

这门艺术在于设计出既能利用其优势又能减轻其风险的架构。一个关键策略是​​改变扩张率​​。与其使用像 d=2,2,2d=2, 2, 2d=2,2,2 这样的恒定扩张,不如使用像 d=1,2,5d=1, 2, 5d=1,2,5 这样的序列,效果要好得多。这种“混合扩张”确保了连续的层在不同的、不对齐的网格上探测输入,有效地填补了空白,并提供了对场景更完整的视图。

也许最成功的策略体现在以​​空洞空间金字塔池化(ASPP)​​为特色的架构中。这个想法的简单性中蕴含着智慧:不要只选择一个扩张率;一次使用多个!一个ASPP模块将多个并行的扩张卷积应用于同一个输入特征图,每个都有不同的扩张率(例如,d=1,3,6d=1, 3, 6d=1,3,6)。一个分支像一把细齿梳子,捕捉局部细节。另一个具有较大扩张率的分支捕捉中程上下文。第三个具有更大扩张率的分支则接收全局场景。所有这些分支的输出然后被组合起来。

这使得网络能够同时在多个尺度上分析输入,从而对图像产生丰富、多分辨率的理解。正是通过将这些原理——权重间隔的简单几何技巧、频率的信号处理视角、对稀疏性陷阱的认识,以及多尺度探测的实践智慧——编织在一起,扩张卷积才成为现代深度学习工具箱中最强大和不可或缺的组件之一。

应用与跨学科联系

在理解了扩张卷积的工作原理——它们如何扩展网络视野而不失焦点——之后,我们现在可以踏上一段旅程,看看这个聪明的想法将我们带向何方。科学和工程中一个基本概念的美妙之处不仅在于其内在的优雅,还在于它解决问题、连接不同领域以及揭示世界模式中更深层次统一性的力量。扩张卷积正是这样一个概念,其应用既广泛又深刻。

看清全局:在计算机视觉中的应用

我们的探索始于卷积的天然家园:图像世界。在这里,挑战常常不仅是理解一个像素里有什么,还要理解这个像素在其周围环境中的意义。

想象一下你正在构建一台机器来识别照片中的物体。如果物体是一只猫,网络可能会通过其尖尖的耳朵、锐利的胡须和柔软的毛皮来识别它。这些是局部特征。但如果物体是一辆公共汽车呢?一个狭隘、短视的视角可能看到一块黄色的油漆、一块窗户玻璃或轮胎的曲线。这些东西单独来看,没有一个能明确地表示“公共汽车”。要理解这些部分组成了一辆公共汽车,网络必须同时看到它们。它需要一个足够大的感受野来囊括整个物体。

人们可以通过堆叠许多标准卷积层来实现这一点,但这在计算上是昂贵的。另一种方法是使用池化层来缩小图像,但这会丢弃宝贵的空间信息。扩张卷积提供了第三种,更优雅的途径。正如一个简单的思想实验所展示的,如果一个网络的感受野小于一个物体,它正确识别和定位该物体的能力从根本上就受到了限制。通过增加扩张率,我们可以扩展感受野以匹配物体的尺度,从而在不增加任何额外参数的情况下,显著提高模型的性能。

这种在保持细节的同时看清全局的能力在*语义分割*中至关重要,即为图像中的每一个像素分配一个类别标签的任务。考虑一下自动驾驶中识别道路上车道线的问题。车道线是一个又长又细的结构。为了正确地将图像底部的像素分类为左车道的一部分,网络需要看到这条线一直延伸到远方,并符合道路的透视。这需要一个巨大的垂直感受野。同时,因为输出必须是像素完美的地图,网络不能承受丢失空间分辨率。一个具有指数级增长扩张率的卷积堆叠是完成这项工作的完美工具。它可以将其感受野扩展到数百像素——覆盖车道的整个可见长度——而每一层都保持输入的全部分辨率,确保没有细节丢失。

然而,自然界并非由单一尺度的物体构成。一片森林里有高耸的树木、中等大小的灌木和微小的花朵。一个真正智能的系统必须能够同时处理所有这些尺度。现代分割架构,如DeepLab系列,正是通过使用一个类似于“空洞空间金字塔”的模块来做到这一点的。这个模块并行运行几个扩张卷积,每个都有不同的扩张率,然后将它们的输出组合起来。一个扩张率小的分支可能专注于花瓣的纹理,另一个扩张率中等的分支可能捕捉一个人的形状,而第三个扩张率大的分支可能利用整个场景的上下文来区分道路和河流。

但我们必须小心。如果我们通过使用大的扩张率使卷积核的探测点相距太远,我们可能会直接跳过一个小物体,比如医学扫描中的一个微小病变。这是一个真实存在的问题,被称为“网格伪影”。解决方案再次是一个优美思想的综合:将高扩张率的路径与低扩张率(或非扩张)的路径并行运行,并融合它们的结果。扩张路径提供全局上下文来识别大的器官,而标准路径提供所需的高分辨率细节来发现微小的病变。这种多尺度融合,通常通过跳跃连接实现,克服了任何单一尺度的局限性。为了进一步完善这些系统,工程师们甚至将扩张卷积与其他高效架构(如深度可分离卷积)相结合,构建出既准确又计算上可行的强大模型。

时间的节奏:在序列建模中的应用

现在让我们把目光从二维的空间转向一维的时间。原理保持不变,但舞台不同了。我们拥有的不再是像素,而是瞬间;不再是图像,而是序列——音频波形、文本句子或金融数据流。

几十年来,序列建模的主导工具是循环神经网络(RNN)。RNN一次处理序列的一个步骤,维持一个关于它所见内容的“记忆”。这很强大,但本质上是顺序的,并且可能难以捕捉非常长程的依赖关系。一个由因果、扩张卷积组成的堆叠提供了一个引人注目的替代方案。“因果”仅仅意味着在时间 ttt 的卷积只能看到来自过去(t,t−1,…t, t-1, \dotst,t−1,…)的输入。通过使用指数级扩张方案(1,2,4,8,…1, 2, 4, 8, \dots1,2,4,8,…),这样一个网络的感受野随着层数的增加而指数级增长。这意味着它可以用惊人少量的层数达到非常大的时间感受野——与展开的RNN的线性深度相比,其深度是对数级的。这种被称为时间卷积网络(TCN)的架构不仅高效,而且在训练期间是完全可并行的,因为每个时间步的输出都可以同时计算。

这个想法在音频和音乐世界中找到了它最直观的应用之一。一首音乐是在不同时间尺度上编织的节奏织锦:十六分音符的快速模式、四分音符节拍的稳定脉动、四小节乐句的循环和弦进行。为了对音乐建模,网络必须对所有这些周期性敏感。我们可以设计一个TCN,其层的扩张率被明确选择以匹配音乐中预期的节奏周期,以音频帧为单位进行测量。一个扩张率为(比如说)33的层可能会学着与一首180 BPM的快节奏朋克歌曲的节拍“共鸣”,而另一个扩张率为100的层则与一首轻松的60 BPM民谣对齐。扩张因子不再是一个抽象的超参数,而变成了时间节奏本身的一个可调滤波器。

同样的原则也适用于人类语言丰富、层次化的结构。在句子“The man who I saw yesterday on the train, holding a bouquet of flowers, smiled”(那个我昨天在火车上看到的、手持一束鲜花的男人笑了)中,动词“smiled”与主语“man”相连,尽管它们之间隔了很多词。为了理解这一点,模型需要捕捉长程依赖关系。虽然自然语言处理(NLP)领域目前由Transformer架构及其强大的自注意力机制主导,但扩张卷积提供了一个有效且高效的替代方案。自注意力允许每个词关注其他所有词(对于长度为 NNN 的序列,这是一个复杂度为 O(N2)O(N^2)O(N2) 的过程),而一堆扩张卷积则以 O(N)O(N)O(N) 的复杂度层次化地构建上下文。这两种方法代表了捕捉上下文的不同哲学,而前沿研究正在探索将卷积的局部-层次效率与注意力的全局范围相结合的混合模型。

从代码到生命:解开基因组之谜

一个真正基本概念的力量在于它能超越其原始领域。我们现在从图像和文本的数字世界,走向生命的蓝图:基因组。一条DNA链是一个序列,一个非常非常长的序列,由四个字母的字母表写成:A、C、G、T。生物学的一个核心问题是理解基因是如何被调控的——是什么告诉肝细胞中的一个基因开启,而同一个基因在脑细胞中保持关闭?

部分答案在于基因的*启动子——基因旁边的一小段DNA序列——与被称为增强子*的遥远调控元件之间的复杂相互作用,后者可能在数千甚至数万个碱基对之外。为了预测一个基因的活性,模型必须解决一个熟悉的难题:它必须同时处理局部启动子区域中精细的、碱基对级别的模式,并将其与来自DNA链上很远区域的信号联系起来。

这正是扩张卷积为解决此类问题而生的。一个使用堆叠扩张卷积的架构可以在输入碱基对和输出特征之间保持一对一的映射,保留了读取启动子基序所需的高分辨率信息。同时,其指数级增长的感受野允许与启动子相关的神经元整合来自20,000个碱基对之外的增强子的信号。与之竞争的架构无法实现这一双重目标。标准CNN的感受野太小。基于池化的CNN实现了大的感受野,但破坏了局部的、碱基级别的分辨率。扩张卷积达到了完美的平衡,提供了一种计算工具,它反映了基因组调控的长程而又精确的特性。

更深层次的统一:图上的卷积

我们这次旅程的最后一站将我们带到了一个更高的抽象层面。从根本上说,是什么卷积?它是从一个局部邻域聚合信息的行为。在图像网格上,“邻域”很容易定义:上、下、左、右和对角线。但对于像社交网络、分子或引文图这样更复杂的结构,没有网格,只有节点和它们的连接,那该怎么办呢?

这是图神经网络(GNN)的领域。我们可以将图像上的标准卷积重新想象为在网格图上操作的GNN,其中每个像素是一个连接到其相邻像素的节点。在这种观点下,标准卷积从你的1跳邻居那里聚合信息。那么,扩张卷积又是什么呢?它仅仅是从你的ddd-跳邻居——你朋友的朋友,或者你朋友的朋友的朋友,等等——那里聚合信息的行为。

这种强大的重构将扩张的概念从网格的刚性结构推广到任意图的自由形式世界。它揭示了扩张卷积不仅仅是处理图像或序列的一个技巧,而是一个更普遍原则的特定实例:通过在不同尺度或“跳数距离”上定义邻域来捕获上下文。这种统一的视角将我们所看到的实际应用——从物体检测到基因组学——与机器学习研究的前沿联系起来,展示了一个单一、优雅的思想如何向外扩散,在我们世界的无数个意想不到的角落创造结构和解决问题。