作者以拋球實驗為例講解了許多卷積的數學原理和機制,并通過卷積來表述卷積神經網絡。文章附有大量圖片解釋,幫助大家更容易理解。
拋球實驗 -- Ball drop experiment
想象一下,我們把一個球從某個高度落到地面上,它只有一個運動維度。如果你把球落下,然后再從它的落點上方把它落下,球會走一段距離 的可能性有多大?
我們來分析一下: 第一次下落后,它將以概率 落在離起點一個單位的地方,其中是概率分布?,F在,在第一次落下之后,我們把球撿起來,從它第一次落地點以上的另一個高度落下。球從新的起點滾動 個單位的概率是 ,如果它是從不同的高度落下的,那么 可能是不同的概率分布。
如果我們把第一次下落的結果固定下來,使我們知道球走了距離 ,對于球走的總距離 ,第二次下落時走的距離也固定為 ,即 。所以這種情況發生的概率簡單來說就是 。。
我們用一個具體的離散例子來思考這個問題。我們希望總距離 為 3。如果它第一次滾動,,那么第二次必須滾動 ,才能達到我們的總距離 。這個概率是 。
然而,這并不是我們可以達到總距離3的唯一方法。球可以第一次滾1個單位,第二次滾2個單位?;蛘叩谝淮螡L0個單位,第二次滾3個單位。它可以是任何 和 ,只要他們加起來是 3。
為了求出小球到達總 的總概率,我們不能只考慮到達 的一種可能方式,而是考慮將 分成 和 的所有可能方式,并將每種方式的概率相加。
我們已經知道, 的每一種情況的概率簡單來說就是 。所以,將 的每一個解求和,我們可以將總似然表示為。
和 的卷積,在 處被定義為。
如果我們把代入,我們得到。
為了使這一點更加具體,我們可以從球可能落地的位置來考慮。在第一次落地后,它將以概率 落在中間位置 。如果它落在 處,它落在 處的概率為 。
為了得到卷積,我們需要考慮所有的中間位置。
可視化卷積 -- Visualizing Convolutions
假設一個球落在離原點一定距離 的概率是。那么,它 從 處返回原點的的概率是。
如果我們知道球在第二次落地后落在 處,那么第一次的位置是 的概率是多少?
所以,前一個位置是 的概率是 。
每個中間位置球最終落在 處的概率。我們知道第一個落點把球放到中間位置 的概率是 。我們還知道,如果它落在 處,它在 處的概率是 。
將 的所有可能值相加,我們得到卷積結果。
通過移動下半部分,當分布對齊時,卷積達到峰值。
并且隨著分布之間的交點越來越小而縮小。
下圖,我們能夠直觀地看到三角波與方波函數的卷積。
掌握了這個要點,很多概念變得更加直觀。
在音頻處理中有時會用到卷積。例如,人們可能會使用一個有兩個尖峰,但其他地方都是零的函數來創建一個回聲。當我們的雙尖峰函數滑動時,一個尖峰首先擊中一個時間點,將該信號添加到輸出聲音中,之后,另一個尖峰跟隨,添加第二個延遲的副本。
高維卷積--Higher Dimensional Convolutions
卷積不僅僅適用于1維看空間,也適用于高維空間。
回顧開頭的例子,落下的球。現在,當它落下時,它的位置不僅在一維中移動,而且在二維中移動。
和前面的卷積一樣。
只是,現在 , , 和 都是向量。更明確地說,
標準定義:
就像一維卷積一樣,我們可以把二維卷積看成是把一個函數滑動到另一個函數之上,進行乘法和加法。
卷積神經網絡--Convolutional Neural Networks
那么,卷積與卷積神經網絡的關系如何呢?
在一個1維卷積層中,輸入 ,輸出 。
從信號與系統的角度來描述,
是輸入信號,是輸出信號, 是系統,這個系統由 個神經元組成,可以用輸入來描述輸出。
也可以用神經網絡的方式來描述
其中 是輸入, 是權重。權重描述了神經元與輸入的連接方式。
負的權重意味著輸入會抑制神經元發射,而正的權重則鼓勵它發射。
權重是神經元的心臟,控制著它的行為。如果說2個神經元是相同的,即它們的權重是相同的。
其中一個常見的應用是圖像處理。我們可以把圖像看作是二維函數。許多重要的圖像變換都是卷積,你用一個非常小的局部函數(稱為 “內核”)對圖像函數進行卷積。
在上面的演示中,綠色部分類似于我們的 5x5x1 輸入圖像 。在卷積層的第一部分進行卷積操作的元素被稱為Kernel/Filter, 用黃色表示。我們選擇一個3x3x1矩陣作為Kernel。
Kernel 以一定的步伐向右移動,直到它解析出整行的寬度。接著,它以相同的步伐值跳到圖像的開頭(左邊),并重復這個過程,直到遍歷整個圖像。
在多通道圖像的情況下( 如RGB ),Kernel 的深度與輸入圖像的深度相同。Kernel 與圖片 進行矩陣乘法,然后將所有結果與偏置相加,得到一個單通道卷積特征輸出。
卷積操作的目的是從輸入圖像中提取高級特征,如邊緣。傳統上,卷積層可以捕捉低級特征,如邊緣、顏色、梯度方向等。隨著層數的增加,架構也可以捕捉高階特征,讓我們的神經網絡對圖像有更深刻的理解。
該卷積有兩種結果--一種是卷積特征與輸入相比維度減少,有效填充(Valide Padding)。另一種是維度增加或保持不變,相同填充(Same Padding)。
當我們將5x5x1的圖像填充為6x6x1的圖像,然后在其上應用3x3x1的核,我們發現卷積矩陣變成了5x5x1的尺寸。因此,我們將其命名為--相同填充(Same Padding)。
另一方面,如果我們在沒有填充的情況下執行同樣的操作,我們將得到一個具有內核(3x3x1)本身尺寸的矩陣--有效填充(Valide Padding)。
池化層 -- Pooling Layer
與卷積層類似,Pooling層負責減少卷積特征的空間大小。這是為了通過降低維度來降低處理數據所需的計算能力。此外,它還有助于提取旋轉和位置不變的主導特征,從而保持模型的有效訓練過程。下圖表示在5x5卷積特征上的3x3池化。
有兩種類型的池化。最大池化和平均池化。最大池化(Max Pooling)返回的是Kernel覆蓋的圖像部分的最大值。另一方面,平均池化(Average Pooling)返回Kernel覆蓋的圖像部分的所有值的平均值。
Max Pooling也是一種噪聲抑制器。它完全丟棄了嘈雜的激活,并在降低維度的同時進行去噪。另一方面,Average Pooling只是作為噪聲抑制機制進行維度降低。因此,我們可以說Max Pooling的性能比Average Pooling好很多。
卷積層和池化層,共同構成了卷積神經網絡的第層。根據圖像的復雜程度,可以增加這些層的數量,以便進一步捕捉低層次的細節,但代價是增加計算能力。
在經歷了上述過程后,我們已經成功地使模型理解了特征。接下來,我們要將最終的輸出結果進行扁平化處理,并將其饋送到普通的神經網絡中,以達到分類的目的。
全連接層(FC層) —- Fully Connected Layer (FC Layer)
全連接層正在學習該空間中可能的非線性函數。
現在,我們已經將輸入圖像轉換為適合多級感知器 (Multi-Level Perceptron) 的形式,我們將把圖像扁平化(Flatten layer)為列向量。扁平化的輸出被送入前饋神經網絡,并在每次訓練迭代中應用反向傳播。在一系列的紀元中,該模型能夠區分圖像中的主導特征和某些低級特征,并使用Softmax分類方法對其進行分類。
總結 -- Conclusion
我們在這篇博文中介紹了很多數學機制,但我們獲得的東西可能并不明顯。卷積顯然是概率論和計算機圖形學中的一個有用工具,但是用卷積來表述卷積神經網絡,我們獲得了什么?
第一個好處是,我們有了一些非常強大的語言來描述神經網絡的層。卷積大大簡化了繁瑣的計算工作。
其次,卷積非常容易實現。現存的許多庫都提供了高效的卷積方法。
此外,卷積看起來是一個 操作,但使用一些相當深刻的數學見解,可以創建一個 的實現。
Tips:
我們想知道球第一次滾動 單位,第二次滾動 單位的概率。所以 。
卷積滿足交換律,即 。
卷積滿足結合律的,即,
編輯:jq
-
卷積
+關注
關注
0文章
95瀏覽量
18527 -
離散
+關注
關注
0文章
35瀏覽量
17741 -
噪聲抑制器
+關注
關注
0文章
3瀏覽量
7248
原文標題:如何透徹理解卷積的數據原理與機制:從拋球實驗說起
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論