LeNet:Yan LeCun等人于1998年第一次將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到圖像分類任務(wù)上,在手寫數(shù)字識別任務(wù)上取得了巨大成功隙疚。
AlexNet:Alex Krizhevsky等人在2012年提出了AlexNet,并應(yīng)用在大尺寸圖片數(shù)據(jù)集ImageNet上睡雇,獲得了2012年ImageNet比賽冠軍(ImageNet Large ScaleVisual Recognition Challenge,ILSVRC)姜盈。
VGG:Simonyan和Zisserman于2014年提出了VGG網(wǎng)絡(luò)結(jié)構(gòu)哭当,是當(dāng)前最流行的卷積神經(jīng)網(wǎng)絡(luò)之一猪腕,由于其結(jié)構(gòu)簡單、應(yīng)用性極強而深受廣大研究者歡迎钦勘。
GoogLeNet:ChristianSzegedy等人在2014提出了GoogLeNet陋葡,并取得了2014年ImageNet比賽冠軍。
ResNet:Kaiming He等人在2015年提出了ResNet彻采,通過引入殘差模塊加深網(wǎng)絡(luò)層數(shù)脖岛,在ImagNet數(shù)據(jù)集上的錯誤率降低到3.6%朵栖,超越了人眼識別水平。ResNet的設(shè)計思想深刻地影響了后來的深度神經(jīng)網(wǎng)絡(luò)的設(shè)計柴梆。
LeNet
第一模塊:包含5×5的6通道卷積和2×2的池化陨溅。卷積提取圖像中包含的特征模式(**函數(shù)使用sigmoid),圖像尺寸從32減小到28绍在。經(jīng)過池化層可以降低輸出特征圖對空間位置的敏感性门扇,圖像尺寸減到14。
第二模塊:和第一模塊尺寸相同偿渡,通道數(shù)由6增加為16臼寄。卷積操作使圖像尺寸減小到10,經(jīng)過池化后變成5溜宽。
第三模塊:包含5×5的120通道卷積吉拳。卷積之后的圖像尺寸減小到1,但是通道數(shù)增加為120适揉。將經(jīng)過第3次卷積提取到的特征圖輸入到全連接層留攒。第一個全連接層的輸出神經(jīng)元的個數(shù)是64,第二個全連接層的輸出神經(jīng)元個數(shù)是分類標(biāo)簽的類別數(shù)嫉嘀,對于手寫數(shù)字識別其大小是10炼邀。然后使用Softmax**函數(shù)即可計算出每個類別的預(yù)測概率。
AlexNet
AlexNet與LeNet相比剪侮,具有更深的網(wǎng)絡(luò)結(jié)構(gòu)拭宁,包含5層卷積和3層全連接,同時使用了如下三種方法改進模型的訓(xùn)練過程:
數(shù)據(jù)增廣:深度學(xué)習(xí)中常用的一種處理方式瓣俯,通過對訓(xùn)練隨機加一些變化杰标,比如平移、縮放彩匕、裁剪腔剂、旋轉(zhuǎn)、翻轉(zhuǎn)或者增減亮度等推掸,產(chǎn)生一系列跟原始圖片相似但又不完全相同的樣本桶蝎,從而擴大訓(xùn)練數(shù)據(jù)集驻仅。通過這種方式谅畅,可以隨機改變訓(xùn)練樣本,避免模型過度依賴于某些屬性噪服,能從一定程度上抑制過擬合毡泻。
使用Dropout抑制過擬合
使用ReLU**函數(shù)減少梯度消失現(xiàn)象
VGG
VGG通過使用一系列大小為3x3的小尺寸卷積核和pooling層構(gòu)造深度卷積神經(jīng)網(wǎng)絡(luò),并取得了較好的效果粘优。
VGG-16的網(wǎng)絡(luò)結(jié)構(gòu)示意圖仇味,有13層卷積和3層全連接層呻顽。VGG網(wǎng)絡(luò)的設(shè)計嚴(yán)格使用3×3 的卷積層和池化層來提取特征,并在網(wǎng)絡(luò)的最后面使用三層全連接層丹墨,將最后一層全連接層的輸出作為分類的預(yù)測廊遍。
在VGG中每層卷積將使用ReLU作為**函數(shù),在全連接層之后添加dropout來抑制過擬合贩挣。使用小的卷積核能夠有效地減少參數(shù)的個數(shù)喉前,使得訓(xùn)練和測試變得更加有效。
GoogLeNet
GoogLeNet是2014年ImageNet比賽的冠軍王财,它的主要特點是網(wǎng)絡(luò)不僅有深度卵迂,還在橫向上具有“寬度”。由于圖像信息在空間尺寸上的巨大差異绒净,如何選擇合適的卷積核大小來提取特征就顯得比較困難了见咒。空間分布范圍更廣的圖像信息適合用較大的卷積核來提取其特征挂疆,而空間分布范圍較小的圖像信息則適合用較小的卷積核來提取其特征改览。為了解決這個問題,GoogLeNet提出了一種被稱為Inception模塊的方案囱嫩。
Inception模塊的設(shè)計思想恃疯,使用3個不同大小的卷積核對輸入圖片進行卷積操作,并附加最大池化墨闲,將這4個操作的輸出沿著通道這一維度進行拼接今妄,構(gòu)成的輸出特征圖將會包含經(jīng)過不同大小的卷積核提取出來的特征。Inception模塊采用多通路(multi-path)的設(shè)計形式鸳碧,每個支路使用不同大小的卷積核盾鳞,最終輸出特征圖的通道數(shù)是每個支路輸出通道數(shù)的總和,這將會導(dǎo)致輸出通道數(shù)變得很大瞻离,尤其是使用多個Inception模塊串聯(lián)操作的時候腾仅,模型參數(shù)量會變得非常大。為了減小參數(shù)量套利,Inception模塊使用了圖(b)中的設(shè)計方式推励,在每個3x3和5x5的卷積層之前,增加1x1的卷積層來控制輸出通道數(shù)肉迫;在最大池化層后面增加1x1卷積層減小輸出通道數(shù)验辞。
GoogLeNet的架構(gòu)如 圖5 所示,在主體卷積部分中使用5個模塊(block喊衫,每個模塊之間使用步幅為2的3 ×3最大池化層來減小輸出高寬跌造。
第一模塊使用一個64通道的7 × 7卷積層。
第二模塊使用2個卷積層:首先是64通道的1 × 1卷積層,然后是將通道增大3倍的3 × 3卷積層壳贪。
第三模塊串聯(lián)2個完整的Inception塊陵珍。
第四模塊串聯(lián)了5個Inception塊。
第五模塊串聯(lián)了2 個Inception塊违施。
第五模塊的后面緊跟輸出層互纯,使用全局平均池化 層來將每個通道的高和寬變成1,最后接上一個輸出個數(shù)為標(biāo)簽類別數(shù)的全連接層磕蒲。
說明: 在原作者的論文中添加了圖中所示的softmax1和softmax2兩個輔助分類器伟姐,如下圖所示,訓(xùn)練時將三個分類器的損失函數(shù)進行加權(quán)求和亿卤,以緩解梯度消失現(xiàn)象愤兵。這里的程序作了簡化,沒有加入輔助分類器排吴。
ResNet
通過前面幾個經(jīng)典模型學(xué)習(xí)秆乳,我們可以發(fā)現(xiàn)隨著深度學(xué)習(xí)的不斷發(fā)展,模型的層數(shù)越來越多钻哩,網(wǎng)絡(luò)結(jié)構(gòu)也越來越復(fù)雜屹堰。那么是否加深網(wǎng)絡(luò)結(jié)構(gòu),就一定會得到更好的效果呢街氢?從理論上來說扯键,假設(shè)新增加的層都是恒等映射,只要原有的層學(xué)出跟原模型一樣的參數(shù)珊肃,那么深模型結(jié)構(gòu)就能達(dá)到原模型結(jié)構(gòu)的效果荣刑。換句話說,原模型的解只是新模型的解的子空間伦乔,在新模型解的空間里應(yīng)該能找到比原模型解對應(yīng)的子空間更好的結(jié)果厉亏。但是實踐表明,增加網(wǎng)絡(luò)的層數(shù)之后烈和,訓(xùn)練誤差往往不降反升爱只。
Kaiming He等人提出了殘差網(wǎng)絡(luò)ResNet來解決上述問題,其基本思想如 圖6所示招刹。
ResNet還介紹了一些新技術(shù):
使用標(biāo)準(zhǔn)的SGD而不是花哨的自適應(yīng)學(xué)習(xí)技術(shù)恬试。這是與一個合理的初始化函數(shù),保持訓(xùn)練完整
對輸入進行預(yù)處理的更改疯暑,其中輸入首先被劃分為補丁训柴,然后進入網(wǎng)絡(luò)
ResNet的主要優(yōu)點是,可以使用數(shù)百甚至數(shù)千個殘差層來創(chuàng)建網(wǎng)絡(luò)并進行訓(xùn)練缰儿。這與通常的順序網(wǎng)絡(luò)稍有不同畦粮,在順序網(wǎng)絡(luò)中散址,隨著層數(shù)的增加乖阵,性能升級會減少宣赔。
ResNet50
ResNeXt
ResNeXt據(jù)說是目前最先進的對象識別技術(shù)。它構(gòu)建在inception和resnet的概念之上瞪浸,以實現(xiàn)一個新的和改進的體系結(jié)構(gòu)儒将。下圖總結(jié)了ResNeXt模塊的剩余模塊的外觀。
SqueezeNet
snizenet體系結(jié)構(gòu)是一個更強大的體系結(jié)構(gòu)对蒲,在移動平臺等低帶寬場景中非常有用钩蚊。這個架構(gòu)只占用了4.9MB的空間,而《盜夢空間》占用了~100MB的空間!這種劇烈的變化是由一種叫做消防模塊的特殊結(jié)構(gòu)引起的蹈矮。下圖是消防模塊的表示砰逻。
snizenet的最終架構(gòu)如下: