数学中的卷积

参考:为什么需要卷积

从纯数学(尤其是代数和几何)的角度来看,卷积(Convolution)其实比物理意义更纯粹。它本质上是一种"受限的混合"或者说是"滑动求和。

代数视角:多项式乘法(最本源的解释)

如果你问一个代数学家卷积是什么,他会告诉你:卷积就是多项式乘法的系数计算规则。

两个多项式:

f ( x ) = a 0 + a 1 x + a 2 x 2 f(x) = a_0 + a_1x + a_2x^2 f(x)=a0+a1x+a2x2

g ( x ) = b 0 + b 1 x + b 2 x 2 g(x) = b_0 + b_1x + b_2x^2 g(x)=b0+b1x+b2x2

现在把它们乘起来: h ( x ) = f ( x ) ⋅ g ( x ) h(x) = f(x) \cdot g(x) h(x)=f(x)⋅g(x)。看看乘积中 x x x 的不同次幂的系数是怎么来的:

x 0 x^0 x0 的系数 :只有 a 0 b 0 a_0 b_0 a0b0。 x 1 x^1 x1 的系数 : a 0 b 1 + a 1 b 0 a_0 b_1 + a_1 b_0 a0b1+a1b0。 x 2 x^2 x2 的系数 : a 0 b 2 + a 1 b 1 + a 2 b 0 a_0 b_2 + a_1 b_1 + a_2 b_0 a0b2+a1b1+a2b0。(注意下标的和!)​ x k x^k xk 的系数 :所有满足下标 i + j = k i + j = k i+j=k 的 a i b j a_i b_j aibj 之和。

写成公式就是:

c k = ∑ i a i b k − i c_k = \sum_{i} a_i b_{k-i} ck=i∑aibk−i

卷积就是当我们把两个序列( a a a 和 b b b)看作多项式的系数时,它们乘积的新系数。

为什么是 k − i k-i k−i​ :因为指数相加要等于 k k k( x i ⋅ x j = x i + j = x k x^i \cdot x^j = x^{i+j} = x^k xi⋅xj=xi+j=xk),所以如果第一项是 i i i,第二项必然是 k − i k-i k−i。这就是"互补"的数学来源。

几何视角:翻转与滑动(Flip and Drag)

回到连续函数的定义:

( f ∗ g ) ( t ) = ∫ − ∞ ∞ f ( τ ) g ( t − τ ) d τ (f * g)(t) = \int_{-\infty}^{\infty} f(\tau) g(t - \tau) d\tau (f∗g)(t)=∫−∞∞f(τ)g(t−τ)dτ

如果不看物理意义,只看几何操作,这个积分描述了四个步骤:

  1. 换元(Re-parameterize) :把 f ( x ) f(x) f(x) 和 g ( x ) g(x) g(x) 放到同一个临时坐标轴 τ \tau τ 上,变成 f ( τ ) f(\tau) f(τ) 和 g ( τ ) g(\tau) g(τ)。
  2. 翻转(Flip/Reflect) : g ( − τ ) g(-\tau) g(−τ)。这就是把函数 g g g 绕着 y 轴做了一个镜像。
  3. 平移(Shift/Drag) : g ( t − τ ) g(t - \tau) g(t−τ)。其中的 t t t 是一个偏移量。随着 t t t 从 − ∞ -\infty −∞ 变到 + ∞ +\infty +∞,这个翻转后的 g g g 函数就在轴上从左向右滑动。
  4. 加权求和(Integrate) :在每一个 t t t 的位置,计算 f ( τ ) f(\tau) f(τ) 和移位后的 g g g 重叠部分的面积(乘积的积分)。

为什么要有"翻转"这个动作?

这其实是为了配合"平移"。

  • 在 g ( t − τ ) g(t - \tau) g(t−τ) 中,变量是 τ \tau τ。
  • τ \tau τ 前面有个负号,意味着相对于 τ \tau τ 轴, g g g 是反向的。
  • 如果不翻转,直接平移,那就是在这个轴上做相关性(Correlation)运算,而不是卷积。卷积的数学定义强制要求了这种"反向"的对称性。

