Convolution
反褶、平移、相乘、积分
卷积本质上是一种积分运算,它要衡量的是两个信号在各个时间点上的综合“影响”。相乘的操作确保了只有两个信号都非零且在同一时间点重合时,这种重叠才对最终结果有贡献。这种计算方式就很好地体现了物理系统中两个信号的相互作用,例如输入信号如何被系统响应“过滤”或“调制”。 我们希望将一个信号与另一个信号结合起来,生成一个新的信号。这种结合方式通过在时间轴上滑动一个信号,并计算它与另一个信号的重叠效果,体现了“卷绕”的概念。
它通过将一个函数(通常称为卷积核 (Kernel) 或滤波器 (Filter))在另一个函数(如图像、信号)上滑动,并在每个位置进行乘积求和,从而生成一个新的函数。卷积操作能够有效地提取特征、平滑数据或进行其他变换。
核心思想:加权求和与特征提取
卷积的本质是一种加权求和。卷积核定义了在每个局部区域内,如何对输入数据进行加权组合。通过设计不同的卷积核,我们可以实现不同的功能,例如:
- 特征提取: 边缘检测、纹理识别。
- 图像平滑: 去噪、模糊。
- 图像锐化: 增强图像细节。
基本定义
连续卷积 离散卷积
(x*h)[n]= \sum\limits_{k=-\infty }^{+\infty} x[k]h[n-k] \end{align}$$ ### 卷积的性质 1. **交换律** $f * g = g * f$ 无论是连续卷积还是离散卷积,都满足交换律。 2. **结合律** $f * (g * h) = (f * g) * h$ 卷积运算是结合的,这意味着多个卷积运算的顺序可以任意调整。 3. **分配律** $f * (g + h) = (f * g) + (f * h)$ 卷积对加法运算是分配的。 4. **平移不变性** 如果 $h (t) = f (t - t_0)$,则 $(h * g)(t) = (f * g)(t - t_0)$ ### 积分变换 #### 傅里叶变换 [[傅里叶变换\|傅里叶变换]] $$\begin{align} \mathscr{F}[f_{1}(x)*f_{2}(x)]&=F_{1}(\omega )F_{2}(\omega ) \end{align}$$ #### 拉普拉斯变换 $$F(s) = \mathscr{L}\{f(t)\} = \int_{0}^{\infty} f(t)e^{-st} \, dt$$ $$\begin{align} \mathscr{L}[x(t)*g(t)]&=\int_{0}^{\infty}\int_{0}^{t} x(\tau)g(t-\tau) \, d\tau \, e^{-st} dt \\ &=\int_{0}^{\infty}\int_{\tau}^{\infty} x(\tau)g(t-\tau) \, e^{-st} dt \, d\tau \\ &=\int_{0}^{\infty}\int_{0}^{\infty} x(\tau)g(u) \, e^{-s(u+\tau)} du \, d\tau \quad (t-\tau=u)\\ &=\int_{0}^{\infty}x(\tau)\, e^{-s\tau}d\tau\int_{0}^{\infty} g(u) \, e^{-su} du \\ &=X(s)G(s) \\ \end{align}$$ 卷积的 Laplace 变换就是 Laplace 变换后的乘积 #### z 变换 ### 自相关与互相关 **自相关**:是一个信号与其自身的卷积,用于测量信号的重复模式: $$\begin{align} R_f (t) = (f * f)(t) \end{align}$$ **互相关**:用于测量两个信号之间的相似性,定义为: $$\begin{align} (f * g)(t) = \int_{-\infty}^{\infty} f (\tau) g (\tau + t) d\tau \end{align}$$ ### 维纳-辛钦定理 维纳-辛钦定理指出,一个信号的自相关函数的傅里叶变换是其功率谱密度: $$\begin{align} S_{xx}(\omega) = \mathcal{F}\{R_x (t)\} \end{align}$$ ### 快速卷积算法 1. **快速傅里叶变换(FFT)**:卷积可以通过快速傅里叶变换(FFT)来高效计算: $$\begin{align} f * g = \mathcal{F}^{-1} \{\mathcal{F}\{f\} \cdot \mathcal{F}\{g\}\} \end{align}$$ 1. **分块卷积**:对于大规模数据,分块卷积通过将数据分块计算卷积来提高效率。 ### 卷积的应用 [[多维随机变量函数的分布\|多维随机变量函数的分布]] 如果 $X$ 和 $Y$ 是两个独立随机变量,其概率密度函数分别为 $f_X (x)$ 和 $f_Y (y)$,则它们和 $Z = X + Y$ 的概率密度函数 $f_Z (z)$ 是: $$\begin{align} f_Z (z) = (f_X * f_Y)(z) = \int_{-\infty}^{\infty} f_X (x) f_Y (z - x) dx \end{align}$$ 卷积在信号处理、图像处理、概率论、深度学习等领域有着广泛的应用。 在图像处理和计算机视觉中,卷积神经网络([[CNN\|CNN]])使用卷积层提取图像中的特征。可以讨论卷积的高效实现,如快速傅里叶变换(FFT)加速卷积计算,以及卷积在自适应滤波、模式识别中的应用。 卷积在最新研究领域中的应用,比如在医学图像分析、自然语言处理中的自注意力机制和卷积的结合等。 ### 一维卷积 对于一维信号 $f[n]$ 和卷积核 $h[n]$,它们的离散卷积 $y[n]$ 定义为: $$ y[n] = (f * h)[n] = \sum_{k=-\infty}^{\infty} f[k] h[n-k] $$ 或者等价地: $$ y[n] = (f * h)[n] = \sum_{k=-\infty}^{\infty} f[n-k] h[k] $$ ### 二维卷积 在图像处理中,我们通常处理二维图像。对于二维图像 $I[x, y]$ 和二维卷积核 $K[u, v]$,它们的离散卷积 $O[x, y]$ 定义为: $$ O[x, y] = (I * K)[x, y] = \sum_{u=-\infty}^{\infty} \sum_{v=-\infty}^{\infty} I[u, v] K[x-u, y-v] $$ 或者等价地(在[[卷积神经网络\|卷积神经网络]]中更常用,不翻转核): $$ O[x, y] = \sum_{u=-\infty}^{\infty} \sum_{v=-\infty}^{\infty} I[x+u, y+v] K[u, v] $$ ### 卷积核 (Kernel) / 滤波器 (Filter) 卷积核是一个小型的矩阵,它定义了卷积操作要提取的特征类型。不同的卷积核可以实现不同的图像处理效果: - **边缘检测核**: 如 Sobel、Prewitt 核,用于突出图像中的边缘。 $$ \begin{pmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{pmatrix} \quad \text{(Sobel X)} $$ - **平滑核**: 如[[高斯滤波\|高斯滤波]]核,用于模糊图像和去噪。 $$ \frac{1}{16} \begin{pmatrix} 1 & 2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 1 \end{pmatrix} \quad \text{(Gaussian Blur)} $$ - **锐化核**: 用于增强图像的细节。 $$ \begin{pmatrix} 0 & -1 & 0 \\ -1 & 5 & -1 \\ 0 & -1 & 0 \end{pmatrix} \quad \text{(Sharpen)} $$