【TensorFlow】01 TensorFlow簡介與Python基礎(chǔ)
997
2025-04-01
1.2 卷積神經(jīng)網(wǎng)絡(luò)的形成和演變
卷積神經(jīng)網(wǎng)絡(luò)最初是受到視覺系統(tǒng)的神經(jīng)機制啟發(fā)、針對二維形狀的識別設(shè)計的一種生物物理模型,在平移情況下具有高度不變性,在縮放和傾斜情況下也具有一定的不變性。這種生物物理模型集成了“感受野”的思想,可以看作一種特殊的多層感知器或前饋神經(jīng)網(wǎng)絡(luò),具有局部連接、權(quán)值共享的特點,其中大量神經(jīng)元按照一定方式組織起來對視野中的交疊區(qū)域產(chǎn)生反應(yīng)。1962年,Hubel和Wiesel通過對貓的視覺皮層細胞的研究,提出了感受野的概念[17-18]。1979年,日本學者Fukushima在感受野概念的基礎(chǔ)上,提出了神經(jīng)認知機模型[14-16],該模型被認為是實現(xiàn)的第一個卷積神經(jīng)網(wǎng)絡(luò)。1989年,LeCun等人首次使用了權(quán)值共享技術(shù)[45]。1998年,LeCun等人將卷積層和下采樣層相結(jié)合,設(shè)計卷積神經(jīng)網(wǎng)絡(luò)的主要結(jié)構(gòu),形成了現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)的雛形(LeNet)[19]。2012年,卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展取得了歷史性的突破,Krizhevsky等人采用修正線性單元(Rectif?ied Linear Unit,ReLU)作為激活函數(shù)提出了著名的AlexNet,并在大規(guī)模圖像評測中取得了優(yōu)異成績[46],成為深度學習發(fā)展史上的重要拐點。
在理論上,卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的多層感知器或前饋神經(jīng)網(wǎng)絡(luò)。標準的卷積神經(jīng)網(wǎng)絡(luò)一般由輸入層、交替的卷積層和池化層、全連接層和輸出層構(gòu)成,如圖1.4所示。其中,卷積層也稱為“檢測層”,“池化層”又稱為下采樣層,它們可以被看作特殊的隱含層。卷積層的權(quán)值也稱為卷積核。雖然卷積核一般是需要訓練的,但有時也可以是固定的,比如直接采用Gabor濾波器[47]。作為計算機視覺領(lǐng)域最成功的一種深度學習模型,卷積神經(jīng)網(wǎng)絡(luò)在深度學習興起之后已經(jīng)通過不斷演化產(chǎn)生了大量變種模型。
圖1.4 標準卷積神經(jīng)網(wǎng)絡(luò)
從結(jié)構(gòu)的角度看,卷積神經(jīng)網(wǎng)絡(luò)起初只能處理黑白或灰度圖像,變種模型通過把紅、綠、藍3個顏色通道作為一個整體輸入已能直接處理彩色——圖像[46],有些還可以直接處理多幀圖像甚至連續(xù)圖像[48]。同時,變種模型可以使用多個相鄰的卷積層或多個相鄰的池化層,也可以使用重疊池化和最大池化,還可以使用修正線性單元、滲漏修正線性單元(Leaky ReLU,LReLU)、參數(shù)修正線性單元(Parametric ReLU,PReLU)或指數(shù)線性單元(Exponential Linear Unit,ELU)取代sigmoid單元作為激活函數(shù)[46, 49-51],也可以在輸出層采用軟最大函數(shù)softmax替代sigmoid函數(shù)以產(chǎn)生偽概率。此外,卷積神經(jīng)網(wǎng)絡(luò)可以設(shè)計成孿生結(jié)構(gòu)(siamese architecture),把原始數(shù)據(jù)映射到目標空間,產(chǎn)生對幾何扭曲的魯棒性[52]。最后,卷積神經(jīng)網(wǎng)絡(luò)可以設(shè)計成快道結(jié)構(gòu),允許信息通過快道無阻礙地跨越多層流動,使得用梯度下降訓練非常深的網(wǎng)絡(luò)變得更加容易[53]。
從卷積核的角度看,卷積神經(jīng)網(wǎng)絡(luò)可以通過采用非常小的卷積核,比如1×1和3×3大小,被加深成一個更深的網(wǎng)絡(luò),比如16層或19層的VGGNet[54]。如果采用參數(shù)修正線性單元代替修正線性單元,可以把VGGNet發(fā)展成MSRANet[55]。而且,卷積神經(jīng)網(wǎng)絡(luò)通過使用小卷積核在保持總體計算代價的條件下增加深度和寬度,并與“攝入模塊(inception module)”進行集成,可以用來建立谷歌網(wǎng)絡(luò)(GoogLeNet)[56]。此外,卷積神經(jīng)網(wǎng)絡(luò)通過使用微型多層感知器代替卷積核,還可以被擴展成更為復(fù)雜的網(wǎng)絡(luò),例如“網(wǎng)中網(wǎng)(Network In Network,NIN)”[57]。
從區(qū)域的角度看,區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Region-based CNN,R-CNN)可以用來抽取區(qū)域卷積特征,并通過區(qū)域提議進行更加魯棒的定位和分類[58]。空間金字塔池化網(wǎng)絡(luò)(Spatial Pyramid Pooling Net,SPPNet)可以克服其輸入大小固定的缺點,辦法是在最后一個卷積層和第一個全連接層之間插入一個空間金字塔池化層[59]。不管輸入的大小如何,空間金字塔池化層都能夠產(chǎn)生固定大小的輸出,并使用多尺度空間箱(spatial bin)代替滑動窗口對在不同尺度上抽取的特征進行池化。雖然與R-CNN相比,空間金字塔池化網(wǎng)絡(luò)具有能夠直接輸入可變大小圖像的優(yōu)勢,但是它們需要一個多階段的管道把特征寫入硬盤,訓練過程較為麻煩。為了解決這個訓練問題,可以在R-CNN中插入一個特殊的單級空間金字塔池化層(稱為感興趣區(qū)池化層,ROI pooling layer),并將其提取的特征向量輸入到一個最終分化成兩個兄弟輸出層的全連接層,再構(gòu)造一個單階段多任務(wù)損失函數(shù)對所有網(wǎng)絡(luò)層進行整體訓練,建立快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast R-CNN)[60],其優(yōu)點是可以通過優(yōu)化一個單階段多任務(wù)損失函數(shù)進行聯(lián)合訓練。為了減少區(qū)域提議的選擇代價,可以插入一個區(qū)域提議網(wǎng)絡(luò)與Fast R-CNN共享所有卷積層,進一步建立更快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster R-CNN),產(chǎn)生幾乎零代價的提議預(yù)測對象(或稱為目標、物體)邊界及有關(guān)分數(shù)[61]。為了獲得實時性能極快的對象檢測速度,可以把輸入圖像劃分成許多網(wǎng)格,并通過單個網(wǎng)絡(luò)構(gòu)造的整體檢測管道,直接從整幅圖像預(yù)測對象的邊框和類概率建立YOLO模型,只需看一遍圖像就能知道對象的位置和類別[62]。為了更準確地定位對象,還可以在多尺度特征圖的每個位置上,使用不同長寬比的缺省框建立單次檢測器(SSD)來取代YOLO[63]。此外,采用空間變換模塊有助于卷積神經(jīng)網(wǎng)絡(luò)學到對平移、縮放、旋轉(zhuǎn)和其他扭曲更魯棒的不變性[64]。最后,可以把Faster R-CNN擴展成掩膜區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Mask R-CNN),在圖像中有效檢測對象的同時,還能夠?qū)γ總€對象實例生成一個高質(zhì)量的分割掩膜[65]。
從優(yōu)化的角度看,許多技術(shù)可以用來訓練卷積神經(jīng)網(wǎng)絡(luò),比如丟失輸出[40, 66]、丟失連接[41]和塊歸一化(batch normalization)[67]。丟失輸出是一種減小過擬合的正則化技術(shù),而丟失連接是丟失輸出的推廣。塊歸一化(或批量歸一化)則是按迷你塊大小對某些層的輸入進行歸一化處理的方法。此外,殘差網(wǎng)絡(luò)(Residual Network,ResNet)采用跨越2~3層的連接策略也是一種重要的優(yōu)化技術(shù),可以用來克服極深網(wǎng)絡(luò)的訓練困難。借助殘差學習能夠快速有效地成功訓練超過150層甚至1000層的深層卷積神經(jīng)網(wǎng)絡(luò),它在ILSVRC & COCO 2015的多項任務(wù)評測中發(fā)揮了關(guān)鍵作用[68],全部取得了第一名的突出成績。最后,為了優(yōu)化模型的結(jié)構(gòu),還可以采用火焰模塊(f?ire module)建立卷積神經(jīng)網(wǎng)絡(luò)的擠壓模型SqueezeNet[69],也可以結(jié)合深度壓縮(deep compression)技術(shù)進一步減少網(wǎng)絡(luò)的參數(shù)[70]。
從模型演變的角度看,卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展脈絡(luò)如圖1.5所示。從圖中可以看出,現(xiàn)代卷積網(wǎng)絡(luò)以LeNet為雛形,在經(jīng)過AlexNet的歷史突破之后,演化生成了很多不同的網(wǎng)絡(luò)模型,主要包括:加深模型、跨連模型、應(yīng)變模型、區(qū)域模型、分割模型、特殊模型和強化模型等。加深模型的代表是VGGNet-16、VGGNet-19和GoogLeNet;跨連模型的代表是HighwayNet、ResNet和DenseNet;應(yīng)變模型的代表是SPPNet;區(qū)域模型的代表是R-CNN、Fast R-CNN、Faster R-CNN、YOLO和SSD;分割模型的代表是FCN、PSPNet和Mask R-CNN;特殊
模型的代表是SiameseNet、SqueezeNet、DCGAN、NIN;強化模型的代表是DQN和AlphaGo。
圖1.5 卷積神經(jīng)網(wǎng)絡(luò)的演變
深度學習 卷積神經(jīng)網(wǎng)絡(luò) 神經(jīng)網(wǎng)絡(luò)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。