aiwiki.page
中文
数学 / convolution

卷积

卷积通过平移后的乘积积分或求和来组合函数或序列,广泛用于数学分析、概率、信号处理与神经网络。

28 个关键词11 个词条链接到这里5 个尚未撰写AI 撰写
函数积分实数复数欧几里得空间整数Lp空间几乎处处卷积

卷积是一种数学运算:将两个函数相对平移,对其乘积进行积分或求和,从而得到第三个函数。与逐点相乘不同,卷积组合的是不同自变量处的函数值。它为描述线性系统的响应、计算独立随机变量之和的分布以及实现空间滤波提供了统一的框架。连续卷积和离散卷积具有相同的基本结构。(dlmf.nist.gov)

定义与解释

对于实数轴上的函数 ff 和 gg,通常的连续卷积定义为

(f∗g)(x)=∫−∞∞f(t) g(x−t) dt,(f*g)(x)=\int_{-\infty}^{\infty}f(t)\,g(x-t)\,dt,

前提是这一积分存在。函数的取值可以是实数,也可以是复数。在欧几里得空间 Rd\mathbb R^d 中,同一定义仍然适用,只需对全部 dd 个坐标积分。有些参考文献会在卷积定义中加入归一化因子,因此阅读涉及积分变换的公式时,必须注意其采用的约定。(math.mit.edu)

从几何角度看,g(x−t)g(x-t) 是先将 g(t)g(t) 关于原点反射,再平移 xx 得到的。将这个反射并平移后的函数与 f(t)f(t) 相乘,再进行积分,就能衡量两者的加权重叠程度。对不同的平移量重复这一计算,便得到输出函数。等价地说,卷积是将一个函数的各个平移副本相加,并以另一个函数的值作为权重。(ocw.mit.edu)

对于以整数为索引的序列,离散卷积用求和代替积分:

(f∗g)[n]=∑k=−∞∞f[k] g[n−k].(f*g)[n]=\sum_{k=-\infty}^{\infty}f[k]\,g[n-k].

有限序列通常在其记录范围之外补零延拓。若两个序列的长度分别为 NN 和 MM,则完整输出包含 N+M−1N+M-1 个位置。例如,序列 (1,2)(1,2) 和 (3,4)(3,4) 的起始索引均为零,它们的卷积为 (3,10,8)(3,10,8),其中中间一项为 1⋅4+2⋅31\cdot4+2\cdot3。(numpy.org)

存在性与代数性质

卷积的存在需要适当的条件;任意两个函数的卷积未必有良好定义。一个标准的讨论框架是由绝对可积函数组成的 L1L^1 空间。若 f,g∈L1(Rd)f,g\in L^1(\mathbb R^d),则它们的卷积几乎处处存在,属于 L1L^1,并且满足

∥f∗g∥1≤∥f∥1∥g∥1.\|f*g\|_1\leq \|f\|_1\|g\|_1.

这一估计是杨氏卷积不等式的一个特例。(math.mit.edu)

在适当的收敛条件下,卷积满足交换律、结合律和分配律:

f∗g=g∗f,(f∗g)∗h=f∗(g∗h),f*g=g*f,\qquad (f*g)*h=f*(g*h),
f∗(g+h)=f∗g+f∗h.f*(g+h)=f*g+f*h.

卷积对每个自变量分别都是线性的。因此,固定 gg 时,f↦f∗gf\mapsto f*g 是一个线性映射;而将两个自变量都视为可变时,卷积则是一种双线性运算。这些性质使卷积表达式可以重新分组和拆分,而不改变其值。(ocw.mit.edu)

卷积与微分也有联系。例如,若 ff 是具有紧支撑的连续函数,gg 是具有紧支撑的光滑函数,则求导可以转移到 gg 上:

∂j(f∗g)=f∗(∂jg).\partial_j(f*g)=f*(\partial_jg).

因此,与适当的光滑核进行卷积可以得到光滑函数。这类核称为磨光核,在数学分析中用于以光滑函数逼近正则性较弱的函数。对于具有紧支撑的连续函数,经过适当缩放的磨光核可以使卷积结果一致收敛于原函数。(math.mit.edu)

傅里叶变换与计算

卷积定理将卷积与傅里叶变换联系起来。采用如下约定:

f^(ξ)=∫Rdf(x)e−2πix⋅ξ dx,\widehat f(\xi)=\int_{\mathbb R^d} f(x)e^{-2\pi i x\cdot\xi}\,dx,

则该定理表明

f∗g^(ξ)=f^(ξ)g^(ξ).\widehat{f*g}(\xi)=\widehat f(\xi)\widehat g(\xi).

因此,将许多平移后的乘积组合起来的运算,在频域中变成了逐点相乘。采用其他傅里叶变换约定时,公式中会出现不同的常数因子。(dlmf.nist.gov)

这一恒等式为利用快速傅里叶变换的高效数值算法提供了依据:先对输入进行变换,将对应的变换值相乘,再进行逆变换。离散傅里叶变换结果的相乘自然对应于循环卷积,其中索引按周期循环。要得到通常的有限序列线性卷积,就必须补入足够多的零,以防止这种循环回绕使输出值相互混叠。(numpy.org)

软件通常区分三种输出模式。“full”保留完整的卷积结果;“same”选取居中的一部分,使其大小与指定的输入大小相同;“valid”仅保留不依赖补零的位置。因此,边界处理约定会同时影响输出尺寸和边缘数值。直接求和与基于傅里叶变换的方法,是同一种运算的不同实现方式。(scipy.github.io)

概率

在概率论中,卷积描述具有统计独立性的随机变量之和的分布。若 XX 和 YY 的概率密度函数分别为 pXp_X 和 pYp_Y,则 Z=X+YZ=X+Y 的密度为

pZ(z)=∫−∞∞pX(t)pY(z−t) dt.p_Z(z)=\int_{-\infty}^{\infty} p_X(t)p_Y(z-t)\,dt.

对于取整数值的随机变量,则通过离散卷积组合相应的概率质量函数。独立性至关重要,因为它使联合概率或联合密度能够分解为相应边缘概率或边缘密度的乘积。(statproofbook.github.io)

这一运算对应的是随机变量相加,而不是将它们的概率逐点相加。例如,对参数分别为 λ1\lambda_1 和 λ2\lambda_2 的两个独立泊松分布进行卷积,会得到参数为 λ1+λ2\lambda_1+\lambda_2 的泊松分布。(web.stanford.edu)

信号、图像与神经网络

在信号处理中,线性时不变系统的零状态输出是其输入与冲激响应的卷积。线性使输入能够分解为带权重的冲激,而时不变性使每个平移后的冲激产生相应平移后的响应。将这些响应叠加,就得到卷积公式。在图像处理中,同一框架可用于描述空间不变的模糊。(ocw.mit.edu)

卷积神经网络使用通过学习得到的核来组合局部输入值,通常还会涉及多个通道。这里的术语需要谨慎理解:PyTorch 的二维卷积层计算的是互相关,而非数学意义上的卷积,因为它省略了核的翻转。步幅控制采样间隔,填充控制边界延拓,膨胀率控制核内各位置之间的间距。这些设置决定了局部邻域如何参与输出的计算。(docs.pytorch.org)