Ng新課終于發(fā)布了,撒花!以下為在Coursera上吳恩達(dá)老師的 DeepLearning.ai 課程項目中,第四部分《卷積神經(jīng)網(wǎng)絡(luò)》第一周課程“卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)”關(guān)鍵點(diǎn)的筆記。本次筆記幾乎涵蓋了所有視頻課程的內(nèi)容。在閱讀以下筆記的同時,強(qiáng)烈建議學(xué)習(xí)吳恩達(dá)老師的視頻課程,視頻請至 Coursera 或者 網(wǎng)易云課堂。
卷積神經(jīng)網(wǎng)絡(luò) — 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)
1. 計算機(jī)視覺
計算機(jī)視覺(Computer Vision)包含很多不同類別的問題,如圖片分類、目標(biāo)檢測、圖片風(fēng)格遷移等等。
對于小尺寸的圖片問題,也許我們用深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)可以較為簡單的解決一定的問題。但是當(dāng)應(yīng)用在大尺寸的圖片上,輸入規(guī)模將變得十分龐大,使用神經(jīng)網(wǎng)絡(luò)將會有非常多的參數(shù)需要去學(xué)習(xí),這個時候神經(jīng)網(wǎng)絡(luò)就不再適用。
卷積神經(jīng)網(wǎng)絡(luò)在計算機(jī)視覺問題上是一個非常好的網(wǎng)絡(luò)結(jié)構(gòu)。
2. 邊緣檢測示例
卷積運(yùn)算是卷積神經(jīng)網(wǎng)絡(luò)的基本組成部分。下面以邊緣檢測的例子來介紹卷積運(yùn)算。
所謂邊緣檢測,在下面的圖中,分別通過垂直邊緣檢測和水平邊緣檢測得到不同的結(jié)果:
垂直邊緣檢測:
假設(shè)對于一個 6×6大小的圖片(以數(shù)字表示),以及一個 3×3大小的 filter(卷積核) 進(jìn)行卷積運(yùn)算,以“?
?”符號表示。圖片和垂直邊緣檢測器分別如左和中矩陣所示:
filter 不斷地和其大小相同的部分做對應(yīng)元素的乘法運(yùn)算并求和,最終得到的數(shù)字相當(dāng)于新圖片的一個像素值,如右矩陣所示,最終得到一個 4×4
4×4 大小的圖片。
邊緣檢測的原理:
以一個有一條垂直邊緣線的簡單圖片來說明。通過垂直邊緣 filter 我們得到的最終結(jié)果圖片可以明顯地將邊緣和非邊緣區(qū)分出來:
卷積運(yùn)算提供了一個方便的方法來檢測圖像中的邊緣,成為卷積神經(jīng)網(wǎng)絡(luò)中重要的一部分。
多種邊緣檢測:
垂直和水平邊緣檢測
更復(fù)雜的filter
對于復(fù)雜的圖片,我們可以直接將filter中的數(shù)字直接看作是需要學(xué)習(xí)的參數(shù),其可以學(xué)習(xí)到對于圖片檢測相比上面filter更好的更復(fù)雜的filter,如相對于水平和垂直檢測器,我們訓(xùn)練的 filter 參數(shù)也許可以知道不同角度的邊緣。
通過卷積運(yùn)算,在卷積神經(jīng)網(wǎng)絡(luò)中通過反向傳播算法,可以學(xué)習(xí)到相應(yīng)于目標(biāo)結(jié)果的filter,將其應(yīng)用于整個圖片,輸出其提取到的所有有用的特征。
卷積和互相關(guān):
在數(shù)學(xué)定義上,矩陣的卷積(convolution)操作為首先將卷積核同時在水平和垂直方向上進(jìn)行翻轉(zhuǎn),構(gòu)成一個卷積核的鏡像,然后使用該鏡像再和前面的矩陣進(jìn)行移動相乘求和操作。如下面例子所示:
在深度學(xué)習(xí)中,我們稱為的卷積運(yùn)算實(shí)則沒有卷積核變換為鏡像的這一步操作,因為在權(quán)重學(xué)習(xí)的角度,變換是沒有必要的。深度學(xué)習(xí)的卷積操作在數(shù)學(xué)上準(zhǔn)確度來說稱為互相關(guān)(cross-correlation)。
3. Padding
沒有Padding的缺點(diǎn):
其中,n表示圖片的長或?qū)挼拇笮。琭表示filter的長或?qū)挼拇笮 ?/p>
加Padding:
為了解決上面的兩個缺點(diǎn),我們在進(jìn)行卷積運(yùn)算前為圖片加padding,包圍角落和邊緣的像素,使得通過filter的卷積運(yùn)算后,圖片大小不變,也不會丟失角落和邊沿的信息。
以p表示 Padding 的值,則輸入n×n大小的圖片,最終得到的圖片大小為 (n+2p?f+1)×(n+2p?f+1),為使圖片大小保持不變,需根據(jù)filter的大小調(diào)整p的值。
Valid / Same 卷積:
Valid
:no padding;(n×n –> (n?f+1)×(n?f+1)Same
:padding,輸出與輸入圖片大小相同,(p=(f?1)/2)。在計算機(jī)視覺中,一般來說padding的值為奇數(shù)(因為filter一般為奇數(shù))4. 卷積步長(stride)
卷積的步長是構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)的一個基本的操作。
如前面的例子中,我們使用的 stride=1,每次的卷積運(yùn)算以1個步長進(jìn)行移動。下面是 stride=2 時對圖片進(jìn)行卷積的結(jié)果:
以s表示stride的大小,那么在進(jìn)行卷積運(yùn)算后,圖片的變化為:
注意,在當(dāng)padding≠1時,若移動的窗口落在圖片外面時,則不要再進(jìn)行相乘的操作,丟棄邊緣的數(shù)值信息,所以輸出圖片的最終維度為向下取整。
5. 立體卷積
卷積核的通道數(shù):
對于灰色圖像中,卷積核和圖像均是二維的。而應(yīng)用于彩色圖像中,因為圖片有R、G、B三個顏色通道,所以此時的卷積核應(yīng)為三維卷積核。
卷積核的第三個維度需要與進(jìn)行卷積運(yùn)算的圖片的通道數(shù)相同。
多卷積核:
單個卷積核應(yīng)用于圖片時,提取圖片特定的特征,不同的卷積核提取不同的特征。如兩個大小均為3×3×3的卷積核分別提取圖片的垂直邊緣和水平邊緣。
由圖可知,最終提取到彩色圖片的垂直特征圖和水平特征圖,得到有2個通道的4×4大小的特征圖片。
Summary:
圖片:
其中,nc 表示通道的數(shù)量,nc′表示下一層的通道數(shù),同時也等于本層卷積核的個數(shù)。
6. 簡單卷積網(wǎng)絡(luò)
單層卷積網(wǎng)絡(luò)的例子:
和普通的神經(jīng)網(wǎng)絡(luò)單層前向傳播的過程類似,卷積神經(jīng)網(wǎng)絡(luò)也是一個先由輸入和權(quán)重及偏置做線性運(yùn)算,然后得到的結(jié)果輸入一個激活函數(shù)中,得到最終的輸出:
不同點(diǎn)是在卷積神經(jīng)網(wǎng)絡(luò)中,權(quán)重和輸入進(jìn)行的是卷積運(yùn)算。
單層卷積的參數(shù)個數(shù):
在一個卷積層中,如果我們有10個 3×3×3大小的卷積核,那么加上每個卷積核對應(yīng)的偏置,則對于一個卷積層,我們共有的參數(shù)個數(shù)為:(3×3×3+1)×10=280
無論圖片大小是多少,該例子中的卷積層參數(shù)個數(shù)一直都是280個,相對于普通的神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)個數(shù)要少很多。
標(biāo)記的總結(jié):
簡單卷積網(wǎng)絡(luò)示例:
多層卷積構(gòu)成卷積神經(jīng)網(wǎng)絡(luò),下面是一個卷積神經(jīng)網(wǎng)絡(luò)的例子:
卷積網(wǎng)絡(luò)層的類型:
7. 池化層
最大池化(Max pooling):
最大池化是對前一層得到的特征圖進(jìn)行池化減小,僅由當(dāng)前小區(qū)域內(nèi)的最大值來代表最終池化后的值。
在最大池化中,有一組超參數(shù)需要進(jìn)行調(diào)整,其中,f 表示池化的大小,s表示步長。
平均池化(Average pooling):
平均池化與最大池化唯一不同的是其選取的是小區(qū)域內(nèi)的均值來代表該區(qū)域內(nèi)的值。
池化 Summary:
池化層的超參數(shù):
注意,池化層沒有需要學(xué)習(xí)的參數(shù)。
8. 卷積神經(jīng)網(wǎng)絡(luò)示例
這里以 LeNet-5 為例,給出一個完整的卷積神經(jīng)網(wǎng)絡(luò)。
構(gòu)建深度卷積的模式:
卷積神經(jīng)網(wǎng)絡(luò)的參數(shù):
根據(jù)上表我們可以看出,對于卷積卷積神經(jīng)網(wǎng)絡(luò)的參數(shù):
9. 使用卷積神經(jīng)網(wǎng)絡(luò)
參數(shù)少的優(yōu)勢:
與普通的全連接神經(jīng)網(wǎng)絡(luò)相比,卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)更少。如圖中的例子,卷積神經(jīng)網(wǎng)絡(luò)僅有6×(5×5+1)=156個參數(shù),而普通的全連接網(wǎng)絡(luò)有3072×4704≈14M個參數(shù)。
參數(shù)共享
:一個特征檢測器(filter)對圖片的一部分有用的同時也有可能對圖片的另外一部分有用。連接的稀疏性
:在每一層中,每個輸出值只取決于少量的輸入。訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò):
我們將訓(xùn)練集輸入到卷積神經(jīng)網(wǎng)絡(luò)中,對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。利用梯度下降(Adam、momentum等優(yōu)化算法)最小化代價函數(shù)來尋找網(wǎng)絡(luò)最優(yōu)的參數(shù)。
聯(lián)系客服