0、前言

打算對吳恩達老師的Deeplearning課程做一個筆記回顧,大體整理思路為吳老師課堂內容和個人理解,非常基礎無難點,重在備忘分享。

一、三維卷積

我們之前已經學過如何對二維影象做卷積,如下:

但是現實生活中,彩圖比灰度圖遠遠要多,所以我們需要學會在三維立體上如何做卷積操作。

我們從一個例子開始,假如說你不僅想檢測灰度影象的特徵,也想檢測RGB彩色影象的特徵。彩色影象如果是6×6×3,

這裡的3指的是三個顏色通道,分佈對應R,G,B通道

,你可以把它想象成三個6×6影象的堆疊。為了檢測影象的邊緣或者其他的特徵,不是把它跟原來的3×3的過濾器做卷積,而是跟一個三維的過濾器,維度是3×3×3,這樣這個過濾器也有三層,對應紅綠、藍三個通道。

如下圖所示:

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

圖中的的第一個6代表影象高度,第二個6代表寬度,這個3代表通道的數目。同樣過濾器也有一個高,寬和通道數,並且影象的通道數必須和過濾器的通道數匹配,所以這兩個數(紫色方框標記的兩個數)必須相等。透過卷積後的輸出為4×4的影象,這裡需要注意是輸出並不是4×4×3,而是4×4×1。接下來會詳細介紹!

二、詳細例項

如下圖所示,影象維度為6×6×3,過濾器為3×3×3,最後一個數字通道數必須和過濾器中的通道數相匹配。

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

按照之前二維卷積的操作,類比到三維卷積,要做的就是把這個3×3×3的過濾器先放到最左上角的位置,這個3×3×3的過濾器有27個數,27個引數就是3的立方。依次取這27個數,然後乘以相應的紅綠藍通道中的數字。先取紅色通道的前9個數字,然後是綠色通道,然後再是藍色通道,乘以左邊黃色立方體覆蓋的對應的27個數,然後把這些數都加起來,就得到了輸出的第一個數字。

接下來的輸出,也是用該過濾器在原影象上移動即可,依次得到卷積後的輸出結果,如下所示:

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

那麼這些操作有什麼意義呢?或者說在深度學習中有什麼作用?

答案就是提取不同的特徵!!!

比如當我們想檢測影象紅色通道的邊緣,那麼你可以將第一個過濾器設為

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

,對綠色通道的過濾器全為0,

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

,對藍色通道的過濾器也全為0,

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

把這三個堆疊在一起形成一個3×3×3的過濾器,那麼這就是一個檢測垂直邊界的過濾器,但只

對紅色通道有用。

或者如果我們不關心垂直邊界在哪個顏色通道里,我們可以用一個這樣的過濾器,,

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

,所以透過設定第二個過濾器引數,你就有了一個邊界檢測器,3×3×3的邊界檢測器,

用來檢測任意顏色通道里的邊界。

所以當過濾器引數的選擇不同,我們就可以得到不同的特徵檢測器,這一點非常重要,在實際應用中,幾乎沒有只提取一個特徵的。下面再詳細一點:

三、多特徵提取

如果我們不僅僅想要檢測垂直邊緣?我們同時想檢測垂直邊緣和水平邊緣,還有45°傾斜的邊緣,還有70°傾斜的邊緣?這個時候怎麼辦

我們的做法是採用不同的過濾器對原影象進行卷積操作,得到4×4的輸出。(第一個)這可能是一個垂直邊界檢測器或者是學習檢測其他的特徵。第二個過濾器可以用橘色來表示,它可以是一個水平邊緣檢測器。

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

所以和第一個過濾器卷積,可以得到第一個4×4的輸出,然後卷積第二個過濾器,得到另一個不同的4×4的輸出。然後將這兩個輸出堆疊在一起,這樣我們就都得到了一個4×4×2的輸出立方體。

總結來說我們對6×6×3的影象,使用

兩個不同的3×3*3的過濾器,得到兩個4×4的輸出,它們堆疊在一起,形成一個4×4×2的立方體,這裡的2的來源於我們用了兩個不同的過濾器。也就相當於我們對原始6*6*3影象提取了2個不同的特徵。如下圖:

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

同理,如果我想提取更多的特徵,只需要用不同引數的過濾器進行相同操作的卷積即可,這可是一個非常重要的發現。現在我們已經知道怎麼對立方體做卷積了,也就是已經準備好了實現卷積神經其中一層了,下個影片裡讓我們看看是怎麼做的。

四、卷積視覺化動圖理解

夏衝師弟找到一個例子圖,動圖幫助理解,如下:

Deeplearning.ai卷積神經網路( 1.6 如何做三維卷積)

- Original Link :

LINK

- The author: Martin Görner

- Twitter: @martin_gorner

- Google +:

http://

plus。google。com/+Martin

Gorne

下節見。

參考:

fengdu78/deeplearning_ai_books