卷积相关

转自知乎 如何通俗易懂地解释卷积?(作者:1335) 以及 关于卷积本质的理解(作者:笨研)
前者为主体,后者做补充。


要理解卷积,就必须树立起来“瞬时行为持续性后果”这个概念。

举个例子。在一个时刻点,我以迅雷不及掩耳之势吃下了一个冰激凌,此时我的体重瞬间增加,之后随着消化吸收能量利用和排泄等生理活动的进行,我的体重又缓慢下降。如下图所示:

img

我们把这个函数记为 $f(t) $ 。我们把基础体重记为 $0 $,即没吃冰淇凌的时候体重是 $0 $,吃冰淇凌的效果过去了之后体重还是 $0 $。我们记每一个冰淇凌带来的瞬间体重增加为 $W_0 $ 。易知, $f(0)=W_0 $, $f(+\infty)=0 $ 。

如何理解“瞬时行为的持续性后果”呢?在这个例子里,吃冰激凌是瞬间完成的动作,是一个瞬时行为;吃完冰激凌之后的体重的缓慢下降是持续了一段时间的,因此是吃冰激凌这个瞬时行为的一个持续性后果。

此时,只有在 $0 $ 时刻的瞬间吃了一个冰淇凌,在 $0 $ 时刻的瞬间,吃冰淇凌的速度是 $\dfrac{1}{\delta t} = +\infty $,其中 $\delta t $ 表示极小的一个时间段;在其他时刻,吃冰淇凌的速度为 $0 $。因此,我们可以用一个冲击函数 $\delta(t) $ 来表示在这种情况下吃冰淇凌的速度。 $ f(t) $ 表示的是,当吃冰淇凌的速度为冲击函数 $ \delta(t) $ 的时候,对我的体重的影响。

接下来我们考虑,我吃冰淇凌的频率很低,且每次只在一个瞬间吃一个冰淇凌,每次都等到体重恢复到原来的程度了再吃一个,那么我的体重变化就是这样子的:

img

这种情况下,如果我想要知道每一个时刻的体重,只需要知道我吃每个冰淇凌的时刻 $ t_1,t_2,…t_5… $ ,再知道吃一个冰淇凌的效果 $ f(t) $ ,很容易就能求出来了。(自注1:在这里这个 \(f(t)\) 的理解很重要,它表示的是外部输入激励信号,系统的输出都只会以一定的规律“缓慢地”对输入做出响应;另一方面的意思是,当稳定的外部输入信号突然停止时,系统也只会按照自己内在的规律逐渐衰减到零(我们假定系统是稳定的)。)


接下来,我们考虑,如果我吃冰淇凌的速度恒定为 1(注意不是一瞬间吃一个了,不是冲击函数),且时时刻刻都在吃冰淇凌,那么,在我连续吃了 $ T $ 时间的冰淇凌之后,我的体重是多少呢?

这个问题是不是有点不好算了呢?之前的冰淇凌增加的体重还没降到0呢,现在的冰淇凌带来的体重就又来了,还一直持续,还是连续的,想想就头疼。这个时候,要引入两个个原理(自注2:合称为Boltzmann线性叠加原理)。

第一,线性原理。即,我在一瞬间吃冰淇凌的个数,会以线性的方式作用在冰淇凌对体重的影响函数 $ f(t) $ 上。我在一个瞬间吃了 \(1\) 个冰淇凌,之后我的体重变换是 $ f(t) $,如果我在一个瞬间吃了 $ 0.5 $ 个冰淇凌,之后我的体重变换是 $ 0.5f(t) $,如果 \(n\) 个呢,那就是 $ nf(t) $。

第二,累加原理。即,冰淇凌的作用效果是可以累加的。即,一段时间之前我吃了一个冰淇凌,经过了一段时间的体重下降,现在我的体重是 $ W_1$ 。现在我又吃了一个冰淇凌,体重又增加了。假设这个增加是可以累积的(直观上也是可以累积的),那么我的体重就会是 $ W_1+f(0)=W_1+W_0 $ 。这就是累加原理。

这时我们来试着计算,在从开始就不停地吃冰淇凌,且吃冰淇凌的速度恒定为 \(1\) 的情况下,在任意时刻 $ T $ 我的体重。由于我在不停地吃冰淇凌,所以我们先算在某时刻 $ \tau(\tau<T) $ 附近的一瞬间 \(d\tau\),我吃的冰淇凌对现在时刻 $ T $ 的我的体重的影响。因为,吃冰淇凌的速度是 $ 1 $ ,时间是 $ d\tau $ ,因此,在 $ d\tau $ 这一瞬间我吃的冰淇凌的个数是 $ 1\cdot d\tau=d\tau $ 。那么根据线性原理,在 $ d\tau $ 这一瞬间,我吃的冰淇凌对现在时刻 $ T $ 的我的体重的影响就是 $f(T-\tau)d\tau $。

自注3:在 \(d\tau\) 的一瞬间,吃冰激凌个数是 \(d\tau\),对体重的影响函数为 \(f(T-\tau)\),所以二者相乘。其中对于这个作用函数,联系 自注3 可以理解为:仅仅是针对 \(d\tau\) 这一时间点上的外界对系统输入的激励,在这里是 $ 1\cdot d\tau=d\tau $ ,那么系统对于该激励的响应,或者说该激励对系统的作用可以表示为一个函数,写为 \(f(T-\tau)\),相当于是对时间点为 \(0\) 时的平移,向 \(x\) 正半轴移动了 \((0-d\tau )\) 的距离。)

那么,根据累加原理,现在时刻 $ T $ 的我的体重就是:从 $ 0 $ 到 $ T $ 时刻我吃的所有冰淇凌对我的体重的影响的累加,即为:

