導航:首頁 > 編程大全 > alexnet網路結構詳解

alexnet網路結構詳解

發布時間:2023-03-23 08:26:27

⑴ (2012, AlexNet) ImageNet Classification with Deep Convolutional Neural Networks

上一篇文章中的LeNet-5是第一個廣為人知的經典CNN網路,但那是20年前提出的CNN網路,最成功的案例是解決了手寫數字識別的問題,當時被廣泛應用於郵局/銀行的手寫郵編/支票數字自動識別系統。但直到2012年之前,在這14年間,CNN網路在圖像識別領域的地位逐漸被其他分類模型如SVM取代。其中主要的原因有(事後諸葛亮......):

經過十幾年的發展,以上制約CNN網路發展的主要限制因素一個個被解決,結果在2012年的ImageNet競賽中,繼LeNet-5之後的第二個經典CNN網路—AlexNet橫空出世。以超出第二名10%以上的top-5准確率,勇奪ImageNet2012分類比賽的冠軍,從此, 深度學習 重新回到人們的視野,並一發不可收拾。

下面從一些直觀的數據比較1998年的LeNet-5和2012年的AlexNet的區別:

AlexNet網路結構如下圖所示:

論文中由於使用了2塊GPU,將網路結構布置成了上下兩部分,看著很不方便,上圖是在網上找的簡易版本

下面總結AlexNet的主要特點:

3.1. 使引入Relu激團寬腔活函數減輕深度網路難以訓練的問題

關於CNN網路的激活函數的討論,SigAI公眾號這篇文章總結的挺好:

另外,下面這篇論文對深度網路難以訓練的問題進行了分析:

之前的CNN網路,包括前面著名的LeNet-5,都使用tanh/Sigmoid作為激活函數,這類激活函數具有巧槐飽和性,在訓練深層網路時會造成梯度消失問題,而AlexNet引入了非飽和的Relu激活函數,有效地緩解了梯度消失問題。

3.2. 解決深度網路的過擬合問題

一方面,近幾年來,人們越來越意識到構建龐大的數據集的重要性,於是出現了像ImageNet這樣超過1500萬張標注圖片,2200多種類別的數據集,ILSVRC2012中,AlexNet使用了150萬張圖片的龐大訓練集,使得擁有6000萬個參數的AlexNet也沒出現嚴重過擬合問題;

另外,AlexNet在訓練時使用了數據增強(data augmentation)策略,相當於進一步擴大了訓練數據集;

最後,AlexNet在全連接層部分引入了一個dropout層,同樣能有效防止模型出現過擬合。

3.3. 計算能力問題

盡管AlexNet的模型復雜度很大,但其利用了英偉達GPU強大的計算能力,在GPU面前,模型復雜度不是問題。

從模型的設計思路來看,其實AlexNet遵循了LeNet-5的思想,即使用交替的卷積塌衫層和池化層用於提取圖像的高級語義特徵,同時降低特徵尺寸。然後使用全連接層/MLP作為分類層。

但是,在細節部分,ALexNet引入了很多新的元素,用於解決以上提到的CNN網路遇到的諸多問題,使得CNN網路開始重新散發光芒。

⑵ 深度學習之卷積神經網路經典模型

LeNet-5模型 在CNN的應用中,文字識別系統所用的LeNet-5模型是非常經典的模型。LeNet-5模型是1998年,Yann LeCun教授提出的,它是第一個成功大規模應用在手寫數字識別問題的卷積神經網路,在MNIST數據集中的正確率可以高達99.2%。

