CNN:對於卷積的理解
學習深度學習看到卷積這個operation,為了理解它查了一些資料,有幸看到一個大佬的總結,再加上一些自己的想法,做一個總結。
一、卷積的定義
內涵:
在泛函分析中,卷積、旋積或摺積(英語:Convolution)是通過兩個函式f 和g 生成第三個函式的一種數學運算元,表徵函式f 與g經過翻轉和平移的重疊部分的面積。
設:f(x),g(x)是R1上的兩個可積函式,作積分:
可以證明,關於幾乎所有的實數x,上述積分是存在的。這樣,隨著x的不同取值,這個積分就定義了一個新函式h(x),稱為函式f與g的卷積,記為。
定義:
卷積是兩個變數在某範圍內相乘後求和的結果。如果卷積的變數是序列和,則卷積的結果
其中星號*表示卷積。當時序時,序列是的時序取反的結果;時序取反使得以縱軸為中心翻轉180度,所以這種相乘後求和的計演算法稱為卷積和,簡稱卷積。另外,n是使
如果卷積的變數是函式和,則卷積的計算變為
,
其中是積分變數,積分也是求和,是使函式位移的量,星號*表示卷積。
二、理解卷積
首先選取知乎上對卷積物理意義解答排名最靠前的回答。
不推薦用“反轉/翻轉/反褶/對稱”等解釋卷積(上邊我們講了使用翻轉的 - -)。好好的訊號為什麼要翻轉?導致學生難以理解卷積的物理意義。
這個其實非常簡單的概念,國內的大多數教材卻沒有講透。
直接看圖,不信看不懂。以離散訊號為例,連續訊號同理。
已知
已知
下面通過演示求的過程,揭示卷積的物理意義。
第一步,乘以並平移到位置0:
第二步,乘以並平移到位置1 :
第三步,乘以並平移到位置2:
最後,把上面三個圖疊加,就得到了:
無非是平移(沒有反褶!)、疊加。
從這裡,可以看到卷積的重要的物理意義是:一個函式(如:單位響應)在另一個函式(如:輸入訊號)上的加權疊加。
重複一遍,這就是卷積的意義:加權疊加
我們也可以根據公式來看,令
,
那麼
,
,
,
,
。
三、卷積的應用
用一個模板和一幅影象進行卷積,對於影象上的一個點,讓模板的原點和該點重合,然後模板上的點和影象上對應的點相乘,然後各點的積相加,就得到了該點的卷積值。對影象上的每個點都這樣處理。由於大多數模板都是對稱的,所以模板不旋轉。卷積是一種積分運算,用來求兩個曲線重疊區域面積。可以看作加權求和,可以用來消除噪聲、特徵增強。
把一個點的畫素值用它周圍的點的畫素值的加權平均代替。
卷積是一種線性運算,影象處理中常見的mask運算都是卷積,廣泛應用於影象濾波。
卷積關係最重要的一種情況,就是在訊號與線性系統或數字訊號處理中的卷積定理。利用該定理,可以將時間域或空間域中的卷積運算等價為頻率域的相乘運算,從而利用FFT等快速演算法,實現有效的計算,節省運算代價。
四、直觀感受的例子
點積是計算兩個向量相似性的一種重要度量。看以下例子
a中是一個形如sin的訊號和本身求點積;b是sin訊號和一個形如cos的資訊求點積;c是該訊號和一個隨機產生的向量求點積。a兩個訊號相似程度最高,得到了最大值,c得到了負值,從視覺上看也是差異最高的。
上面是一個長度為20的sin訊號兩邊各接一個長度為20的隨機訊號作為一個新的帶卷積訊號,然後定義個倒序之後就是sin波形的訊號作為卷積核。
上面是帶卷積訊號,下面是結果。在形如sin的訊號劃過被卷積訊號的形如sin的區域時,卷積結果的值最大。從訊號的角度,可以把卷積看做是卷積核作為一個濾波器,卷積的結果則是被卷積訊號在這個濾波器上的響應。所以大體上越是和卷積核倒序之後相似的訊號越是獲得越大的響應。
這個例子中卷積核起到了縱向邊緣查詢的作用。
參考文獻:
《深度學習》 Ian GoodFellow.
《深度學習與計算機視覺》 叶韻.