由于計算機視覺的大紅大紫,二維卷積的用處范圍最廣。因此本文首先介紹二維卷積,之后再介紹一維卷積與三維卷積的具體流程,并描述其各自的具體應用。
1. 二維卷積
• 圖中的輸入的數據維度為 14 &TImes; 14 ,過濾器大小為 5 &TImes; 5,二者做卷積,輸出的數據維度為 10 &TImes; 10( 14 − 5 + 1 = 10 )。
• 上述內容沒有引入channel的概念,也可以說channel的數量為1。如果將二維卷積中輸入的channel的數量變?yōu)?,即輸入的數據維度變?yōu)椋?4 &TImes; 14 × 3)。由于卷積操作中過濾器的 channel 數量必須與輸入數據的channel數量相同,過濾器大小也變?yōu)?5 × 5 × 3 。在卷積的過程中,過濾器與數據在 channel 方向分別卷積,之后將卷積后的數值相加,即執(zhí)行 10 × 10 次3個數值相加的操作,最終輸出的數據維度為 10 × 10 。
• 以上都是在過濾器數量為1的情況下所進行的討論。如果將過濾器的數量增加至16,即16個大小為10 × 10 × 3 的過濾器,最終輸出的數據維度就變?yōu)?0 × 10 × 16 。可以理解為分別執(zhí)行每個過濾器的卷積操作,最后將每個卷積的輸出在第三個維度(channel 維度)上進行拼接。
• 二維卷積常用于計算機視覺、圖像處理領域。
2. 一維卷積
• 圖中的輸入的數據維度為8,過濾器的維度為5。與二維卷積類似,卷積后輸出的數據維度為8−5+1=48−5+1=4。
• 如果過濾器數量仍為1,輸入數據的channel數量變?yōu)?6,即輸入數據維度為 8 × 16 。這里channel的概念相當于自然語言處理中的embedding,而該輸入數據代表8個單詞,其中每個單詞的詞向量維度大小為16。在這種情況下,過濾器的維度由5變?yōu)?5 × 16 ,最終輸出的數據維度仍為 4 。
• 如果過濾器數量為 n,那么輸出的數據維度就變?yōu)?4 × n。
• 一維卷積常用于序列模型,自然語言處理領域。
3. 三維卷積
這里采用代數的方式對三維卷積進行介紹,具體思想與一維卷積、二維卷積相同。
• 假設輸入數據的大小為 a1 × a2 × a3,channel數為 c,過濾器大小為
f,即過濾器維度為 f × f × f × c(一般不寫 channel 的維度),過濾器數量為 n。
• 基于上述情況,三維卷積最終的輸出為 ( a1 − f + 1 ) × ( a2 − f + 1 ) × ( a3 − f + 1 ) × n 。該公式對于一維卷積、二維卷積仍然有效,只有去掉不相干的輸入數據維度就行。
• 三維卷積常用于醫(yī)學領域(CT影響),視頻處理領域(檢測動作及人物行為)。