下面詳細介紹一下LeNet-5模型工作的原理。
LeNet-5模型一共有7層,每層包含眾多參數,也就是卷積神經網路中的參數。雖然層數只有7層,這在如今龐大的神經網路中可是說是非常少的了,但是包含了卷積層,池化層,全連接層,可謂麻雀雖小五臟俱全了。為了方便,我們把卷積層稱為C層,下采樣層叫做下采樣層。
首先,輸入層輸入原始圖像,原始圖像被處理成32×32個像素點的值。然後,後面的隱層計在卷積和子抽樣之間交替進行。C1層是卷積層,包含了六個特徵圖。每個映射也就是28x28個神經元。卷積核可以是5x5的十字形,這28×28個神經元共享卷積核權值參數,通過卷積運算,原始信號特徵增強,同時也降低了雜訊,當卷積核不同時,提取到圖像中的特徵不同;C2層是一個池化層,池化層的功能在上文已經介紹過了,它將局部像素值平均化來實現子抽樣。
池化層包含了六個特徵映射,每個映射的像素值為14x14,這樣的池化層非常重要,可以在一定程度上保證網路的特徵被提取,同時運算量也大大降低,減少了網路結構過擬合的風險。因為卷積層與池化層是交替出現的,所以隱藏層的第三層又是一個卷積層,第二個卷積層由16個特徵映射構成,每個特徵映射用於加權和計算的卷積核為10x10的。第四個隱藏層,也就是第二個池化層同樣包含16個特徵映射,每個特徵映射中所用的卷積核是5x5的。第五個隱藏層是用5x5的卷積核進行運算,包含了120個神經元,也是這個網路中卷積運算的最後一層。
之後的第六層便是全連接層,包含了84個特徵圖。全連接層中對輸入進行點積之後加入偏置,然後經過一個激活函數傳輸給輸出層的神經元。最後一層,也就是第七層,為了得到輸出向量,設置了十個神經元來進行分類,相當於輸出一個包含十個元素的一維數組,向量中的十個元素即0到9。
AlexNet模型
AlexNet簡介
2012年Imagenet圖像識別大賽中,Alext提出的alexnet網路模型一鳴驚人,引爆了神經網路的應用熱潮,並且贏得了2012屆圖像識別大賽的冠軍,這也使得卷積神經網路真正意義上成為圖像處理上的核心演算法。上文介紹的LeNet-5出現在上個世紀,雖然是經典,但是迫於種種復雜的現實場景限制,只能在一些領域應用。不過,隨著SVM等手工設計的特徵的飛速發展,LeNet-5並沒有形成很大的應用狀況。隨著ReLU與dropout的提出,以及GPU帶來算力突破和互聯網時代大數據的爆發,卷積神經網路帶來歷史的突破,AlexNet的提出讓深度學習走上人工智慧的最前端。
圖像預處理
AlexNet的訓練數據採用ImageNet的子集中的ILSVRC2010數據集,包含了1000類,共1.2百萬的訓練圖像,50000張驗證集,150000張測試集。在進行網路訓練之前我們要對數據集圖片進行預處理。首先我們要將不同解析度的圖片全部變成256x256規格的圖像,變換方法是將圖片的短邊縮放到 256像素值,然後截取長邊的中間位置的256個像素值,得到256x256大小的圖像。除了對圖片大小進行預處理,還需要對圖片減均值,一般圖像均是由RGB三原色構成,均值按RGB三分量分別求得,由此可以更加突出圖片的特徵,更方便後面的計算。
此外,對了保證訓練的效果,我們仍需對訓練數據進行更為嚴苛的處理。在256x256大小的圖像中,截取227x227大小的圖像,在此之後對圖片取鏡像,這樣就使得原始數據增加了(256-224)x(256-224)x2= 2048倍。最後對RGB空間做PCA,然後對主成分做(0,0.1)的高斯擾動,結果使錯誤率下降1%。對測試數據而言,抽取以圖像4個角落的大小為224224的圖像,中心的224224大小的圖像以及它們的鏡像翻轉圖像,這樣便可以獲得10張圖像,我們便可以利用softmax進行預測,對所有預測取平均作為最終的分類結果。
ReLU激活函數
之前我們提到常用的非線性的激活函數是sigmoid,它能夠把輸入的連續實值全部確定在0和1之間。但是這帶來一個問題,當一個負數的絕對值很大時,那麼輸出就是0;如果是絕對值非常大的正數,輸出就是1。這就會出現飽和的現象,飽和現象中神經元的梯度會變得特別小,這樣必然會使得網路的學習更加困難。此外,sigmoid的output的值並不是0為均值,因為這會導致上一層輸出的非0均值信號會直接輸入到後一層的神經元上。所以AlexNet模型提出了ReLU函數,公式:f(x)=max(0,x)f(x)=max(0,x)。

用ReLU代替了Sigmoid,發現使用 ReLU 得到的SGD的收斂速度會比 sigmoid快很多,這成了AlexNet模型的優勢之一。
Dropout
AlexNet模型提出了一個有效的模型組合方式,相比於單模型,只需要多花費一倍的時間,這種方式就做Dropout。在整個神經網路中,隨機選取一半的神經元將它們的輸出變成0。這種方式使得網路關閉了部分神經元,減少了過擬合現象。同時訓練的迭代次數也得以增加。當時一個GTX580 GPU只有3GB內存,這使得大規模的運算成為不可能。但是,隨著硬體水平的發展,當時的GPU已經可以實現並行計算了,並行計算之後兩塊GPU可以互相通信傳輸數據,這樣的方式充分利用了GPU資源,所以模型設計利用兩個GPU並行運算,大大提高了運算效率。
模型分析

