W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
卷積神經(jīng)網(wǎng)絡(luò)與普通神經(jīng)網(wǎng)絡(luò)相同,因?yàn)樗鼈円灿删哂锌蓪W(xué)習(xí)的權(quán)重和偏差的神經(jīng)元組成。 普通的神經(jīng)網(wǎng)絡(luò)忽略了輸入數(shù)據(jù)的結(jié)構(gòu),所有的數(shù)據(jù)在送入網(wǎng)絡(luò)之前都被轉(zhuǎn)換為一維數(shù)組。 該過程適合常規(guī)數(shù)據(jù),但是如果數(shù)據(jù)包含圖像,則該過程可能很麻煩。
CNN 很容易解決這個問題。 它在處理圖像時考慮了圖像的二維結(jié)構(gòu),這使得它們可以提取特定于圖像的屬性。 這樣,CNN 的主要目標(biāo)就是從輸入層中的原始圖像數(shù)據(jù)到輸出層中的正確類。 普通神經(jīng)網(wǎng)絡(luò)和 CNN 之間唯一的區(qū)別在于處理輸入數(shù)據(jù)和圖層類型。
CNN的體系結(jié)構(gòu)概述
在架構(gòu)上,普通的神經(jīng)網(wǎng)絡(luò)接收輸入并通過一系列隱藏層轉(zhuǎn)換它。 在神經(jīng)元的幫助下,每層都連接到另一層。 普通神經(jīng)網(wǎng)絡(luò)的主要缺點(diǎn)是它們不能很好地擴(kuò)展到完整的圖像。
CNN 的體系結(jié)構(gòu)具有三維排列的神經(jīng)元,稱為寬度,高度和深度。 當(dāng)前圖層中的每個神經(jīng)元都連接到前一圖層的一小部分輸出。 它類似于在輸入圖像上疊加一個
20世紀(jì)60年代,Hubel和Wiesel在研究貓腦皮層中用于局部敏感和方向選擇的神經(jīng)元時發(fā)現(xiàn)其獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu)可以有效地降低反饋神經(jīng)網(wǎng)絡(luò)的復(fù)雜性,繼而提出了卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Networks)。
1980年,K.Fukushima提出的新識別機(jī)是卷積神經(jīng)網(wǎng)絡(luò)的第一個實(shí)現(xiàn)網(wǎng)絡(luò)。隨后,更多的科研工作者對該網(wǎng)絡(luò)進(jìn)行了改進(jìn)。其中,具有代表性的研究成果是Alexander和Taylor提出的“改進(jìn)認(rèn)知機(jī)”,該方法綜合了各種改進(jìn)方法的優(yōu)點(diǎn)并避免了耗時的誤差反向傳播。
現(xiàn)在,CNN已經(jīng)成為眾多科學(xué)領(lǐng)域的研究熱點(diǎn)之一,特別是在模式分類領(lǐng)域,由于該網(wǎng)絡(luò)避免了對圖像的復(fù)雜前期預(yù)處理,可以直接輸入原始圖像,因而得到了更為廣泛的應(yīng)用。
CNN概念:
在機(jī)器學(xué)習(xí)中,卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)是一種前饋神經(jīng)網(wǎng)絡(luò),它的人工神經(jīng)元可以響應(yīng)一部分覆蓋范圍內(nèi)的周圍單元,可以應(yīng)用于語音識別、圖像處理和圖像識別等領(lǐng)域。
CNN引入意義:
在全連接神經(jīng)網(wǎng)絡(luò)中(下面左圖),每相鄰兩層之間的每個神經(jīng)元之間都是有邊相連的。當(dāng)輸入層的特征維度變得很高時,這時全連接網(wǎng)絡(luò)需要訓(xùn)練的參數(shù)就會增大很多,計算速度就會變得很慢。
而在卷積神經(jīng)網(wǎng)絡(luò)CNN中(下面右圖),卷積層的神經(jīng)元只與前一層的部分神經(jīng)元節(jié)點(diǎn)相連,即它的神經(jīng)元間的連接是非全連接的,且同一層中某些神經(jīng)元之間的連接的權(quán)重w和偏移b是共享的,這樣大量地減少了需要訓(xùn)練參數(shù)的數(shù)量。
CNN核心思想:
CNN模型限制參數(shù)了個數(shù)并挖掘了局部結(jié)構(gòu)。主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。局部感受視野,權(quán)值共享以及時間或空間亞采樣這三種思想結(jié)合起來,獲得了某種程度的位移、尺度、形變不變性。通過“卷積核”作為中介。同一個卷積核在所有圖像內(nèi)是共享的,圖像通過卷積操作后仍然保留原先的位置關(guān)系。
CNN實(shí)質(zhì):
CNN在本質(zhì)上是一種輸入到輸出的映射,它能夠學(xué)習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對之間的映射能力。卷積網(wǎng)絡(luò)執(zhí)行的是有導(dǎo)師訓(xùn)練,所以其樣本集是由形如:(輸入向量,理想輸出向量)的向量對構(gòu)成的。所有這些向量對,都應(yīng)該是來源于網(wǎng)絡(luò)即將模擬的系統(tǒng)的實(shí)際“運(yùn)行”結(jié)果。它們可以是從實(shí)際運(yùn)行系統(tǒng)中采集來的。在開始訓(xùn)練前,所有的權(quán)都應(yīng)該用一些不同的小隨機(jī)數(shù)進(jìn)行初始化?!靶‰S機(jī)數(shù)”用來保證網(wǎng)絡(luò)不會因權(quán)值過大而進(jìn)入飽和狀態(tài)而導(dǎo)致訓(xùn)練失敗;“不同”用來保證網(wǎng)絡(luò)可以正常地學(xué)習(xí)。
CNN基本結(jié)構(gòu):
卷積神經(jīng)網(wǎng)絡(luò)CNN的結(jié)構(gòu)一般包含下面幾層:
1) 輸入層:用于數(shù)據(jù)的輸入。
2) 卷積層:卷積層是卷積核在上一級輸入層上通過逐一滑動窗口計算而得,卷積核中的每一個參數(shù)都相當(dāng)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的權(quán)值參數(shù),與對應(yīng)的局部像素相連接,將卷積核的各個參數(shù)與對應(yīng)的局部像素值相乘之和,得到卷積層上的結(jié)果。一般地,使用卷積核進(jìn)行特征提取和特征映射。
l 特征提取:每個神經(jīng)元的輸入與前一層的局部接受域相連,并提取該局部的特征。一旦該局部特征被提取后,它與其它特征間的位置關(guān)系也隨之確定下來;
l 特征映射:網(wǎng)絡(luò)的每個計算層由多個特征映射組成,每個特征映射是一個平面,平面上所有神經(jīng)元的權(quán)值相等。特征映射結(jié)構(gòu)采用影響函數(shù)核小的sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。此外,由于一個映射面上的神經(jīng)元共享權(quán)值,因而減少了網(wǎng)絡(luò)自由參數(shù)的個數(shù)。
卷積神經(jīng)網(wǎng)絡(luò)中的每一個卷積層都緊跟著一個用來求局部平均與二次提取的計算層,這種特有的兩次特征提取結(jié)構(gòu)減小了特征分辨率。
3) 激勵層:由于卷積也是一種線性運(yùn)算,因此需要增加非線性映射。使用的激勵函數(shù)一般為ReLu函數(shù):f(x)=max(x,0)。
4) 池化層:進(jìn)行下采樣,對特征圖稀疏處理,減少數(shù)據(jù)運(yùn)算量。通過卷積層獲得了圖像的特征之后,理論上可以直接使用這些特征訓(xùn)練分類器(如softmax),但這樣做將面臨巨大的計算量挑戰(zhàn),且容易產(chǎn)生過擬合現(xiàn)象。為了進(jìn)一步降低網(wǎng)絡(luò)訓(xùn)練參數(shù)及模型的過擬合程度,需要對卷積層進(jìn)行池化/采樣(Pooling)處理。池化/采樣的方式通常有以下兩種:a)Max-Pooling: 選擇Pooling窗口中的最大值作為采樣值;b)Mean-Pooling: 將Pooling窗口中的所有值相加取平均,以平均值作為采樣值。
5) 全連接層:CNN尾部進(jìn)行重新擬合,減少特征信息的損失。
6) 輸出層:用于最后輸出結(jié)果。
CNN訓(xùn)練過程:
1.向前傳播階段:
a)從樣本集中取一個樣本(X,Yp),將X輸入網(wǎng)絡(luò);
b)計算相應(yīng)的實(shí)際輸出Op。
在本階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。這個過程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運(yùn)行時執(zhí)行的過程。在此過程中,網(wǎng)絡(luò)執(zhí)行的是計算,實(shí)際上就是輸入與每層的權(quán)值矩陣相點(diǎn)乘,得到最后的輸出結(jié)果:
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
2.向后傳播階段:
a)計算實(shí)際輸出Op與相應(yīng)的理想輸出Yp的差;
b)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。
CNN優(yōu)點(diǎn):
1) 輸入圖像和網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)能很好的吻合;
2) 盡管使用較少參數(shù),仍然有出色性能;
3) 避免了顯式的特征抽取,而隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí);
4) 特征提取和模式分類同時進(jìn)行,并同時在訓(xùn)練中產(chǎn)生,網(wǎng)絡(luò)可以并行學(xué)習(xí);
5) 權(quán)值共享減少網(wǎng)絡(luò)的訓(xùn)練參數(shù),降低了網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,適用性更強(qiáng);
6) 無需手動選取特征,訓(xùn)練好權(quán)重,即得特征,分類效果好;
7) 可以直接輸入網(wǎng)絡(luò),避免了特征提取和分類過程中數(shù)據(jù)重建的復(fù)雜度。
CNN缺點(diǎn):
1) 需要調(diào)整參數(shù);
2) 需要大樣本量,訓(xùn)練最好要GPU;
3) 物理含義不明確,神經(jīng)網(wǎng)絡(luò)本身就是一種難以解釋的 “黑箱模型”。
CNN常用框架:
1. Caffe:源于Berkeley的主流CV工具包,支持C++,python,matlab; Model Zoo中有大量預(yù)訓(xùn)練好的模型供使用;
2. Torch: Facebook用的卷積神經(jīng)網(wǎng)絡(luò)工具包,通過時域卷積的本地接口,使用非常直觀; 定義新網(wǎng)絡(luò)層簡單;
3. TensorFlow**:**Google的深度學(xué)習(xí)框架;TensorBoard可視化很方便;數(shù)據(jù)和模型并行化好,速度快。
CNN應(yīng)用場景:
應(yīng)用場景包括機(jī)器學(xué)習(xí)、語音識別、文檔分析、語言檢測和圖像識別等領(lǐng)域。
特別強(qiáng)調(diào)的是:CNN在圖像處理和圖像識別領(lǐng)域取得了很大的成功,在國際標(biāo)準(zhǔn)的ImageNet數(shù)據(jù)集上,許多成功的模型都是基于CNN的。CNN相較于傳統(tǒng)的圖像處理算法的好處之一在于:避免了對圖像復(fù)雜的前期預(yù)處理過程,可以直接輸入原始圖像。
結(jié)語:
卷積神經(jīng)網(wǎng)絡(luò)CNN是近年發(fā)展起來,并引起廣泛重視的一種高效識別方法。卷積神經(jīng)網(wǎng)絡(luò)以其局部權(quán)值共享的特殊結(jié)構(gòu)在模式識別方面有著獨(dú)特的優(yōu)越性,其布局更接近于實(shí)際的生物神經(jīng)網(wǎng)絡(luò),權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性,特別是多維輸入向量的圖像可以直接輸入網(wǎng)絡(luò)這一特點(diǎn)避免了特征提取和分類過程中數(shù)據(jù)重建的復(fù)雜度。CNN算法在人工智能之機(jī)器學(xué)習(xí)、語音識別、文檔分析、語言檢測和圖像識別等領(lǐng)域等領(lǐng)域有著廣泛應(yīng)用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: