卷积运算(convolution)基础
Posted jeffrey-y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积运算(convolution)基础相关的知识,希望对你有一定的参考价值。
一、向量的卷积运算
给定两个n维向量α=(a0, a1, ..., an-1)T,β=(b0, b1, ..., bn-1)T,则α与β的卷积运算定义为:
α*β=(c0, c1, ..., c2n-2)T,其中
事实上,“卷积”的含义从矩阵αβT的表示即可以看出:不难发现,ck即为第k列副对角线元素之和。形象地讲,对α与β作卷积,就像是将由α与β的元素形成的下述矩阵“面”沿副对角线方向卷了起来得到的“一束”向量。
卷积的蛮力算法的时间复杂度为O(n2)。为提高算法效率,可以用插值法,这将在下一篇博文有关快速傅立叶变换的内容中予以介绍。
二、卷积应用
2.1 多项式乘法
卷积运算与多项式乘法是对应的。不难验证,设多项式f(x)=a0+a1x+a2x2+...+am-1xm-1, g(x)=b0+b1x+b2x2+...+bn-1xn-1,则f(x)g(x)得到的多项式的系数列向量就刚好是对f(x)与g(x)的系数列向量的卷积运算的结果。
2.2 信号平滑处理
由于噪声干扰,信号往往需要进行平滑处理。
设信号向量为α=(a0, a1, ..., am-1),权向量β=(b2k, b2k-1, ..., b0)=(w-k, ..., wk)。一个比较常用的权向量的例子是高斯滤波权值向量,其中
这里z用于归一化处理。
运用权向量β与信号向量α的卷积,我们可以实现为信号去噪,得到向量γ=(a‘0, a‘1, ..., a‘m-1),其中
不过,对于边界上的元素,由于缺项无法对齐,经过运算后可能存在误差。
以上是关于卷积运算(convolution)基础的主要内容,如果未能解决你的问题,请参考以下文章
深度学习基础一文读懂卷积神经网络(Convolutional Neural Networks, CNN)
PyTorch笔记 - Convolution卷积运算的原理
PyTorch笔记 - Convolution卷积运算的原理