AlexNet模型共有8層結構,其中前5層為卷積層,其中前兩個卷積層和第五個卷積層有池化層,其他卷積層沒有。後面3層為全連接層,神經元約有六十五萬個,所需要訓練的參數約六千萬個。
圖片預處理過後,進過第一個卷積層C1之後,原始的圖像也就變成了55x55的像素大小,此時一共有96個通道。模型分為上下兩塊是為了方便GPU運算,48作為通道數目更加適合GPU的並行運算。上圖的模型里把48層直接變成了一個面,這使得模型看上去更像一個立方體,大小為55x55x48。在後面的第二個卷積層C2中,卷積核的尺寸為5x5x48,由此再次進行卷積運算。在C1,C2卷積層的卷積運算之後,都會有一個池化層,使得提取特徵之後的特徵圖像素值大大減小,方便了運算,也使得特徵更加明顯。而第三層的卷積層C3又是更加特殊了。第三層卷積層做了通道的合並,將之前兩個通道的數據再次合並起來,這是一種串接操作。第三層後,由於串接,通道數變成256。全卷積的卷積核尺寸也就變成了13×13×25613×13×256。一個有4096個這樣尺寸的卷積核分別對輸入圖像做4096次的全卷積操作,最後的結果就是一個列向量,一共有4096個數。這也就是最後的輸出,但是AlexNet最終是要分1000個類,所以通過第八層,也就是全連接的第三層,由此得到1000個類輸出。
Alexnet網路中各個層發揮了不同的作用,ReLU,多個CPU是為了提高訓練速度,重疊pool池化是為了提高精度,且不容易產生過擬合,局部歸一化響應是為了提高精度,而數據增益與dropout是為了減少過擬合。
VGG net
在ILSVRC-2014中,牛津大學的視覺幾何組提出的VGGNet模型在定位任務第一名和分類任務第一名[[i]]。如今在計算機視覺領域,卷積神經網路的良好效果深得廣大開發者的喜歡,並且上文提到的AlexNet模型擁有更好的效果,所以廣大從業者學習者試圖將其改進以獲得更好地效果。而後來很多人經過驗證認為,AlexNet模型中所謂的局部歸一化響應浪費了計算資源,但是對性能卻沒有很大的提升。VGG的實質是AlexNet結構的增強版,它側重強調卷積神經網路設計中的深度。將卷積層的深度提升到了19層,並且在當年的ImageNet大賽中的定位問題中獲得了第一名的好成績。整個網路向人們證明了我們是可以用很小的卷積核取得很好地效果,前提是我們要把網路的層數加深,這也論證了我們要想提高整個神經網路的模型效果,一個較為有效的方法便是將它的深度加深,雖然計算量會大大提高,但是整個復雜度也上升了,更能解決復雜的問題。雖然VGG網路已經誕生好幾年了,但是很多其他網路上效果並不是很好地情況下,VGG有時候還能夠發揮它的優勢,讓人有意想不到的收獲。

與AlexNet網路非常類似,VGG共有五個卷積層,並且每個卷積層之後都有一個池化層。當時在ImageNet大賽中,作者分別嘗試了六種網路結構。這六種結構大致相同,只是層數不同,少則11層,多達19層。網路結構的輸入是大小為224*224的RGB圖像,最終將分類結果輸出。當然,在輸入網路時,圖片要進行預處理。
VGG網路相比AlexNet網路,在網路的深度以及寬度上做了一定的拓展,具體的卷積運算還是與AlexNet網路類似。我們主要說明一下VGG網路所做的改進。第一點,由於很多研究者發現歸一化層的效果並不是很好,而且佔用了大量的計算資源,所以在VGG網路中作者取消了歸一化層;第二點,VGG網路用了更小的3x3的卷積核,而兩個連續的3x3的卷積核相當於5x5的感受野,由此類推,三個3x3的連續的卷積核也就相當於7x7的感受野。這樣的變化使得參數量更小,節省了計算資源,將資源留給後面的更深層次的網路。第三點是VGG網路中的池化層特徵池化核改為了2x2,而在AlexNet網路中池化核為3x3。這三點改進無疑是使得整個參數運算量下降,這樣我們在有限的計算平台上能夠獲得更多的資源留給更深層的網路。由於層數較多,卷積核比較小,這樣使得整個網路的特徵提取效果很好。其實由於VGG的層數較多,所以計算量還是相當大的,卷積層比較多成了它最顯著的特點。另外,VGG網路的拓展性能比較突出,結構比較簡潔,所以它的遷移性能比較好,遷移到其他數據集的時候泛化性能好。到現在為止,VGG網路還經常被用來提出特徵。所以當現在很多較新的模型效果不好時,使用VGG可能會解決這些問題。
GoogleNet
谷歌於2014年Imagenet挑戰賽(ILSVRC14)憑借GoogleNet再次斬獲第一名。這個通過增加了神經網路的深度和寬度獲得了更好地效果,在此過程中保證了計算資源的不變。這個網路論證了加大深度,寬度以及訓練數據的增加是現有深度學習獲得更好效果的主要方式。但是增加尺寸可能會帶來過擬合的問題,因為深度與寬度的加深必然會帶來過量的參數。此外,增加網路尺寸也帶來了對計算資源侵佔過多的缺點。為了保證計算資源充分利用的前提下去提高整個模型的性能,作者使用了Inception模型,這個模型在下圖中有展示,可以看出這個有點像金字塔的模型在寬度上使用並聯的不同大小的卷積核,增加了卷積核的輸出寬度。因為使用了較大尺度的卷積核增加了參數。使用了1*1的卷積核就是為了使得參數的數量最少。

Inception模塊
上圖表格為網路分析圖,第一行為卷積層,輸入為224×224×3 ,卷積核為7x7,步長為2,padding為3,輸出的維度為112×112×64,這裡面的7x7卷積使用了 7×1 然後 1×7 的方式,這樣便有(7+7)×64×3=2,688個參數。第二行為池化層,卷積核為3×33×3,滑動步長為2,padding為 1 ,輸出維度:56×56×64,計算方式:1/2×(112+2×1?3+1)=56。第三行,第四行與第一行,第二行類似。第 5 行 Inception mole中分為4條支線,輸入均為上層產生的 28×28×192 結果:第 1 部分,1×1 卷積層,輸出大小為28×28×64;第 2 部分,先1×1卷積層,輸出大小為28×28×96,作為輸入進行3×3卷積層,輸出大小為28×28×128;第 3部分,先1×1卷積層,輸出大小為28×28×32,作為輸入進行3×3卷積層,輸出大小為28×28×32;而第3 部分3×3的池化層,輸出大小為輸出大小為28×28×32。第5行的Inception mole會對上面是個結果的輸出結果並聯,由此增加網路寬度。
ResNet
2015年ImageNet大賽中,MSRA何凱明團隊的ResialNetworks力壓群雄,在ImageNet的諸多領域的比賽中上均獲得了第一名的好成績,而且這篇關於ResNet的論文Deep Resial Learning for Image Recognition也獲得了CVPR2016的最佳論文,實至而名歸。
上文介紹了的VGG以及GoogleNet都是增加了卷積神經網路的深度來獲得更好效果,也讓人們明白了網路的深度與廣度決定了訓練的效果。但是,與此同時,寬度與深度加深的同時,效果實際會慢慢變差。也就是說模型的層次加深,錯誤率提高了。模型的深度加深,以一定的錯誤率來換取學習能力的增強。但是深層的神經網路模型犧牲了大量的計算資源,學習能力提高的同時不應當產生比淺層神經網路更高的錯誤率。這個現象的產生主要是因為隨著神經網路的層數增加,梯度消失的現象就越來越明顯。所以為了解決這個問題,作者提出了一個深度殘差網路的結構Resial:

上圖就是殘差網路的基本結構,可以看出其實是增加了一個恆等映射,將原本的變換函數H(x)轉換成了F(x)+x。示意圖中可以很明顯看出來整個網路的變化,這樣網路不再是簡單的堆疊結構,這樣的話便很好地解決了由於網路層數增加而帶來的梯度原來越不明顯的問題。所以這時候網路可以做得很深,到目前為止,網路的層數都可以上千層,而能夠保證很好地效果。並且,這樣的簡單疊加並沒有給網路增加額外的參數跟計算量,同時也提高了網路訓練的效果與效率。
在比賽中,為了證明自己觀點是正確的,作者控制變數地設計幾個實驗。首先作者構建了兩個plain網路,這兩個網路分別為18層跟34層,隨後作者又設計了兩個殘差網路,層數也是分別為18層和34層。然後對這四個模型進行控制變數的實驗觀察數據量的變化。下圖便是實驗結果。實驗中,在plain網路上觀測到明顯的退化現象。實驗結果也表明,在殘差網路上,34層的效果明顯要好於18層的效果,足以證明殘差網路隨著層數增加性能也是增加的。不僅如此,殘差網路的在更深層的結構上收斂性能也有明顯的提升,整個實驗大為成功。

除此之外,作者還做了關於shortcut方式的實驗,如果殘差網路模塊的輸入輸出維度不一致,我們如果要使維度統一,必須要對維數較少的進行増維。而增維的最好效果是用0來填充。不過實驗數據顯示三者差距很小,所以線性投影並不是特別需要。使用0來填充維度同時也保證了模型的復雜度控制在比較低的情況下。
隨著實驗的深入,作者又提出了更深的殘差模塊。這種模型減少了各個層的參數量,將資源留給更深層數的模型,在保證復雜度很低的情況下,模型也沒有出現梯度消失很明顯的情況,因此目前模型最高可達1202層,錯誤率仍然控製得很低。但是層數如此之多也帶來了過擬合的現象,不過諸多研究者仍在改進之中,畢竟此時的ResNet已經相對於其他模型在性能上遙遙領先了。
殘差網路的精髓便是shortcut。從一個角度來看,也可以解讀為多種路徑組合的一個網路。如下圖:

ResNet可以做到很深,但是從上圖中可以體會到,當網路很深,也就是層數很多時,數據傳輸的路徑其實相對比較固定。我們似乎也可以將其理解為一個多人投票系統,大多數梯度都分布在論文中所謂的effective path上。
DenseNet
在Resnet模型之後,有人試圖對ResNet模型進行改進,由此便誕生了ResNeXt模型。

這是對上面介紹的ResNet模型結合了GoogleNet中的inception模塊思想,相比於Resnet來說更加有效。隨後,誕生了DenseNet模型,它直接將所有的模塊連接起來,整個模型更加簡單粗暴。稠密相連成了它的主要特點。

我們將DenseNet與ResNet相比較:

從上圖中可以看出,相比於ResNet,DenseNet參數量明顯減少很多,效果也更加優越,只是DenseNet需要消耗更多的內存。
總結
上面介紹了卷積神經網路發展史上比較著名的一些模型,這些模型非常經典,也各有優勢。在算力不斷增強的現在,各種新的網路訓練的效率以及效果也在逐漸提高。從收斂速度上看,VGG>Inception>DenseNet>ResNet,從泛化能力來看,Inception>DenseNet=ResNet>VGG,從運算量看來,Inception<DenseNet< ResNet<VGG,從內存開銷來看,Inception<ResNet< DenseNet<VGG。在本次研究中,我們對各個模型均進行了分析,但從效果來看,ResNet效果是最好的,優於Inception,優於VGG,所以我們第四章實驗中主要採用谷歌的Inception模型,也就是GoogleNet。

⑶ 經典卷積神經網路簡介之【AlexNet】

論文中轉 : ImageNet Classification with Deep Convolutional Neural Networks

自Le Net-5在1998年提出以後,時隔14年,AlexNet橫空問世,在2012年ImageNet競賽中以冠軍的成績笑傲群雄,也就是從那時起,更多更優秀的網路被相繼提出。論文第一作者是來自多倫多大學的Alex Krizhevsky,因此網路稱為Alex Net。

在論文中,作者訓練了一個大而深(相比於之前)的卷積網路用於ImageNet比賽,將120萬高分辨圖像分為1000個類別。在測試集上,分別達到了37.5%的top-1錯誤率和17.0%的top-5錯誤率,超越了先前最好的網路。網路共有600萬參數,65萬個神經元,5個卷積層加3個全連接層,輸出為1000類別。為了防止過擬合,作者採用了數據擴充和dropout正則法,實驗結果表明此方法非常有效;為了加快訓練速度,作者採用了兩塊並行的GPU同時對特徵圖進行運算。

由於採用了雙GPU模式,所以結構圖呈現的是上圖的樣子,下面引用一張博客作者 chenyuping666 文章的圖片,可以詳細的了解網路內部結構與實現細節。

從上圖可以看到,輸入為227×227×3的圖像

在conv1中 ,卷積核大小為11×11,步長為4,通道數為96(每台GPU運算48個,下同),經過激活函數Relu激活後,採用最大池化(size=3×3,stride=2),標准化,輸出為27×27×96。

在conv2中 ,卷積核大小為5×5,步長為1,通道數256,先對輸入特徵圖擴展像素為31×31(pad=2),然後卷積,激活,池化(size=3×3,stride=2),標准化,輸出特徵圖為13×13×256。

在conv3,conv4中 ,卷積核大小都為3×3,步長為1,pad=1,通道數為384,經過激活後輸出特徵圖為13×13×384。

在conv5中 ,卷積核大小都為3×3,步長為1,通道數為256,經過激活,池化後輸出特徵圖為6×6×256。

在fcn6,fcn7中 ,共有4096個神經元,採用了dropout技術防止過擬合。

在fcn8 ,也就是最後一層,採用softmax輸出1000個類別。

相比於之前的網路,AlexNet為何能取得比較好的結果呢,從作者的論文中可以發現以下幾點:

3.1 非線性激活函數Relu
在之前一般使用tanh(x)或sigmoid作為激活函數,但這些飽和的線性函數在梯度的計算上非常緩慢,並且容易產生梯度消失問題。Relu的出現使這些問題得到了有效的解決。在基於cifar-10數據集的標准四層網路測試中,採用tanh和Relu作為激活函數使error rate達到0.25所用的時間,Relu比tanh快大約6倍。

3.2 多個GPU
作者認為計算資源的大小限制了網路的大小,要想訓練大的網路結構,必須擁有足夠的計算資源。120萬的數據集太大以至於單個GPU不足以匹配,因此作者將網路的計算任務分配到兩個GPU上執行。目前GPU特別適合做並行化,因為一個GPU可以直接從另一個GPU讀和寫內容,而不需要經過主機內存。

3.3 局部響應歸一化(LRN)
作者在文章中提出了Local Response Normalization的方法,分別將top-1和top-5錯誤率降低了1.4%和1.2%。作者在文中提到,如果訓練樣本產生一個正輸入到Relu,網路只會在那個特定神經元上學習,但是引入局部響應正則化後,提高了網路的泛化能力。這種響應歸一化會產生一種由某一神經元所激發的橫向抑制,為由使用不同卷積核計算的神經元輸出之中的「big activities」創造競爭。

3.4 重疊池化
一般的池化操作因為沒有重疊,所以pool_size 和 stride是相等的。例如6×6的圖像在size=2×2的池化後,輸出為3×3,但是本文使用的size<stride,即取步長為1,輸出為4×4大小的圖像。這一方案分別使top-1和top-5錯誤率降低了0.4%和0.3%。

⑷ 深度卷積網路

LeNet網路的結構如下圖所示,可以看出,LeNet網路並沒有使用padding,每進行一次卷積,圖像的高度和寬度都會縮小,而通道數會一直增加。在全連接層中有400個節點,每個極點都有120個神經元,有時還會從這400個節點抽取一部分節點構建一個全連接層,即有兩個全連接層。在該網路中,最後一步就是利用84個特徵得到最後的輸出,該網路剛開始使用的是 sigmoid 函數 tanh 函數,而現在常常傾向於使用 softmax 函數。需要注意的是,LeNet-5網路進行圖像分類時,輸入的圖像是單通道的灰度圖像。

