卷积
在泛函分析中,捲積(convolution),或译为疊積、積或旋積,是透過两个函数和生成第三个函数的一种数学算子,表徵函数与经过翻转和平移的的乘積函數所圍成的曲邊梯形的面積。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑動平均”的推廣。
定义
卷积是数学分析中一种重要的运算。设:和是实数上的两个可积函数,定义二者的卷积为如下特定形式的积分变换:
仍为可积函数,并且有着:
函数和,如果只支撑在之上,则积分界限可以截断为:
- 对于
对于两个得出复数值的多元实变函数,可以定义二者的卷积为如下形式的多重积分:
卷积有一个通用的工程上的符号约定[1]:
它必须被谨慎解释以避免混淆。例如:等价于,而却实际上等价于[2]。
历史
卷积运算的最早使用出现在达朗贝尔于1754年出版的《宇宙体系的几个要点研究》中对泰勒定理的推导之中[3]。还有西尔维斯特·拉克鲁瓦,将类型的表达式,用在他的1797年–1800年出版的著作《微分与级数论文》中[4]。此后不久,卷积运算出现在皮埃尔-西蒙·拉普拉斯、约瑟夫·傅里叶和西梅翁·泊松等人的著作中。这个运算以前有时叫做“Faltung”(德语中的折叠)、合成乘积、叠加积分或卡森积分[5]。
“卷积”这个术语早在1903年就出现了,然而其定义在早期使用中是相当生僻的[6][7],直到1950年代或1960年代之前都未曾广泛使用。
简介
如果和都是在Lp 空间内的勒贝格可积函数,则二者的卷积存在,并且在这种情况下也是可积的[8]。这是托內利定理的结论。对于在中的函数在离散卷积下,或更一般的对于在任何群的上的卷积,这也是成立的。同样的,如果而,这里的,则,并且其Lp 范数间有着不等式:
在的特殊情况下,这显示出是在卷积下的巴拿赫代数(并且如果和几乎处处非负则两边间等式成立)。
卷积与傅里叶变换有着密切的关系。例如两函数的傅里叶变换的乘积等于它们卷积后的傅里叶变换,利用此一性質,能簡化傅里叶分析中的许多问题。
由卷积得到的函数,一般要比和都光滑。特别当为具有紧支集的光滑函数,为局部可积时,它们的卷积也是光滑函数。利用这一性质,对于任意的可积函数,都可以简单地构造出一列逼近于的光滑函数列,这种方法称为函数的光滑化或正则化。
这里的叫做移位(displacement)或滞后(lag)。
对于單位脈衝函数和某个函数,二者得到的捲積就是本身,此被稱為衝激響應:
在连续时间线性非时变系统中,输出信号被描述为输入信号与冲激响应的卷积[9]:
两个独立的随机变量和,每个都有一个概率密度函数,二者之和的概率密度,是它们单独的密度函数的卷积:
图解
|
|
两个矩形脈衝波的捲積。其中函数首先对反射,接著平移,成為。那么重叠部份的面积就相当于处的卷积,其中橫坐標代表待变量以及新函數的自變量。 | |
矩形脈衝波和指數衰減脈衝波的捲積(後者可能出現於RC電路中),同樣地重疊部份面積就相當於處的捲積。注意到因為是對稱的,所以在這兩張圖中,反射並不會改變它的形狀。 |
周期卷积
这里的是任意参数。
任何可积分函数,都可以通过求函数的所有整数倍的平移的总和,从而制作出具有周期的周期函数 ,这叫做周期求和:
对于无周期函数与,其周期的周期求和分别是与,与的周期卷积,可以定义为与的常规卷积,或与的常规卷积,二者都等价于与的周期积分:
圆周卷积是周期卷积的特殊情况[11][12],其中函数和二者的非零部份,都限定在区间之内,此时的周期求和称为“周期延拓”。中函数可以通过取非负余数的模除运算表达为“圆周函数”:
而积分的界限可以缩简至函数的长度范围:
离散卷积
对于定义在整數上且得出复数值的函数和,离散卷积定义为[13]:
這裡一樣把函數定義域以外的值當成零,所以可以擴展函數到所有整數上(如果本來不是的話)。两个有限序列的卷积的定义,是将这些序列扩展成在整数集合上有限支撑的函数。在这些序列是两个多项式的系数之时,这两个多项式的普通乘积的系数,就是这两个序列的卷积。这叫做序列系数的柯西乘积。
當的支撐集為有限長度的之时,上式會變成有限求和:
多维离散卷积
类似于一维情况,使用星号表示卷积,而维度体现在星号的数量上,维卷积就写为个星号。下面是维信号的卷积的表示法:
对于离散值的信号,这个卷积可以直接如下这样计算:
结果的离散多维卷积所支撑的输出区域,基于两个输入信号所支撑的大小和区域来决定。
性质
卷积定理
卷积定理指出[15],在适当的条件下,两个函数(或信号)的卷积的傅里叶变换,是它们的傅里叶变换的逐点乘积。更一般的说,在一个域(比如时域)中的卷积等于在其他域(比如频域)逐点乘法。
设两个函数和,分别具有傅里叶变换和:
卷积定理声称:
应用逆傅里叶变换产生推论:
这里的算符指示逐点乘法。
这一定理对拉普拉斯变换、双边拉普拉斯变换、Z变换、梅林变换和Hartley变换等各种傅里叶变换的变体同样成立。在调和分析中还可以推广到在局部紧致的阿贝尔群上定义的傅里叶变换。
推广
卷积的概念还可以推广到数列、测度以及广义函数上去。函数是定義在上的可測函數(measurable function),与存在卷积并记作。如果函數不是定義在上,可以把函數定義域以外的值都規定成零,這樣就變成一個定義在上的函數。
若G是有某m 测度的群(例如豪斯多夫空间上哈尔测度下局部紧致的拓扑群),对于G上m-勒贝格可积的实数或复数函数f和g,可定义它们的卷积:
离散卷積的計算方法
計算卷積有三種主要的方法,分別為
- 直接計算(Direct Method)
- 快速傅立葉轉換(FFT)
- 分段卷積(sectioned convolution)
方法1是直接利用定義來計算卷積,而方法2和3都是用到了FFT來快速計算卷積。也有不需要用到FFT的作法,如使用數論轉換。
方法1:直接計算
- 作法:利用卷積的定義
- 若和皆為實數信號,則需要個乘法。
- 若和皆為更一般性的複數信號,不使用複數乘法的快速演算法,會需要個乘法;但若使用複數乘法的快速演算法,則可簡化至個乘法。
- 因此,使用定義直接計算卷積的複雜度為。
方法2:快速傅立葉轉換
- 概念:由於兩個離散信號在時域(time domain)做卷積相當於這兩個信號的離散傅立葉轉換在頻域(frequency domain)做相乘:
- ,可以看出在頻域的計算較簡單。
- 作法:因此這個方法即是先將信號從時域轉成頻域:
- ,於是
- ,最後再將頻域信號轉回時域,就完成了卷積的計算:
- 總共做了2次DFT和1次IDFT。
- 特別注意DFT和IDFT的點數要滿足。
- 由於DFT有快速演算法FFT,所以運算量為
- 假設點DFT的乘法量為,和為一般性的複數信號,並使用複數乘法的快速演算法,則共需要個乘法。
方法3:分段卷積
- 概念:將切成好幾段(section),每一段分別和做卷積後,再將結果相加。
- 作法:先將切成每段長度為的區段(),假設共切成S段:
- Section 1:
- Section 2:
- Section r:
- Section S:
- ,為各個section的和
- 。
- 因此,
- ,
- 每一小段作卷積則是採用方法2,先將時域信號轉到頻域相乘,再轉回時域:
- 。
- 總共只需要做點FFT 次,因為只需要做一次FFT。
- 假設點DFT的乘法量為,和為一般性的複數信號,並使用複數乘法的快速演算法,則共需要個乘法。
- 運算量:
- 運算複雜度:,和呈線性,較方法2小。
- 分為 Overlap-Add 和 Overlap-Save 兩種方法。
分段卷積: Overlap-Add
欲做的分段卷積分, 長度為 , 長度為 ,
Step 1: 將每 分成一段
Step 2: 再每段 點後面添加 個零,變成長度
Step 3: 把 添加 個零,變成長度 的
Step 4: 把每個 的小段和 做快速卷積,也就是,每小段會得到長度 的時域訊號
Step 5: 放置第 個小段的起點在位置 上,
Step 6: 會發現在每一段的後面 點有重疊,將所有點都相加起來,顧名思義 Overlap-Add,最後得到結果
舉例來說:
, 長度
, 長度
令
- x[n]和h[n]
令 切成三段,分別為 , 每段填 個零,並將 填零至長度
- 分段x[n]
將每一段做
- 分段運算結果
若將每小段擺在一起,可以注意到第一段的範圍是 ,第二段的範圍是 ,第三段的範圍是 ,三段的範圍是有重疊的
- 合併分段運算結果
最後將三小段加在一起,並將結果和未分段的卷積做比較,上圖是分段的結果,下圖是沒有分段並利用快速卷積所算出的結果,驗證兩者運算結果相同。
- 結果比較圖
分段卷積: Overlap-Save
欲做的分段卷積分, 長度為 , 長度為 ,
Step 1: 將 前面填 個零
Step 2: 第一段 , 從新的 中 取到 總共 點當做一段,因此每小段會重複取到前一小段的 點,取到新的一段全為零為止
Step 3: 把 添加 個零,變成長度 的
Step 4: 把每個 的小段和 做快速卷積,也就是,每小段會得到長度 的時域訊號
Step 5: 對於每個 小段,只會保留末端的 點,因此得名 Overlap-Save
Step 6: 將所有保留的點合再一起,得到最後結果
舉例來說:
, 長度
, 長度
令
- x[n]和h[n]
將 前面填 個零以後,按照 Step 2 的方式分段,可以看到每一段都重複上一段的 點
- 分段x[n]
再將每一段做 以後可以得到
- 分段運算結果
保留每一段末端的 點,擺在一起以後,可以注意到第一段的範圍是 ,第二段的範圍是 ,第三段的範圍是 ,第四段的範圍是 ,四段的範圍是沒有重疊的
- 合併分段運算結果
將結果和未分段的卷積做比較,下圖是分段的結果,上圖是沒有分段並利用快速卷積所算出的結果,驗證兩者運算結果相同。
- 結果比較圖
至於為什麼要把前面 丟掉?
以下以一例子來闡述:
, 長度 ,
, 長度 ,
第一條藍線代表 軸,而兩條藍線之間代表長度 ,是在做快速摺積時的週期
- x[n]和h[n]
當在做快速摺積時,是把訊號視為週期 ,在時域上為循環摺積分,
而在一開始前 點所得到的值,是 和 內積的值,
然而 這 個值應該要為零,以往在做快速摺積時長度為 時不會遇到這些問題,
而今天因為在做快速摺積時長度為 才會把這 點算進來,因此我們要丟棄這 點內積的結果
- 循環摺積
為了要丟棄這 點內積的結果,位移 點,並把位移以後內積合的值才算有效。
- 位移以後內積
應用時機
以上三種方法皆可用來計算卷積,其差別在於所需總體乘法量不同。基於運算量以及效率的考量,在計算卷積時,通常會選擇所需總體乘法量較少的方法。
以下根據和的長度()分成5類,並列出適合使用的方法:
- 為一非常小的整數 - 直接計算
- - 分段卷积
- - 快速傅里叶变换
- - 分段卷积
- 為一非常小的整數 - 直接計算
基本上,以上只是粗略的分類。在實際應用時,最好還是算出三種方法所需的總乘法量,再選擇其中最有效率的方法來計算卷積。
例子
Q1:當,適合用哪種方法計算卷積?
Ans:
- 方法1:所需乘法量為
- 方法2:,而2016點的DFT最少乘法數,所以總乘法量為
- 方法3:
- 若切成8塊(),則。選,則總乘法量為,比方法1和2少了很多。
- 但是若要找到最少的乘法量,必須依照以下步驟
- (1)先找出:解 :
- (2)由算出點數在附近的DFT所需最少的乘法量,選擇DFT的點數
- (3)最後由算出
- 因此,
- (1)由運算量對的偏微分為0而求出
- (2),所以選擇101點DFT附近點數乘法量最少的點數或。
- (3-1)當,總乘法量為。
- (3-2)當,總乘法量為。
- 由此可知,切成20塊會有較好的效率,而所需總乘法量為21480。
- 因此,當,所需總乘法量:分段卷積<快速傅立葉轉換<直接計算。故,此時選擇使用分段卷積來計算卷積最適合。
Q2:當,適合用哪種方法計算卷積?
Ans:
- 方法1:所需乘法量為
- 方法2:,選擇1026點DFT附近點數乘法量最少的點數,。
- 因此,所需乘法量為
- 方法3:
- (1)由運算量對的偏微分為0而求出
- (2),所以選擇7點DFT附近點數乘法量最少的點數或或。
- (3-1)當,總乘法量為。
- (3-2)當,總乘法量為。
- (3-3)當,總乘法量為。
- 由此可知,切成171塊會有較好的效率,而所需總乘法量為5476。
- 因此,當,所需總乘法量:分段卷積<直接計算<快速傅立葉轉換。故,此時選擇使用分段卷積來計算卷積最適合。
- 雖然當是個很小的正整數時,大致上適合使用直接計算。但實際上還是將3個方法所需的乘法量都算出來,才能知道用哪種方法可以達到最高的效率。
Q3:當,適合用哪種方法計算卷積?
Ans:
- 方法1:所需乘法量為
- 方法2:,選擇1026點DFT附近點數乘法量最少的點數,。
- 因此,所需乘法量為
- 方法3:
- (1)由運算量對的偏微分為0而求出
- (2),所以選擇1623點DFT附近點數乘法量最少的點數。
- (3)當,總乘法量為。
- 由此可知,此時切成一段,就跟方法2一樣,所需總乘法量為44232。
- 因此,當,所需總乘法量:快速傅立葉轉換 = 分段卷積<直接計算。故,此時選擇使用分段卷積來計算卷積最適合。
应用
卷积在科学、工程和数学上都有很多应用:
引用
- Smith, Stephen W. . 1. California Technical Publishing. 1997 [22 April 2016]. ISBN 0-9660176-3-3. (原始内容存档于2023-06-26).
- Irwin, J. David. . 1. Boca Raton, FL: CRC Press. 1997: 75. ISBN 0-8493-8343-9.
- Dominguez-Torres, p 2
- on page 505 of his book entitled Treatise on differences and series, which is the last of 3 volumes of the encyclopedic series: Traité du calcul différentiel et du calcul intégral, Chez Courcier, Paris, 1797–1800. Dominguez-Torres, p 4
- R. N. Bracewell, , W. T. Sullivan (编), , Cambridge University Press: 172, 2005, ISBN 978-0-521-61602-7
- John Hilton Grace and Alfred Young, , Cambridge University Press: 40, 1903
- Leonard Eugene Dickson, , J. Wiley: 85, 1914
- (Stein & Weiss 1971,Theorem 1.3)
- Crutchfield, Steve, , Johns Hopkins University, October 12, 2010 [November 21, 2010], (原始内容存档于2013-09-11)
- Jeruchim, Michel C.; Balaban, Philip; Shanmugan, K. Sam. 2nd. New York: Kluwer Academic Publishers. October 2000: 73–74. ISBN 0-30-646267-2.
- Udayashankara, V. . India: Prentice-Hall. June 2010: 189. ISBN 978-8-12-034049-7.
- Priemer, Roland. . Advanced Series in Electrical and Computer Engineering 6. Teaneck,N.J.: World Scientific Pub Co Inc. July 1991: 286–289 [2023-10-26]. ISBN 9971-50-919-9. (原始内容存档于2023-10-11).
- Damelin & Miller 2011,第219頁
- Weisstein, Eric W. . mathworld.wolfram.com. [2021-09-22]. (原始内容存档于2002-01-14) (英语).
- Weisstein, Eric W. . [2023-10-23]. (原始内容存档于2000-07-11).
- Zhang, Yingjie; Soon, Hong Geok; Ye, Dongsen; Fuh, Jerry Ying Hsi; Zhu, Kunpeng. . IEEE Transactions on Industrial Informatics. September 2020, 16 (9): 5769–5779 [2023-10-24]. ISSN 1941-0050. S2CID 213010088. doi:10.1109/TII.2019.2956078. (原始内容存档于2023-07-31).
- Chervyakov, N.I.; Lyakhov, P.A.; Deryabin, M.A.; Nagornov, N.N.; Valueva, M.V.; Valuev, G.V. . Neurocomputing. September 2020, 407: 439–453 [2023-10-24]. S2CID 219470398. doi:10.1016/j.neucom.2020.04.018. (原始内容存档于2023-06-29) (英语).
Convolutional neural networks represent deep learning architectures that are currently used in a wide range of applications, including computer vision, speech recognition, time series analysis in finance, and many others.
- Atlas, Homma, and Marks. (PDF). Neural Information Processing Systems (NIPS 1987). (原始内容存档 (PDF)于2021-04-14).
延伸阅读
- Bracewell, R., 2nd, McGraw–Hill, 1986, ISBN 0-07-116043-4.
- Damelin, S.; Miller, W., , Cambridge University Press, 2011, ISBN 978-1107601048
- Diggle, P. J., , Journal of the Royal Statistical Society, Series C, 1985, 34 (2): 138–147, JSTOR 2347366, S2CID 116746157, doi:10.2307/2347366
- Dominguez-Torres, Alejandro (Nov 2, 2010). "Origin and history of convolution". 41 pgs. http://www.slideshare.net/Alexdfar/origin-adn-history-of-convolution (页面存档备份,存于). Cranfield, Bedford MK43 OAL, UK. Retrieved Mar 13, 2013.
- Ghasemi, S. Hooman; Nowak, Andrzej S., , Structural Engineering and Mechanics, 2017, 62 (3): 365–372, doi:10.12989/sem.2017.62.3.365
- Grinshpan, A. Z., , Advances in Applied Mathematics, 2017, 82 (1): 102–119, doi:10.1016/j.aam.2016.08.001
- Hewitt, Edwin; Ross, Kenneth A., , Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of Mathematical Sciences] 115 2nd, Berlin, New York: Springer-Verlag, 1979, ISBN 978-3-540-09434-0, MR 0551496.
- Hewitt, Edwin; Ross, Kenneth A., , Die Grundlehren der mathematischen Wissenschaften, Band 152, Berlin, New York: Springer-Verlag, 1970, MR 0262773.
- Hörmander, L., , Grundl. Math. Wissenschaft. 256, Springer, 1983, ISBN 3-540-12104-8, MR 0717035, doi:10.1007/978-3-642-96750-4.
- Kassel, Christian, , Graduate Texts in Mathematics 155, Berlin, New York: Springer-Verlag, 1995, ISBN 978-0-387-94370-1, MR 1321145, doi:10.1007/978-1-4612-0783-2 .
- Knuth, Donald, 3rd., Reading, Massachusetts: Addison–Wesley, 1997, ISBN 0-201-89684-2.
- Template:Narici Beckenstein Topological Vector Spaces
- Reed, Michael; Simon, Barry, , New York-London: Academic Press Harcourt Brace Jovanovich, Publishers: xv+361, 1975, ISBN 0-12-585002-6, MR 0493420
- Rudin, Walter, , Interscience Tracts in Pure and Applied Mathematics 12, New York–London: Interscience Publishers, 1962, ISBN 0-471-52364-X, MR 0152834.
- Template:Schaefer Wolff Topological Vector Spaces
- Stein, Elias; Weiss, Guido, , Princeton University Press, 1971, ISBN 0-691-08078-X .
- Sobolev, V.I., , Hazewinkel, Michiel (编), , Springer, 2001, ISBN 978-1-55608-010-4.
- Strichartz, R., , CRC Press, 1994, ISBN 0-8493-8273-4.
- Titchmarsh, E, 2nd, New York, N.Y.: Chelsea Pub. Co., 19481986, ISBN 978-0-8284-0324-5.
- Template:Trèves François Topological vector spaces, distributions and kernels
- Uludag, A. M., , J. Math. Anal. Appl., 1998, 227 (2): 335–358, doi:10.1006/jmaa.1998.6091
- von zur Gathen, J.; Gerhard, J ., , Cambridge University Press, 2003, ISBN 0-521-82646-2.
- Oppenheim, Alan V.; Schafer, Ronald W.; Buck, John R. 2nd. Upper Saddle River,N.J.: Prentice Hall. 1999: 548, 571. ISBN 0-13-754920-2.
- McGillem, Clare D.; Cooper, George R. 2. Holt, Rinehart and Winston. 1984. ISBN 0-03-061703-0.
外部链接
维基共享资源上的相关多媒体资源:卷积 |
- Earliest Uses: The entry on Convolution has some historical information. (页面存档备份,存于)
- Convolution, on The Data Analysis BriefBook
- http://www.jhu.edu/~signals/convolve/index.html (页面存档备份,存于) Visual convolution Java Applet
- http://www.jhu.edu/~signals/discreteconv2/index.html (页面存档备份,存于) Visual convolution Java Applet for discrete-time functions
- https://get-the-solution.net/projects/discret-convolution discret-convolution online calculator
- https://lpsa.swarthmore.edu/Convolution/CI.html (页面存档备份,存于) Convolution demo and visualization in javascript
- https://phiresky.github.io/convolution-demo/ (页面存档备份,存于) Another convolution demo in javascript
- Lectures on Image Processing: A collection of 18 lectures in pdf format from Vanderbilt University. Lecture 7 is on 2-D convolution., by Alan Peters
- * https://archive.org/details/Lectures_on_Image_Processing
- Convolution Kernel Mask Operation Interactive tutorial (页面存档备份,存于)
- Convolution (页面存档备份,存于) at MathWorld
- Freeverb3 Impulse Response Processor (页面存档备份,存于): Opensource zero latency impulse response processor with VST plugins
- Stanford University CS 178 interactive Flash demo (页面存档备份,存于) showing how spatial convolution works.
- A video lecture on the subject of convolution (页面存档备份,存于) given by Salman Khan
- Example of FFT convolution for pattern-recognition (image processing) (页面存档备份,存于)
- Intuitive Guide to Convolution (页面存档备份,存于) A blogpost about an intuitive interpretation of convolution.