1x1 卷積在神經網絡中意味著什麼?
我目前正在做 Udacity 深度學習教程。在第 3 課中,他們討論了 1x1 卷積。這種 1x1 卷積用於 Google Inception Module。我無法理解什麼是 1x1 卷積。
我也看過Yann Lecun 的這篇文章。
有人可以向我解釋一下嗎?
假設我有一個輸出一個 conv 層 $ (N, F, H, W) $ 成形張量,其中:
- $ N $ 是批量大小
- $ F $ 是卷積濾波器的數量
- $ H, W $ 是空間維度
假設輸入被輸入到一個卷積層 $ F_1 $ 1x1 過濾器,零填充和步幅 1。然後這個 1x1 卷積層的輸出將具有形狀 $ (N, F_1, H , W) $ .
所以可以使用 1x1 conv 過濾器來改變過濾器空間中的維度。如果 $ F_1 > F $ 那麼我們正在增加維度,如果 $ F_1 < F $ 我們正在減少維度,在過濾器維度。
事實上,在 Google Inception 文章Going Deeper with Convolutions中,他們說(粗體字是我的,不是原作者的):
上述模塊的一個大問題,至少在這種幼稚的形式中,是即使是適度數量的 5x5 卷積,在具有大量過濾器的捲積層之上也可能非常昂貴。
這導致了所提出架構的第二個想法:明智地應用降維和投影,否則計算需求會增加太多。這是基於嵌入的成功:即使是低維嵌入也可能包含大量關於相對較大的圖像塊的信息……**在昂貴的 3x3 和 5x5 卷積之前,1x1 卷積用於計算縮減。**除了用作還原外,它們還包括使用整流線性激活,這使得它們具有雙重用途。
所以在 Inception 架構中,我們使用 1x1 卷積濾波器來降低濾波器維度上的維度。正如我上面所解釋的,這些 1x1 卷積層通常可以用來改變過濾器空間的維度(增加或減少),在 Inception 架構中,我們看到這些 1x1 過濾器在降維方面的效果如何,明確地在過濾器維度空間中,而不是空間維度空間。
或許還有其他對 1x1 conv 過濾器的解釋,但我更喜歡這種解釋,尤其是在 Google Inception 架構的上下文中。