AlexNet是以論文第一作者的名字命名的,該網路的結構,如下圖所示,該網路的輸出層使用了 softmax 函數。AlexNet網路比LeNet網路規模更大,大約有6000萬個參數,用於訓練圖像和數據集時,能夠處理非常相似的基本構造模塊,這些模塊中包含著大量的隱藏單元,並且與LeNet網路不同的是,該網路使用了ReLu的激活函數。

VGG-16網路沒有太多滲衡攜的超參數,這是一種專注於構建卷積層的簡單網路。如下圖所示,該網路首先利用64個過濾器進行了兩次卷積,接著在池化層將輸入圖像壓縮,接著又是128個過濾器進行兩次卷積,接著載池化。繼續用256個過濾器進行3次卷積,再池化,接著再利用512個過濾器卷積3次,再池化,將稍後得到的特徵圖進行全連接操作,再進 softmax 激活。

由於存在梯度消失和梯度爆炸的原因,深層次的神經網路是很難訓練的,如果採用一種跳躍連接的方式,即從某一層網路層獲取激活,然後迅速反饋給另外一層,甚至是神經網路的更深層。這種利用跳躍連接構建的深度神經網路ResNets,深度能夠超過100層

一個簡單的兩層神經網路示例,如下圖所示:

常規的輸出和輸出之間的關系可以用如下的公式表示:

如上公式所述,這是一條神經網路的主路徑。如果將 的輸入直接到深層的激活函數之前,此時,神經網路有了一條副路徑,其對應輸出將有公式(5)變成如下所示的公式(6)

此時的輸入除了原先的輸入 外,多了一個 項,即由於 產生了一個殘差塊。

構建一個ResNet網路就是將很多這樣的殘差塊叢伏堆積在一起,形成一個深度神經網路,如下所示:

使用傳統的標准優化演算法訓練一個網路,隨著網路深度的增加,訓練誤差會先減小再增加,隨著網路層數的增加,優化演算法會越難以訓練,訓練誤差也會越來越多。但是,使用ResNet網路,能夠有效地避免這種情況。

如上所述,加入殘差網路之後,其輸出計算公式如公式(6)所示,展開這個公式,則有:

如果使用L2正則化或者權重衰減,則會壓縮權重參數 的值,如果參數 和參數 等於0,其輸出將由公式(7)變成 ,假定使用ReLU激活函數,則有:

由於殘差網路存在的這種跳躍連接,很容易得出以上等式,這意味著,即使給神經網路增加兩層,但是其效率並不遜色與更簡單的神經網路。並且由於存在以上恆等式,使得網路學習隱藏層的單元的信息更加容易。而普通網路,隨著網路層數的增加,學習參數會變得很困難。

此外,關於殘差網路,如公式(6)所示,假設 與 具有相同的維度,攔猛由於ResNets使用了許多same卷積, 的維度等於輸出層的維度。如果輸入和輸出具有不同的維度,可以再增加一個矩陣 ,使得 和 具有相同的維度。而 的維度可以通過0值填充調節。

在卷積網路的架構設計中,一種有趣的想法是會使用到1×1的過濾矩陣,實際上,對於單通道的圖像而言,1×1的過濾矩陣,意義不大,但是,對於多通道的圖像而言,1×1的過濾矩陣能夠有效減少圖像卷積之後的通道數量。

根據卷積和池化的基本知識,隨著神經網路層數的增加,圖像的通道數量會逐漸增加,採用1×1的過濾矩陣卷積之後,可以有效減少圖像的通道數量,一個簡單的示例,如下所示:

假設有一個6×6×32的圖片,使用1×1×32的過濾矩陣進行卷積運算,整個運算過程將會遍歷36個單元格,並計算過濾矩陣所覆蓋區域的元素積之和,將其應用到ReLu非線性函數,會得到一個輸出值。此計算過程中,可能會用到多個1×1×32的過濾器,那麼,通過以上計算會得到一個 6×6×過濾器數量 的矩陣。

構建卷積神經網路時,有時會很難決定過濾器的大小,而Inception網路的引入,卻能很好的解決這個問題。

Inception網路的作用就是代替人工確定選擇卷積層的過濾器類型。如下圖所示,對於一個多通道圖像,可以使用不同的過濾矩陣或者池化層,得到不同的輸出,將這些輸出堆積起來。

有了如上圖所示的Inception塊,最終輸出為32+32+64+128=256,而Inception模塊的輸入為28×28×192,其整個計算成本,以5×5的過濾矩陣為例,其乘法的計算次數為:28×28×32×5×5×192,整個計算次數超過了1.2億次。而如果使用如下所示的優化計算方法,則可以有效減少計算量。

如果利用1×1的過濾器,將輸入矩陣的通道減少至16,則可以有效減少計算量,如下所示:

如上圖所示的價格中,整個網路的運算次數為:28×28×192×16+28×28×32×5×5×16=1240萬,整個計算成本降低至原來的十分之一。而,通過1×1×192過濾器卷積得到的這個網路層被稱之為瓶頸層。

