卷積神經網絡(CNN)之一維卷積、二維卷積、三維卷積詳解

做者:szx_spark
因爲計算機視覺的大紅大紫,二維卷積的用處範圍最廣。所以本文首先介紹二維卷積,以後再介紹一維卷積與三維卷積的具體流程,並描述其各自的具體應用。html

1. 二維卷積

  • 圖中的輸入的數據維度爲\(14\times 14\),過濾器大小爲\(5\times 5\),兩者作卷積,輸出的數據維度爲\(10\times 10\)\(14-5+1=10\))。若是你對卷積維度的計算不清楚,能夠參考我以前的博客吳恩達深度學習筆記(deeplearning.ai)之卷積神經網絡(CNN)(上)網絡

  • 上述內容沒有引入channel的概念,也能夠說channel的數量爲1。若是將二維卷積中輸入的channel的數量變爲3,即輸入的數據維度變爲(\(14\times 14\times 3\))。因爲卷積操做中過濾器的channel數量必須與輸入數據的channel數量相同,過濾器大小也變爲\(5\times 5\times 3\)。在卷積的過程當中,過濾器與數據在channel方向分別卷積,以後將卷積後的數值相加,即執行\(10\times 10\)次3個數值相加的操做,最終輸出的數據維度爲\(10\times 10\)學習

  • 以上都是在過濾器數量爲1的狀況下所進行的討論。若是將過濾器的數量增長至16,即16個大小爲\(10\times 10\times 3\)的過濾器,最終輸出的數據維度就變爲\(10\times 10\times 16\)。能夠理解爲分別執行每一個過濾器的卷積操做,最後將每一個卷積的輸出在第三個維度(channel 維度)上進行拼接。spa

  • 二維卷積經常使用於計算機視覺、圖像處理領域。視頻

2. 一維卷積

  • 圖中的輸入的數據維度爲8,過濾器的維度爲5。與二維卷積相似,卷積後輸出的數據維度爲\(8-5+1=4\)htm

  • 若是過濾器數量仍爲1,輸入數據的channel數量變爲16,即輸入數據維度爲\(8\times 16\)。這裏channel的概念至關於天然語言處理中的embedding,而該輸入數據表明8個單詞,其中每一個單詞的詞向量維度大小爲16。在這種狀況下,過濾器的維度由\(5\)變爲\(5\times 16\),最終輸出的數據維度仍爲\(4\)blog

  • 若是過濾器數量爲\(n\),那麼輸出的數據維度就變爲\(4\times n\)get

  • 一維卷積經常使用於序列模型,天然語言處理領域。深度學習

3. 三維卷積

這裏採用代數的方式對三維卷積進行介紹,具體思想與一維卷積、二維卷積相同。博客

  • 假設輸入數據的大小爲\(a_1\times a_2\times a_3\),channel數爲\(c\),過濾器大小爲\(f\),即過濾器維度爲\(f\times f\times f\times c\)(通常不寫channel的維度),過濾器數量爲\(n\)

  • 基於上述狀況,三維卷積最終的輸出爲\((a_1-f+1)\times (a_2-f+1)\times (a_3-f+1)\times n\)。該公式對於一維卷積、二維卷積仍然有效,只有去掉不相干的輸入數據維度就行。

  • 三維卷積經常使用於醫學領域(CT影響),視頻處理領域(檢測動做及人物行爲)。

相關文章
相關標籤/搜索