\[W(T) = \int_{0}^{T}1\cdot f(T-\tau)d\tau \]

上面这个式子是不是有点像我们学过的卷积了呢?

我们上面的讨论基于我们吃冰淇凌的速度是常数 $ 1 $,那么,如果我吃冰淇凌的速度不是常数,而是一个连续变化的函数,如在 $t $ 时刻,吃冰淇凌的速度是 $ g(t) $。那么,在我连续吃了 $T $ 时间的冰淇凌之后,我的体重是多少呢?

同样,我们先算,在某时刻 $ \tau(\tau<T) $ 附近的一瞬间 $ d\tau $,我吃的冰淇凌对现在时刻 $ T $ 的我的体重的影响。因为,吃冰淇凌的速度是 $ g(\tau) $ ,时间是 $ d\tau $,因此,在 $ d\tau $ 这一瞬间吃的冰淇凌的个数是 $ g(\tau)*d\tau=g(\tau)d\tau $ 。那么根据线性原理,在 $ d\tau $ 这一瞬间,我吃的冰淇凌对现在时刻 $ T $ 的我的体重的影响就是 $ g(\tau) f(T-\tau)d\tau $。

再根据累加原理,现在时刻 \(T\) 的我的体重就是:从 $ 0 $ 到 $ T $ 时刻我吃的所有冰淇凌对我的体重的影响的累加,即为:

\[W(T) = \int_{0}^{T}g(\tau)f(T-\tau)d\tau \]

这就是大家平时接触到的卷积了!


因此,在我的理解下,我将卷积解释为:

一个对象(本文中的吃冰淇凌)对一个系统(本文中的体重)的作用效果满足线性原理、累加原理。该对象对这个系统连续作用了一段时间后,求该系统的状态。这个时候,一个卷积就可以求出来了!

在卷积 $ W(T) = \int_{0}^{T}g(\tau)f(T-\tau)d\tau $ 中,第一个函数 $ g(t) $ 表示这个对象对系统的作用速度。第二个函数 $ f(t)$ 表示当作用速度为单位冲击函数时这个对象对系统的作用效果。我们来验证一下第二个函数 $ f(t) $ 的意义。取我吃冰淇凌的速度为单位冲击函数 $ g(t)=\delta(t) $ ,则到时刻 $ T $ 我的体重就是:

\[W(T) = \int_{0}^{T}\delta(\tau)f(T-\tau)d\tau=f(T) \]

的的确确就是我吃冰淇凌的速度为单位冲击函数时,我的体重的变换。


最后,是一点说明。课本上标准的卷积其实长成下面这个样子,积分区间是 $ (-\infty,+\infty) $ 。

\[W(T) = \int_{-\infty}^{+\infty}g(\tau)f(T-\tau)d\tau \]

这个在我这个例子里也比较好理解,主要是考虑到时间的物理意义。

第一,理解当 $ t<0 $ 时,$ f(t)=0 $ 恒成立。这个比较容易理解,因为,我在 $ t=0 $ 时刻吃的冰淇凌,对吃冰淇凌之前也就是 $ t<0 $ 时刻的我的体重是没有影响的。所以,当 $ \tau>T $ 的时候, $ T-\tau<0 $ , $ f(T-\tau)=0 $ 。

第二,理解当 $ t<0 $ 时, $ g(t)=0 $ 恒成立。这个更好理解,就是时间非负性。我是从 $ t=0 $ 时刻开始吃冰淇凌的, $ g(t) $ 表示我在 $ t $ 时刻吃冰淇凌的速度。 $ t<0 $ 的时候,我还没吃冰淇凌呢 ,自然不存在吃冰淇凌的速度这个概念。

所以, $W(T) = \int_{-\infty}^{+\infty}g(\tau)f(T-\tau)d\tau = \int_{0}^{T}g(\tau)f(T-\tau)d\tau $

在其他的例子里,情况就不一样了。

1、某一个对象的作用域可能不是时间域,不必遵循时间上的因果律。因此,当 $ t<0 $ 时, $ f(t)\ne0 $ 。

2、某一个对象的作用域可能不是时间域,作用域存在负数的可能性。因此,当 $ t<0 $ 时, $ g(t)\ne0 $ 。

基于以上两点考虑,积分区间就是 $ (-\infty,+\infty) $ ,也就是课本上标准的卷积形式了!


数学家们最关心的是逻辑的严密性,他们玩的就是抽象,以自然科学里的哲学家自居,他们编写的数学教科书从来都只谈证明,只谈解空间,只谈严密性,任何具象的东西写进教科书好像都掉价似的,我严重怀疑他们写书的目的就是为了让我们看不懂:)。

对于大多数工科学生来说,我们千万别试图通过计算过程去理解它具体的物理意义,什么先反转、相乘、平移、叠加,忘掉它!数学家们天真地以为“卷积”这个名字能让我们更形象化地理解这一算法,其实除了把人搞晕外,一点意义都没有,因为物理世界中是没有任何一个系统能这样“卷”出来,它和现实世界没有一毛钱关系,纯粹是一种数学表达如果非要和物理世界联系起来,只能这样描述:当信号输入给系统后的某个时间里,我们看到的系统的输出中,输入信号早期的部分影响较小,而后期部分影响较大。

只要细心去找,这样的例子其实生活中是有很多的,譬如我家的燃气热水器。每次我洗澡的时候,打开开关,出来的总是凉水,要过一会才会逐渐转热,然后达到一个稳定的舒适温度。这个温度变化的过程大致就是一个卷积的过程。

请你记住:不要试图通过公式的计算过程来了理解卷积的物理意义。我们要做的是代入公式计算就好了。

然后,

你的世界将

面朝大海,春暖花开。

posted @ 2023-06-06 16:56  PeterRabbi  阅读(33)  评论(0)    收藏  举报