如上,所示,可以給每一個非1×1的卷積層之前,加入一個1×1的瓶頸層,就可以構建一個基本的inception模塊了,如下圖所示:

而一個inception網路就是多個Inception模塊連接起來,如下圖所示:

事實上,以上網路中,還存在一些分支,如編號1所示,這些分支就是全連接層,而全連接層之後就是一個softmax層用於預測。又如分支2所示,包含一些隱藏層(編號3),通過全連接層和softmax進行預測。這些分支結構能夠確保,即使是隱藏層和中間層也參與了特徵計算,並且也能夠預測圖片的分類。這種做法能夠有效避免網路過擬合。

對於計算機視覺領域而言,神經網路的訓練可能需要大量的數據,但是當數據量有限時,可以通過數據增強來實現數據量的擴充,以提高系統的魯棒性,具體的數據增強方法如下所示:

除了以上三種數據增強的方法外,更多的數據增強方法和實現可以參考 圖像數據增強

數據增強可以利用計算機多線程實現,一個線程用來實現載入數據,實現數據增強,其他線程可以訓練這些數據以加快整體的運算速度。

⑸ 深度學習架構包括

深度學習架構包括如下:


1、AlexNet

AlexNet是首個深度架構,它由深度學習先驅GeoffreyHinton及其同僚共同引入。AlexNet是一個簡單卻功能強大的網路架構,為深度學習的開創性研究鋪平了道路。分解後的AlexNet像是一個簡單的架構,卷積層和池化層層疊加,最上層是全連接層。

GAN是神經網路架構中完全不同的類別。GAN中,一種神經網路用於生成全新的、訓練集中未曾有過的圖像,但卻足夠真實。

⑹ LeNet5、AlexNet、VGG-16、GoogLeNet、ResNet50原理及其結構

論文地址: Gradient-based learning applied to document recognition

論文地址: ImageNet Classification with Deep Convolutional Neural Networks

  AlexNet由5個卷積層和3個全連接層組成(不包含池化層)。是2012年ImageNet ILSVRC的冠軍。在原始的論文中,因為使用了凳緩2個GPU進行了計算,所以將整個網路分成了上下兩部分,在下文結構的解釋中,我們就不單獨分開了,就直接合起來進行描述。如果想看分兩組討論的,有一個另外的參考博客: 神經網路之AlexNet

AlexNet 引入了激活函數relu,除了最後一層是softmax以外,其他的激活函數都是relu。引入的局部響應歸一化在後續的研究中證明並無太大的作用,一般都是用的BN,所以這里不詳細研究這個了。

論文地址: Very Deep Convolutional Networks for Large-Scale Image Recognition

  VGG16相比AlexNet的一個改進是採用連續的幾個3x3的卷積核代替AlexNet中的較大卷積核(11x11,5x5)。對於給定的感受野(與輸出有關的輸入圖片的局部大小),採用堆積的小派茄卷積核是優於採用大的卷積核,因為多層非線性層可以增加網路深度來保證學習更復雜的模式,而且代價還比較小(參數更少)。簡單來說,在VGG中,使用了3個3x3卷積核來代替5x5卷積核,使用了2個3x3卷積核來代替11*11卷積核,這樣做的主要目的是在保證具有相同感知野的條件下,提升了網路的深度,在一定程度上提升了神經網路
的效果。
  其中16表示由13個卷積層和3個全連接層組成。

  結構圖1說明了其中卷積層棗羨模的參數,結構圖2說明了每一層的輸出層的參數,圖三說明了具體的參數過程。

寫的太累了,不想寫了,有時間再吧後面的兩個模型搞詳細點。

⑺ 如何用深度學習實現衛星圖像分割與識別

深度學習在物體識別中最重要的進展體現在ImageNetILSVRC3挑戰中的圖像分類任務。傳統計算機視覺方法在此測試集上最低的錯誤率是26.172%。2012年,欣頓的研究小組利用卷積網路把錯誤率降到了15.315%。此網路結構被稱為AlexNet,與傳統的卷積網路相比,它有三點與眾不同之處:首先,AlexNet採用了dropout的訓練策略,在訓練過程中將輸入層和中間層的一些神經元隨機置零。這模擬了噪音對輸入數據的各種干擾使一些神經元對一些視覺模式產生漏檢的情況。Dropout使訓練過程收斂得更慢,但得到的網路模型更加魯棒。其次,AlexNet採用整流線型單元作為非線性的激發函數。這不僅大大降低了計算的復雜度,而且使神經元的輸出具有稀疏的特徵,對各種干擾更加魯棒。第三,AlexNet通過對訓練樣本鏡像映射和加入隨機平移擾動,產生了的訓練樣本,減少了過擬合。在ImageNetILSVRC2013比賽中,排名前20的小組使用的都是深度學習技術。獲勝者是紐約大學羅伯·費格斯(RobFergus)的研究小組,所採用的深度模型是卷積網路,並對網路結構作了進一步優化,錯誤率為11.197%,其模型稱作Clarif。在ILSVRC2014比賽中,獲勝者GooLeNet[18]將錯誤率降到了6.656%。GooLeNet突出的特點是大大增加了卷積網路的深度,超過了20層,這在此之前是不可想像的。很深的網路結構給預測誤差的反向傳播帶了困難,這是因為預測誤差是從最頂層傳到底層的,傳到底層的誤差很小,難以驅動底層參數的更新。GooLeNet採取的策略是將監督信號直接加到多個中間層,這意味著中間層和底層的特徵表示也要能夠對訓練數據進行准確分類。如何有效地訓練很深的網路模型仍是未來研究的一個重要課題。雖然深度學習在ImageNet上取得了巨大成功,但是很多應用的訓練集是較小的,在這種情況下,如何應用深度學習呢?有三種方法可供參考:(1)可以將ImageNet上訓練得到的模型作為起點,利用目標訓練集和反向傳播對其進行繼續訓練,將模型適應到特定的應用[10]。此時ImageNet起到預訓練的作用。(2)如果目標訓練集不夠大,可以將底層的網路參數固定,沿用ImageNet上的訓練集結果,只對上層進行更新。這是因為底層的網路參數是最難更新的,而從ImageNet學習得到的底層濾波器往往描述了各種不同的局部邊緣和紋理信息,而這些濾波器對一般的圖像有較好的普適性。(3)直接採用ImageNet上訓練得到的模型,把最高的隱含層的輸出作為特徵表達,代替常用的手工設計的特徵。

