CNN卷积神经网络介绍
CNN卷積神經(jīng)網(wǎng)絡(luò)介紹
- 1、ANN/CNN/RNN是什么?
- 2、CNN(卷積神經(jīng)網(wǎng)絡(luò))簡(jiǎn)介
- 2.1輸入層
- 2.2隱含層
- 2.2.1卷積層
- 2.2.2 激活層(ReLU)
- 2.2.3池化層 (Pooling)
- 2.2.4全連接層
- 2.2.5參數(shù)減少與權(quán)值共享
- 3、卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)
在神經(jīng)網(wǎng)絡(luò)中,卷積神經(jīng)網(wǎng)絡(luò)(ConvNets或CNNs)是進(jìn)行圖像識(shí)別、圖像分類(lèi)的主要類(lèi)別之一。物體探測(cè)、人臉識(shí)別等是CNNs應(yīng)用最廣泛的領(lǐng)域之一。
CNN圖像分類(lèi)采用一個(gè)輸入圖像,對(duì)其進(jìn)行處理,并將其分類(lèi)到特定的類(lèi)別中,其包含了一個(gè)由卷積層和子采樣層(池化層)構(gòu)成的特征抽取器。計(jì)算機(jī)將輸入圖像視為像素陣列,它取決于圖像的分辨率,可以看到h*w *d(h =高度,w =寬度,d =尺寸)。
例如,一幅6x6x3矩陣陣列的RGB圖像(3指RGB值)和一幅4x4x1矩陣陣列的灰度圖像。
深度學(xué)習(xí)CNN模型進(jìn)行訓(xùn)練和測(cè)試,每個(gè)輸入圖像都將通過(guò)一系列帶有過(guò)濾器(Kernals)、池化、全連接層(FC)的卷積層,并應(yīng)用Softmax函數(shù)對(duì)概率值在0到1之間的對(duì)象進(jìn)行分類(lèi)。下圖是CNN處理輸入圖像的完整流程,并根據(jù)值對(duì)對(duì)象進(jìn)行分類(lèi)。
1、ANN/CNN/RNN是什么?
1)多層感知器Multi-Layer Perceptron (MLP) /人工神經(jīng)網(wǎng)絡(luò)Artificial Neural Networks (ANN)
(1)隨著圖像尺寸的增大,可訓(xùn)練參數(shù)的數(shù)量會(huì)急劇增加
(2)MLP會(huì)丟失圖像的空間特征。
2)卷積神經(jīng)網(wǎng)絡(luò)Convolution Neural Networks (CNN)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)目前在深度學(xué)習(xí)領(lǐng)域非常熱門(mén)。這些CNN模型被應(yīng)用于不同的應(yīng)用和領(lǐng)域,在圖像和視頻處理項(xiàng)目中尤其普遍。
3)循環(huán)神經(jīng)網(wǎng)絡(luò)Recurrent Neural Networks (RNN)
RNN在隱藏狀態(tài)上有一個(gè)循環(huán)連接,此循環(huán)約束能夠確保在輸入數(shù)據(jù)中捕捉到順序信息。
優(yōu)勢(shì):RNN能夠捕捉數(shù)據(jù)中出現(xiàn)的順序信息,例如,預(yù)測(cè)時(shí)文本中單詞之間的依賴關(guān)系
(它們構(gòu)成了深度學(xué)習(xí)中大多數(shù)預(yù)訓(xùn)練模型的基礎(chǔ):事實(shí)上,不論是哪種網(wǎng)絡(luò),他們?cè)趯?shí)際應(yīng)用中常常都混合著使用,比如CNN和RNN在上層輸出之前往往會(huì)接上全連接層,很難說(shuō)某個(gè)網(wǎng)絡(luò)到底屬于哪個(gè)類(lèi)別。)
2、CNN(卷積神經(jīng)網(wǎng)絡(luò))簡(jiǎn)介
CNN由輸入和輸出層以及多個(gè)隱藏層組成,隱藏層可分為卷積層,池化層、RELU層和全連通層。
卷積網(wǎng)絡(luò)的核心思想是將:局部感受野、權(quán)值共享以及時(shí)間或空間亞采樣這三種結(jié)構(gòu)思想結(jié)合起來(lái)獲得了某種程度的位移、尺度、形變不變性。。
這里主要討論CNN相比與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)的不同之處,CNN主要有三大特色,分別是局部感知、權(quán)重共享和多卷積核
卷積網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對(duì)卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對(duì)之間的映射能力。卷積網(wǎng)絡(luò)執(zhí)行的是有導(dǎo)師訓(xùn)練,所以其樣本集是由形如:(輸入向量,理想輸出向量)的向量對(duì)構(gòu)成的。所有這些向量對(duì),都應(yīng)該是來(lái)源于網(wǎng)絡(luò)即將模擬的系統(tǒng)的實(shí)際“運(yùn)行”結(jié)果。它們可以是從實(shí)際運(yùn)行系統(tǒng)中采集來(lái)的。在開(kāi)始訓(xùn)練前,所有的權(quán)都應(yīng)該用一些不同的小隨機(jī)數(shù)進(jìn)行初始化。“小隨機(jī)數(shù)”用來(lái)保證網(wǎng)絡(luò)不會(huì)因權(quán)值過(guò)大而進(jìn)入飽和狀態(tài),從而導(dǎo)致訓(xùn)練失敗;“不同”用來(lái)保證網(wǎng)絡(luò)可以正常地學(xué)習(xí)。實(shí)際上,如果用相同的數(shù)去初始化權(quán)矩陣,則網(wǎng)絡(luò)無(wú)能力學(xué)習(xí)
2.1輸入層
一個(gè)標(biāo)量(一個(gè)數(shù)字)有0維,一個(gè)向量有1維,一個(gè)矩陣有2維,一個(gè)張量有3維或更多。但是,為了簡(jiǎn)單起見(jiàn),我們通常也稱向量和矩陣為張量。CNN的輸入一般是二維向量,可以有高度,比如,RGB圖像;
在深度學(xué)習(xí)中,張量無(wú)處不在。嗯,谷歌的框架被稱為T(mén)ensorFlow是有原因的,那到底什么是張量?
張量
張量(tensor)是多維數(shù)組,目的是把向量、矩陣推向更高的維度。
2.2隱含層
2.2.1卷積層
卷積是從輸入圖像中提取特征的第一層。它是一個(gè)數(shù)學(xué)運(yùn)算,需要兩個(gè)輸入,如圖像矩陣和一個(gè)濾波器(或核)。這個(gè)過(guò)程我們可以理解為我們使用一個(gè)過(guò)濾器(卷積核)來(lái)過(guò)濾圖像的各個(gè)小區(qū)域,得到這些小區(qū)域的特征值,從而保持像素之間的關(guān)系。
卷積層是CNN的核心,層的參數(shù)由一組可學(xué)習(xí)的濾波器(filter)或內(nèi)核(kernels)組成,它們具有小的感受野,延伸到輸入容積的整個(gè)深度。 在前饋期間,每個(gè)濾波器對(duì)輸入進(jìn)行卷積,計(jì)算濾波器和輸入之間的點(diǎn)積,并產(chǎn)生該濾波器的二維激活圖(輸入一般二維向量,但可能有高度(即RGB))。 簡(jiǎn)單來(lái)說(shuō),卷積層是用來(lái)對(duì)輸入層進(jìn)行卷積,提取更高層次的特征。
2.2.2 激活層(ReLU)
把卷積層輸出結(jié)果做非線性映射。
CNN采用的激勵(lì)函數(shù)一般為ReLU(The Rectified Linear Unit/修正線性單元),它的特點(diǎn)是收斂快,求梯度簡(jiǎn)單,但較脆弱,圖像如下。
這個(gè)RELU我們之前講過(guò),全名將修正線性單元,是神經(jīng)元的激活函數(shù),對(duì)輸入值x的作用是max(0,x),當(dāng)然RELU只是一種選擇,還有選Leak-Relu等等,一般都是用Relu!
2.2.3池化層 (Pooling)
當(dāng)圖像太大時(shí),池化圖層部分會(huì)減少參數(shù)的數(shù)量。空間匯聚也稱為次采樣或下采樣,它降低了圖像的維度,但保留了重要的信息。Pooling可以有不同的類(lèi)型:
Max Pooling
Average Pooling
Sum Pooling Max pooling顧名思義就是從校正后的feature map中取最大的元素。Average Pooling 取的是平均值,而Sum Pooling取的是總和;
最常見(jiàn)的池化層是規(guī)模為2*2, 步幅為2,對(duì)輸入的每個(gè)深度切片進(jìn)行下采樣。每個(gè)MAX操作對(duì)四個(gè)數(shù)進(jìn)行,如下圖所示:
池化操作將保存深度大小不變。如果池化層的輸入單元大小不是二的整數(shù)倍,一般采取邊緣補(bǔ)零(zero-padding)的方式補(bǔ)成2的倍數(shù),然后再池化。
之所以這么做的原因,是因?yàn)榧词棺鐾炅司矸e,圖像仍然很大(因?yàn)榫矸e核比較小),所以為了降低數(shù)據(jù)維度,就進(jìn)行下采樣。
1)池化層相比卷積層可以更有效的降低數(shù)據(jù)維度,縮小圖像的規(guī)模,提升計(jì)算速度。
2)這些統(tǒng)計(jì)特征能夠有更低的維度,減少計(jì)算量;這么做不但可以大大減少運(yùn)算量,不容易過(guò)擬合,當(dāng)參數(shù)過(guò)多的時(shí)候很容易造成過(guò)度擬合。
2.2.4全連接層
對(duì)于任意一個(gè)卷積層,要把它變成全連接層只需要把權(quán)重變成一個(gè)巨大的矩陣,其中大部分都是0 除了一些特定區(qū)塊(因?yàn)榫植扛兄?#xff09;,而且好多區(qū)塊的權(quán)值還相同(由于權(quán)重共享)。我們稱這一層為FC層,我們將矩陣平鋪成向量,并將其作為一個(gè)完全連接的層,就像一個(gè)神經(jīng)網(wǎng)絡(luò)。
這個(gè)層就是一個(gè)常規(guī)的神經(jīng)網(wǎng)絡(luò),它的作用是對(duì)經(jīng)過(guò)多次卷積層和多次池化層所得出來(lái)的高級(jí)特征進(jìn)行全連接(全連接就是常規(guī)神經(jīng)網(wǎng)絡(luò)的性質(zhì)),算出最后的預(yù)測(cè)值。
全連接層和卷積層可以相互轉(zhuǎn)換:
2.2.5參數(shù)減少與權(quán)值共享
盡管局部感知使計(jì)算量減少了幾個(gè)數(shù)量級(jí),但權(quán)重參數(shù)數(shù)量依然很多。能不能再進(jìn)一步減少呢?方法就是權(quán)值共享。
權(quán)值共享:不同的圖像或者同一張圖像共用一個(gè)卷積核,減少重復(fù)的卷積核。同一張圖像當(dāng)中可能會(huì)出現(xiàn)相同的特征,共享卷積核能夠進(jìn)一步減少權(quán)值參數(shù)。
卷積神經(jīng)網(wǎng)絡(luò)以其局部權(quán)值共享的特殊結(jié)構(gòu)在語(yǔ)音識(shí)別和圖像處理方面有著獨(dú)特的優(yōu)越性,其布局更接近于實(shí)際的生物神經(jīng)網(wǎng)絡(luò),權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性,特別是多維輸入向量的圖像可以直接輸入網(wǎng)絡(luò)這一特點(diǎn)避免了特征提取和分類(lèi)過(guò)程中數(shù)據(jù)重建的復(fù)雜度。
3、卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)
在這里介紹一下深度學(xué)習(xí)入門(mén)課程,也是小編學(xué)習(xí)的一種,吳恩達(dá)老師的深度學(xué)習(xí)課程神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)
卷積神經(jīng)網(wǎng)絡(luò)CNN主要用來(lái)識(shí)別位移、縮放及其他形式扭曲不變性的二維圖形。由于CNN的特征檢測(cè)層通過(guò)訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),所以在使用CNN時(shí),避免了顯式的特征抽取,而隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí);再者由于同一特征映射面上的神經(jīng)元權(quán)值相同,所以網(wǎng)絡(luò)可以并行學(xué)習(xí),這也是卷積網(wǎng)絡(luò)相對(duì)于神經(jīng)元彼此相連網(wǎng)絡(luò)的一大優(yōu)勢(shì)。
流的分類(lèi)方式幾乎都是基于統(tǒng)計(jì)特征的,這就意味著在進(jìn)行分辨前必須提取某些特征。然而,顯式的特征提取并不容易,在一些應(yīng)用問(wèn)題中也并非總是可靠的。卷積神經(jīng)網(wǎng)絡(luò),它避免了顯式的特征取樣,隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí)。這使得卷積神經(jīng)網(wǎng)絡(luò)明顯有別于其他基于神經(jīng)網(wǎng)絡(luò)的分類(lèi)器,通過(guò)結(jié)構(gòu)重組和減少權(quán)值將特征提取功能融合進(jìn)多層感知器。它可以直接處理灰度圖片,能夠直接用于處理基于圖像的分類(lèi)。
卷積網(wǎng)絡(luò)較一般神經(jīng)網(wǎng)絡(luò)在圖像處理方面有如下優(yōu)點(diǎn): a)輸入圖像和網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)能很好的吻合;b)特征提取和模式分類(lèi)同時(shí)進(jìn)行,并同時(shí)在訓(xùn)練中產(chǎn)生;c)權(quán)重共享可以減少網(wǎng)絡(luò)的訓(xùn)練參數(shù),使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得更簡(jiǎn)單,適應(yīng)性更強(qiáng)。
卷積神經(jīng)網(wǎng)絡(luò)之訓(xùn)練算法
1. 同一般機(jī)器學(xué)習(xí)算法,先定義Loss function,衡量和實(shí)際結(jié)果之間差距。
2. 找到最小化損失函數(shù)的W和b, CNN中用的算法是SGD(隨機(jī)梯度下降)。
卷積神經(jīng)網(wǎng)絡(luò)之優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
? 共享卷積核,對(duì)高維數(shù)據(jù)處理無(wú)壓力
? 無(wú)需手動(dòng)選取特征,訓(xùn)練好權(quán)重,即得特征分類(lèi)效果好
缺點(diǎn)
? 需要調(diào)參,需要大樣本量,訓(xùn)練最好要GPU
? 物理含義不明確(也就說(shuō),我們并不知道沒(méi)個(gè)卷積層到底提取到的是什么特征,而且神經(jīng)網(wǎng)絡(luò)本身就是一種難以解釋的“黑箱模型”)
引用文章鏈接:
http://yann.lecun.com/exdb/lenet/weirdos.html
https://www.cnblogs.com/duanhx/p/9655223.html
總結(jié)
以上是生活随笔為你收集整理的CNN卷积神经网络介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: EEG脑地形图绘制程序
- 下一篇: mysql定时任务每天凌晨删除一周前数据