1.卷積神經網路(cnn)的定義
一般地,我們可以將cnn視為人工神經網路,它是具有專門可以檢測或挑選pattern的一些結構。
這種pattern detection使cnn對影象分析非常有用。
如果cnn只是乙個人工神經網路,那麼它與標準多層感知器或mlp的區別是什麼?
它們的區別在於:cnn有隱藏的層,稱為卷積層。
2.卷積層
與任何其他層一樣,卷積層接收輸入,以某種方式轉換輸入,然後將轉換後的輸入輸出到下一層。
卷積層的輸入稱為輸入通道,輸出稱為輸出通道。
對於卷積層,發生的變換稱為卷積運算。卷積運算是深度學習社群使用的術語。在數學上,卷積層執行的卷積運算實際上稱為互相關。
3.過濾器和卷積運算
如前面所提到的那樣,卷積神經網路能夠檢測影象中的特徵(detect pattern)。
對於每個卷積層,我們需要指定圖層應具有的過濾器數量,作為檢測特徵所用。
4.patterns
patterns具體是指什麼呢?
當我們說過濾器能夠檢測patterns時,想想在任何一張中我們需要獲得怎樣的資訊才能使它被檢測出來呢?
邊緣,形狀,紋理,物件等。這些是我們所說的patterns。
過濾器在影象中可以檢測到的一種模式是邊緣,因此該濾波器將被稱為邊緣檢測器。除了邊緣,一些過濾器可能會檢測角。有些可能檢測圓圈,有些檢測矩形。這些簡單的幾何濾波器就是我們在卷積神經網路開始時所看到的。
網路越深,過濾器就越複雜。在後面的圖層中,我們的濾波器可以檢測特定的物體,如眼睛,耳朵,頭髮或毛髮,羽毛,鱗片和喙,而不是邊緣和簡單的形狀。
在更深的層中,過濾器能夠檢測更複雜的物體,如犬,貓,蜥蜴和鳥類。
5.例子
下面我們來具體看乙個手寫數字識別的例子
假設我們有乙個卷積神經網路接受手寫數字的影象(比如來自mnist資料集),我們的網路正在將它們分類為各自的類別,即1,2,3等
過濾器 (pattern detectors)
我們假設網路的第乙個隱層是卷積層,正如前面所提到的那樣,當新增乙個卷積層到我們的模型的時候,我們必須指定過濾器的數量。過濾器的數量決定了輸出通道的數量。
從數學上講,濾波器可以被認為是乙個相對較小的矩陣(張量),為此,我們決定該矩陣具有的行數和列數,並且該矩陣內的值用隨機數初始化。
對於我們的第乙個卷積層,我們將指定我們希望該層包含乙個大小為3 x 3的過濾器。
卷積層讓我們看一下卷積操作的示例動畫:
此動畫展示了沒有數字的卷積過程。我們在底部有乙個藍色的輸入通道。底部陰影的卷積濾鏡在輸入通道上滑動,綠色為輸出通道。
對於藍色輸入通道上的每個位置,3 x 3濾波器進行計算,將藍色輸入通道的陰影部分對映到綠色輸出通道的相應陰影部分。該卷積層接收輸入通道,並且濾波器將在輸入自身的每個3×3畫素集上滑動,直到它在整個影象的每3×3畫素塊上滑動。
卷積操作
這種滑動被稱為卷積,所以實際上,我們應該說這個濾波器將在輸入的每個3 x 3畫素塊上進行卷積。
藍色輸入通道是來自mnist資料集的影象的矩陣表示,該矩陣中的值是影象中的各個畫素。這些影象是灰度影象,因此我們只有乙個輸入通道。
此輸入將傳遞到卷積層。
正如剛才所討論的那樣,我們已經指定第乙個卷積層只有乙個濾波器,這個濾波器將在輸入的每個3 x 3畫素塊上進行卷積。當濾波器落在其第乙個3×3畫素塊上時,將計算並儲存濾波器本身與來自輸入的3×3畫素塊的點積。以此遍歷。
例如,我們將濾波器的點積與第乙個3 x 3畫素塊相對應,然後將結果儲存在輸出通道中。然後,過濾器滑動到下乙個3 x 3塊,計算點積,並將值儲存為輸出通道中的下乙個畫素。
在此過濾器對整個輸入進行卷積之後,我們將留下輸入的新表示,現在將其儲存在輸出通道中。此輸出通道稱為特徵圖(feature map)。 這個綠色輸出通道成為下一層作為輸入的輸入通道,然後我們剛剛通過濾波器進行的這個過程將發生在具有下一層濾波器的新輸出通道上。
輸入和輸出通道
假設來自mnist資料集的灰度影象(單色通道)數字「7」是我們的輸入:
假設我們的第乙個卷積層有4個3 x 3濾波器,這些濾波器用下面的值填充。通過使-1對應於黑色,1對應於白色,0對應於灰色,可以在視覺上表示這些值。
具有4個濾波器的卷積層
如果我們將這四個濾波器中的每個濾波器分別與原始影象進行卷積,這就是每個濾波器的輸出結果:
來自卷積層的輸出通道
我們可以看到所有這四個濾波器都在檢測邊緣。
在輸出通道中,最亮的畫素可以解釋為濾波器檢測到的畫素。在第乙個中,我們可以看到檢測到「7」頂部水平邊緣,並用最亮的畫素(白色)表示。 第二個檢測到左側垂直邊緣,再次顯示最亮的畫素。第三個檢測底部水平邊緣,第四個檢測右側垂直邊緣。
這些濾波器非常簡單,只是檢測邊緣。這些是我們使用卷積神經網路起步時可能看到的濾波器。更複雜的過濾器將位於網路的更深處,並逐漸能夠檢測到更複雜的patterns,如下所示:
我們可以看到左側過濾器從右側影象中檢測到的形狀。我們可以看到圓圈,曲線和角落。當我們進一步加深圖層時,過濾器可以檢測到更複雜的圖案,如狗臉或鳥腿,如下所示:
令人驚訝的是,模式檢測器是由網路自動匯出的。過濾器值以隨機值初始化,它的值隨著網路在訓練期間的學習而變化。pattern detectors(模式檢測器)隨著網路的學習而出現。
過去,計算機視覺專家會手動開發濾波器(模式檢測器)。其中乙個例子是sobel濾波器,一種邊緣檢測器。但是,通過深度學習,我們可以使用神經網路自動學習這些過濾器!
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...
神經網路 卷積神經網路
1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...
卷積神經網路 有趣的卷積神經網路
一 前言 最近一直在研究深度學習,聯想起之前所學,感嘆數學是一門樸素而神奇的科學。f g m1 m2 r 萬有引力描述了宇宙星河運轉的規律,e mc 描述了恆星發光的奧秘,v h d哈勃定律描述了宇宙膨脹的奧秘,自然界的大部分現象和規律都可以用數學函式來描述,也就是可以求得乙個函式。神經網路 簡單又...