⑻ 經典CNN網路結構-AlexNet、VGG、GoogleNet、ResNet)

AlexNet之所以能夠成功,跟這個模型設計的特點有關,主要有:
使用了非線性激活函數:ReLU
防止過擬合的方法:Dropout,數據擴充(Data augmentation)
其他:多GPU實現,LRN歸一化層的使用

GoogLeNet(從Inception v1到v4的演進)

2014年,GoogLeNet和VGG是當年ImageNet挑戰賽(ILSVRC14)的雙雄,GoogLeNet獲得了第一名、VGG獲得了第二名,這兩類模型結構的共同特點是層次更深了。

VGG 繼承了 LeNet 以及 AlexNet 的一些框架結構,而 GoogLeNet 則做了更加大膽的網路結構嘗試,雖然深度只有22層,但大小卻比 AlexNet VGG 小很多。

GoogleNet參數為500萬個,AlexNet參數個數是GoogleNet的12倍,VGGNet參數又是AlexNet的3倍,因此在內存或計算資源有限時,GoogleNet是比較好的選擇;從模型結果來看,GoogLeNet的性能卻更加優越。

解決深度網路(過擬合, 參數過多, 梯度彌散)這些問題的方法當然就是在增加網路深度和寬度的同時減少參數,為了減少參數,自然就想到將全連接變成稀疏連接。但是在實現上,全連接變成稀疏連接後實際計算量並不會有質的提升,因為大部分硬體是針對密集矩陣計算優化的,稀疏矩陣雖然數據量少,但是計算所消耗的時間卻很難減少。那麼,有沒有一種方法既能保持網路結構的稀疏性,又能利用密集矩陣的高計算性能。大量的文獻表明可以將稀疏矩陣聚類為較為密集的子矩陣來提高計算性能, 如人類的大腦是可以看做是神經元的重復堆積,因此,GoogLeNet團隊提出了Inception網路結構,就是構造一種「基礎神經元」結構,來搭建一個稀疏性、高計算性能的網路結構。

原始輸入圖像為224x224x3,且都進行了零均值化的預處理操作(圖像每個像素減去均值)。
輸入為224x224的RGB圖像,『#3x3 rece』和『#5x5 rece』表示3x3和5x5卷積之前1x1的卷積核的個數。
之所以卷積核大小採用1、3和5,主要是為了方便對齊。設定卷積步長stride=1之後,只要分別設定pad=0、1、2,那麼卷積之後便可以得到相同維度的特徵,然後這些特徵就可以直接拼接在一起了。

閱讀全文

與alexnet網路結構詳解相關的資料

熱點內容
銷售額數據變動的主要原因是什麼 瀏覽:807
qq設置常用登錄地址嗎 瀏覽:765
視頻如何添加app畫面 瀏覽:303
ps4全球網路游戲有哪些 瀏覽:303
vuejs播放音頻 瀏覽:616
停電excel文件打不開怎麼辦 瀏覽:285
3d光度學文件在哪裡 瀏覽:614
電腦里被替換的文件怎麼恢復 瀏覽:284
atm機c語言程序 瀏覽:619
紅米1s手機現在最新什麼版本號 瀏覽:561
搭錯車哪個版本好 瀏覽:892
微信保存文件後找不到 瀏覽:198
蘋果屏蔽陌生號碼來電 瀏覽:60
企業微信怎麼放共享文件 瀏覽:234
公租房需要哪些文件 瀏覽:786
佰榮圈app是什麼意思 瀏覽:559
wifi密碼數據備份軟體 瀏覽:221
qq歡樂積分商城等級 瀏覽:102
mayapainteffects教程 瀏覽:240
rayaapp 瀏覽:774

友情鏈接