機器學習、信號處理、通信、或自動控制相關專業的學生,無一例外都會碰到一個概念叫,卷積(convolution)。
當前最熱門的人工智慧中的卷積神經網絡,也都含有卷積這個詞。
那麼,卷積到底是個什麼東西呢?有什麼用呢?
卷積的定義
卷積實際上是兩個信號的操作。
我們拿一維信號而言,兩個一維時間信號的卷積f(t)*h(t)是這樣定義的:
我們需要注意,兩個一維時間信號的卷積f(t)*h(t),結果仍然是一個關於時間t的函數。
這和我們在信號處理裡面接觸的很多變換不同,這些變換的結果,和原來的信號往往不在一個域。例如,一個時間函數f(t)的傅立葉變換F(ω)是頻域信號。
卷積的數學意義
在卷積的定義式1.1中,等式右邊的積分變量是τ。這樣,h(t-τ)就是把h(τ)先按照縱軸對摺,變成h(-τ)。
再將h(-τ)加一個時間上的偏移t。
然後把h(t-τ)同f(τ)相乘得到的函數在τ=[-∞,∞]覆蓋的面積,就是得到了f(t)*h(t)。
注意,此時的這個面積,是對應某一個具體的t的時候卷積f(t)*h(t)的大小。
因為我們要得到所有的t時f(t)*h(t)的值,那麼此時我們就需要去改變t。
對應的措施就是將t從-∞開始,沿著τ軸自左向右滑動。
每移動到一個新的位置t時,我們就計算這兩個函數h(t-τ)和f(τ)的乘積函數的面積。這個面積就是卷積f(t)*h(t)在t處的值。
這個過程可以用圖1.1來說明。
圖示來解釋卷積,其數學意義很清楚,但物理意義卻模糊了。
為什麼要把h(t)翻過來,為什麼要做積分求面積?或者說到底,為什麼我們需要卷積這麼個奇怪的東西呢?下篇文章為你揭秘!