卷积的理解
初步理解,以離散信號為例:
已知x[0]=a,x[1]=b,x[2]=c
已知y[0]=i,y[1]=j,y[2]=k
卷積的過程為:
- 第一步,x[n]乘以y[0]并平移到位置0
- 第二步,x[n]乘以y[1]并平移到位置1
- 第三步,x[n]乘以y[2]并平移到位置2
- 最后,把上面三個結(jié)果疊加,就得到了x[n]?y[n]
從這里,可以看到卷積的重要的物理意義是:一個函數(shù)(如:單位響應(yīng))在另一個函數(shù)(如:輸入信號)上的加權(quán)疊加。
對于線性時不變系統(tǒng),如果知道該系統(tǒng)的單位響應(yīng),那么將單位響應(yīng)和輸入信號求卷積,就相當于把輸入信號的各個時間點的單位響應(yīng) 加權(quán)疊加,就直接得到了輸出信號。
通俗的說:在輸入信號的每個位置,疊加一個單位響應(yīng),就得到了輸出信號。這正是單位響應(yīng)是如此重要的原因。
卷積實例:
卷積的定義:我們稱 (f?g)(n)為 f,g 的卷積
其連續(xù)的定義為:(f?g)(n)=∫∞?∞f(τ)g(n?τ)dτ
其離散的定義為: (f?g)(n)=∑τ=?∞∞f(τ)g(n?τ)
離散卷積的例子:丟骰子
我有兩枚骰子,把這兩枚骰子都拋出去,兩枚骰子的點數(shù)和是4的概率?
這里問題的關(guān)鍵是,兩個骰子加起來要等于4,這正是卷積的應(yīng)用場景:
其中f表示第一枚骰子,g表示第二枚骰子,f(1)投出1的概率,以此類推。下面是兩枚骰子點數(shù)加起來為4的情況:
因此,兩枚骰子點數(shù)加起來為4的概率為:
f(1)g(3)+f(2)g(2)+f(3)g(1)符合卷積的定義,把它寫成標準的形式就是: (f?g)(4)=∑m=13f(4?m)g(m)
圖像處理的例子:
有這么一副圖像,可以看到,圖像上有很多噪點,即高頻信號,現(xiàn)需要平滑,而卷積可以幫助實現(xiàn)這個平滑算法。
有噪點的原圖,可以把它轉(zhuǎn)為一個矩陣:
然后用下面的這個g平均矩陣來平滑圖像
把高頻信號與周圍的數(shù)值平均一下就可以得到平滑,比如我要平滑 a1,1點,就在矩陣中,取出 a1,1 點附近的點組成矩陣 f,和 g 進行卷積計算后,再填回去:
寫成卷積公式就是:(f?g)(1,1)=∑k=02∑h=02f(h,k)g(1?h,1?k)
這樣相當于實現(xiàn)了 g 這個矩陣在原來圖像上的劃動
又一例子:
關(guān)于卷積的一個血腥的講解比如說你的老板命令你干活,你卻到樓下打臺球去了,后來被老板發(fā)現(xiàn),他非常氣憤,扇了你一巴掌(注意,這就是輸入信號,脈沖),于是你的臉上會漸漸地(賤賤地)鼓起來一個包,你的臉就是一個系統(tǒng),而鼓起來的包就是你的臉對巴掌的響應(yīng),好,這樣就和信號系統(tǒng)建立起來意義對應(yīng)的聯(lián)系。下面還需要一些假設(shè)來保證論證的嚴謹:假定你的臉是線性時不變系統(tǒng),也就是說,無論什么時候老板打你一巴掌,打在你臉的同一位置,你的臉上總是會在相同的時間間隔內(nèi)鼓起來一個相同高度的包來,并且假定以鼓起來的包的大小作為系統(tǒng)輸出。好了,那么,下面可以進入核心內(nèi)容——卷積了!
如果你每天都到地下去打臺球,那么老板每天都要扇你一巴掌,不過當老板打你一巴掌后,你5分鐘就消腫了,所以時間長了,你甚至就適應(yīng)這種生活了……如果有一天,老板忍無可忍,以0.5秒的間隔開始不間斷的扇你的過程,這樣問題就來了,第一次扇你鼓起來的包還沒消腫,第二個巴掌就來了,你臉上的包就可能鼓起來兩倍高,老板不斷扇你,脈沖不斷作用在你臉上,效果不斷疊加了,這樣這些效果就可以求和了,結(jié)果就是你臉上的包的高度隨時間變化的一個函數(shù)了(注意理解);如果老板再狠一點,頻率越來越高,以至于你都辨別不清時間間隔了,那么,求和就變成積分了。可以這樣理解,在這個過程中的某一固定的時刻,你的臉上的包的鼓起程度和什么有關(guān)呢?和之前每次打你都有關(guān)!但是各次的貢獻是不一樣的,越早打的巴掌,貢獻越小,所以這就是說,某一時刻的輸出是之前很多次輸入乘以各自的衰減系數(shù)之后的疊加而形成某一點的輸出,然后再把不同時刻的輸出點放在一起,形成一個函數(shù),這就是卷積,卷積之后的函數(shù)就是你臉上的包的大小隨時間變化的函數(shù)。本來你的包幾分鐘就可以消腫,可是如果連續(xù)打,幾個小時也消不了腫了,這難道不是一種平滑過程么?
卷積矩陣及其運算實例:
矩陣的卷積運算主要用在圖像處理中,假設(shè)輸入信號為x[m,n],激活響應(yīng)為h[m,n],則其卷積定義為:
不過在圖像處理中這里的激活響應(yīng)(也稱為核)h[m,n]通常是一個3乘3矩陣,其下標如下圖所示:
其余下標的值取0,注意到原點(0,0)是是矩陣的中心。
在圖像處理中,輸入信號x[m,n]的非零值通常是橫坐標從0到M-1,縱坐標從0到N-1,這里M和N分別是圖像寬和高的值,其余的值設(shè)置為0。但是下面的例子的輸入矩陣的下標范圍和核矩陣相同,也就是(-1,1)。
根據(jù)定義可以直接計算矩陣的卷積。假設(shè)我們有一個3x3的核和一個3x3的輸入:具體的計算過程如下:
計算過程中不在卷積范圍的下標元素都設(shè)為0。
例如:
從以上卷積的公式可以得到上述的y[0,0]的計算過程,可以看到就是下面的過程:
在這里y[0,1],y[0,2]....的計算過程就省略了。
參考:
https://www.zhihu.com/question/22298352/answer/228543288
https://mlnotebook.github.io/post/CNN1/
總結(jié)
- 上一篇: 银承是什么意思是什么
- 下一篇: 信用白条多久审核