1. 程式人生 > >【轉】一篇關於卷積的通俗易懂的文章

【轉】一篇關於卷積的通俗易懂的文章

作者用最通俗的語言詮釋了卷積,覺得不錯,公式太抽象,這樣解釋就易懂很多。原文出處不詳。

最近總是和卷積打交道,工作需要,每天都要碰到它好幾次,不勝煩惱,因為在大學時候學訊號與系統的時候就沒學會,我於是心想一定要把卷積完全搞明白。正好同辦公室的同學也問我什麼是卷積,師姐昨天也告訴我說:“我也早就想把這個問題搞明白了!”經過一段時間的思考之後,有一些很有趣的體會和大家分享。

聽說卷積這種運算式物理學家發明的,在實際中用得不亦樂乎,而數學家卻一直沒有把運算的意義徹底搞明白。仔細品以下,還是有那麼點滋味的。

我們都知道這個公式,但是它有什麼物理意義呢,平時我們用卷積做過很多事情,訊號處理時,輸出函式是輸入函式和系統函式的卷積,在影象處理時,兩組幅解析度不同的圖卷積之後得到的互相平滑的影象可以方便處理。卷積甚至可以用在考試作弊中,為了讓照片同時像兩個人,只要把兩人的影象卷積處理即可,這就是一種平滑的過程,可是我們怎麼才能真正把公式和實際建立起一種聯絡呢,也就是說,我們能不能從生活中找到一種很方便且具體的例子來表達公式的物理意義呢?我想到一種,下面進入正題:

比如說你的老闆命令你幹活,你卻到樓下打檯球去了,後來被老闆發現,他非常氣憤,扇了你一巴掌(注意,這就是輸入訊號,脈衝),於是你的臉上會漸漸地(賤賤地)鼓起來一個包,你的臉就是一個系統,而鼓起來的包就是你的臉對巴掌的響應,好,這樣就和訊號系統建立起來意義對應的聯絡。下面還需要一些假設來保證論證的嚴謹:假定你的臉是線性時不變系統,也就是說,無論什麼時候老闆打你一巴掌,打在你臉的同一位置(這似乎要求你的臉足夠光滑,如果你說你長了很多青春痘,甚至整個臉皮處處連續處處不可導,那難度太大了,我就無話可說了哈哈),你的臉上總是會在相同的時間間隔內鼓起來一個相同高度的包來,並且假定以鼓起來的包的大小作為系統輸出。好了,那麼,下面可以進入核心內容——卷積了!

如果你每天都到地下去打檯球,那麼老闆每天都要扇你一巴掌,不過當老闆打你一巴掌後,你5分鐘就消腫了,所以時間長了,你甚至就適應這種生活了……如果有一天,老闆忍無可忍,以0.5秒的間隔開始不間斷的扇你的過程,這樣問題就來了,第一次扇你鼓起來的包還沒消腫,第二個巴掌就來了,你臉上的包就可能鼓起來兩倍高,老闆不斷扇你,脈衝不斷作用在你臉上,效果不斷疊加了,這樣這些效果就可以求和了,結果就是你臉上的包的高度歲時間變化的一個函數了(注意理解);如果老闆再狠一點,頻率越來越高,以至於你都辨別不清時間間隔了,那麼,求和就變成積分了。可以這樣理解,在這個過程中的某一固定的時刻,你的臉上的包的鼓起程度和什麼有關呢?和之前每次打你都有關!但是各次的貢獻是不一樣的,越早打的巴掌,貢獻越小,所以這就是說,某一時刻的輸出是之前很多次輸入乘以各自的衰減係數之後的疊加而形成某一點的輸出,然後再把不同時刻的輸出點放在一起,形成一個函式,這就是卷積,卷積之後的函式就是你臉上的包的大小隨時間變化的函式。本來你的包幾分鐘就可以消腫,可是如果連續打,幾個小時也消不了腫了,這難道不是一種平滑過程麼?反映到劍橋大學的公式上,f(a)就是第a個巴掌,g(x-a)就是第a個巴掌在x時刻的作用程度,乘起來再疊加就ok了,大家說是不是這個道理呢?我想這個例子已經非常形象了,你對卷積有了更加具體深刻的瞭解了嗎?

最近要忙開題了,不過週末了還是放鬆一下吧。其實我真的希望我的朋友們看到這篇文章能給我留言,發表你們的想法,有不妥之處歡迎提出來。

-----------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------