再具体说说翻转这个操作:

任何系统对输入的反应并不是瞬间完成的,而是历史作用的积累。也就是说你现在感知到的信息除了当前输入会影响你外,之前的若干输入也还会影响你,只是这个影响会随着时间有衰减。假如现在是t时刻,你所受的影响除了当前的输入f(t)外,还受到前一时刻的输入f(t-1)影响,只不过t-1时刻的影响会衰减。我们假设衰减函数为 g ( t ) = 0.5 t g(t)=0.5^t g(t)=0.5t,那么t-1时刻的信号衰减为0.5*f(t-1)。

想象你对着一个山谷喊话,山谷会产生回声。

  • 你的声音是输入信号 x ( t ) x(t) x(t)。
  • 山谷的回声特性是系统的冲激响应 h ( t ) h(t) h(t)(比如:第1秒响,第2秒弱,第3秒消失)。

现在是 ​12:00 (当前时刻 t t t),我们要计算你此时此刻听到的总声音。

  1. 刚才(11:59:59)喊的声音
    因为它刚刚发出才 1 秒,所以你听到的是它对应回声的开头部分 ( h ( 1 ) h(1) h(1))。最新的输入 ,对应最新鲜的响应 ( h h h 的头部,即 t t t 小的部分)
  2. 很久前(11:59:00)喊的声音
    因为它已经发出了 60 秒,所以你听到的是它对应回声的尾巴部分 ( h ( 60 ) h(60) h(60))。最老的输入 ,对应最陈旧的响应 ( h h h 的尾部,即 t t t 大的部分)

如果在时间轴上画图:输入信号 x ( τ ) x(\tau) x(τ) 是按时间顺序排列的(旧 → \rightarrow → 新)。但它们对现在的贡献,是按 h h h 的逆序 排列的(尾巴 → \rightarrow → 头部)。

这就是为什么要​反转

为了把"过去的输入"和"它经过了多久后的响应"对齐,我们必须把响应函数 h ( τ ) h(\tau) h(τ) 在时间轴上翻转过来,变成 h ( − τ ) h(-\tau) h(−τ),然后平移到当前时刻 t t t,变成 h ( t − τ ) h(t-\tau) h(t−τ)。

卷积是一种运算,将一个函数与另一个函数进行翻转滑动相乘做积分。实际上就是对每个局部进行特征提取,最终形成一个新的有意义的表示。任何现象不是孤立存在的,而是与周围环境持续交互的结果,当下的状态也都受到历史的影响。万物互相关联,过去塑造现在。卷积大量应用在人工智能、信号处理、物理学等很多领域。

相关推荐
aWty_1 天前
实分析入门(2)-- 减法
数学·实变函数
深念Y2 天前
哈希与向量:计算机理解现实的两座桥梁
人工智能·数学·机器学习·向量·hash·哈希·空间
闻缺陷则喜何志丹2 天前
【高等数学 第九章】多元函数微分法及其应用
数学·高等数学·多元函数·微分
切糕师学AI3 天前
布隆过滤器(Bloom Filter)技术详解
数学·算法
databook4 天前
如何让多个动画“齐步走”?
python·数学·动效
深念Y4 天前
王者荣耀与英雄联盟数值设计对比:穿透、乘算与加算、增伤乘算更厉害,减伤加算更厉害
数学·算法·游戏·建模·游戏策划·moba·数值
Robot_Nav5 天前
数学之美——Reeds-Shepp 曲线与 Dubins 曲线
数学·曲线·dubins·reeds-shepps
Luhui Dev5 天前
如何画圆的切线?几何作图技巧
人工智能·数学·ai
databook8 天前
如何灵活设置公式中各个部分的颜色?
python·数学·动效