摘要:在2018年3月13日云棲社區(qū)袁波,來自哈爾濱工業(yè)大學的沈俊楠分享了典型模式-深度神經(jīng)網(wǎng)絡入門瓦阐。本文詳細介紹了關于深度神經(jīng)網(wǎng)絡的發(fā)展歷程,并詳細介紹了各個階段模型的結(jié)構及特點篷牌。
哈爾濱工業(yè)大學的沈俊楠分享了典型模式-深度神經(jīng)網(wǎng)絡入門睡蟋。本文詳細介紹了關于深度神經(jīng)網(wǎng)絡的發(fā)展歷程,并詳細介紹了各個階段模型的結(jié)構及特點枷颊。
以下是精彩視頻內(nèi)容整理:
問題引出
學習知識從問題引出入手是一個很好的方法戳杀,所以本文將可以圍繞下面三個問題來展開:
1.DNN和CNN有什么不同?有什么關系夭苗?如何定義信卡?
2.為什么DNN現(xiàn)在這么火,它經(jīng)歷怎么一個發(fā)展歷程题造?
3.DNN的結(jié)構很復雜傍菇,怎么能實際入門試一下呢?
本文思維導圖如下:
發(fā)展歷程
DNN-定義和概念
在卷積神經(jīng)網(wǎng)絡中界赔,卷積操作和池化操作有機的堆疊在一起丢习,一起組成了CNN的主干。
同樣是受到獼猴視網(wǎng)膜與視覺皮層之間多層網(wǎng)絡的啟發(fā)淮悼,深度神經(jīng)網(wǎng)絡架構架構應運而生咐低,且取得了良好的性能⊥嘈龋可以說见擦,DNN其實是一種架構,是指深度超過幾個相似層的神經(jīng)網(wǎng)絡結(jié)構瞧挤,一般能夠達到幾十層锡宋,或者由一些復雜的模塊組成。
ILSVRC(ImageNet大規(guī)模視覺識別挑戰(zhàn)賽)每年都不斷被深度學習刷榜特恬,隨著模型變得越來越深执俩,Top-5的錯誤率也越來越低,目前降低到了3.5%附近癌刽,而人類在ImageNet數(shù)據(jù)集合上的辨識錯誤率大概在5.1%役首,也就是目前的深度學習模型識別能力已經(jīng)超過了人類。
從AlexNet到MobileNet
Alexnet
AlexNet是首次把卷積神經(jīng)網(wǎng)絡引入計算機視覺領域并取得突破性成績的模型显拜。
AlexNet有Alex Krizhevsky衡奥、llya Sutskever、Geoff Hinton提出远荠,獲得了ILSVRC 2012年的冠軍矮固,再top-5項目中錯誤率僅僅15.3%,相對于使用傳統(tǒng)方法的亞軍26.2%的成績優(yōu)良重大突破譬淳。
相比之前的LeNet档址,AlexNet通過堆疊卷積層使得模型更深更寬盹兢,同時借助GPU使得訓練再可接受的時間范圍內(nèi)得到結(jié)果,推動了卷積神經(jīng)網(wǎng)絡甚至是深度學習的發(fā)展守伸。
下面是AlexNet的架構:
AlexNet的特點有:
1.借助擁有1500萬標簽绎秒、22000分類的ImageNet數(shù)據(jù)集來訓練模型,接近真實世界中的復雜場景尼摹。
2.使用更深更寬的CNN來提高學習容量见芹。
3.靈活運用ReLU作為激活函數(shù),相對Sigmoid大幅度提高了訓練速度蠢涝。
4.使用多塊GPU提高模型的容量玄呛。
5.通過LRN引入神經(jīng)元之間的競爭以幫助泛化,提高模型性能惠赫。
6.通過Dropout隨機忽略部分神經(jīng)元把鉴,避免過擬合故黑。
7.通過縮放儿咱、翻轉(zhuǎn)、切割等數(shù)據(jù)增強方式避免過擬合场晶。
以上為典型的深度神經(jīng)網(wǎng)絡運用的方法混埠。
AlexNet在研發(fā)的時候,使用的GTX580僅有3GB的顯存诗轻,所以創(chuàng)造性的把模型拆解在兩張顯卡中钳宪,架構如下:
1.第一層是卷積層,針對224x224x3的輸入圖片進行卷積操作扳炬,參數(shù)為:卷積核11x11x3吏颖,數(shù)量96,步長4恨樟,LRN正態(tài)化后進行2x2的最大池化半醉。
2.第二層是卷積層,僅與同一個GPU內(nèi)的第一層輸出進行卷積劝术,參數(shù)為:卷積核5x5x48缩多,疏朗256,LRN正態(tài)化后進行2x2的最大池化养晋。
3.第三層是卷積層衬吆,與第二層所有輸出進行卷積,參數(shù)為:3x3x256绳泉,數(shù)量384.
4.第四層是卷積層逊抡,僅與同一個GPU內(nèi)的第三層輸出進行卷積,參數(shù)為:卷積核3x3x192零酪,數(shù)量384冒嫡。
5.第五層是卷積層麦射,僅與同一個GPU內(nèi)的第三層輸出進行卷積,參數(shù)為:卷積核3x3x192灯谣,數(shù)量256潜秋,進行2x2的最大池化。
6.第六層是全連接層胎许,4096個神經(jīng)元峻呛。
7.第七層是全連接層,4096個神經(jīng)元辜窑。
8.第八層是全連接層钩述,代表1000個分類的SoftMax。
VGGNet
VGGNet是Oxford的Visual Geometry Group提出的CNN模型穆碎,獲得了ILSVRC 2014年定位比賽以25.3%錯誤率獲得冠軍牙勘,分類比賽僅次于GoogLeNet,top-5的錯誤率為7.32%所禀。
VGGNet和GooLeNet分別獨立采用了更深的網(wǎng)絡結(jié)果方面,但是在設計上各有千秋。VGGNet繼承了AlexNet的設計色徘,但是做了更多的優(yōu)化:
1.更深的網(wǎng)絡恭金,常用的有16層和9層,取得良好性能褂策。
2.更簡單横腿,僅僅使用了3x3卷積核以及2x2最大池化,探索了深度與性能之間的關系斤寂。
3.收到Network in Network的影響耿焊,VGGNet的某些模型也用到了1x1卷積核。
4.采用多塊GPU并行訓練遍搞。
5.由于效果不明顯罗侯,放棄了Local Response Normailzation的使用。
網(wǎng)絡結(jié)構大致如下:
在深度學習中尾抑,我們經(jīng)常需要用到一些技巧歇父,比如將圖片進行去中心化、旋轉(zhuǎn)再愈、水平位移榜苫、垂直位移、水平翻轉(zhuǎn)等翎冲,通過數(shù)據(jù)增強(Data Augmentation)以減少過擬合垂睬。
ResNet
ResNet(Residual Neural Network)由微軟亞洲研究院的Kaiming He等提出,通過使用Residual Unit成功訓練152層深的神經(jīng)網(wǎng)絡,在ILSVRC2015比賽中獲得了冠軍驹饺,top-5錯誤率為3.57%钳枕,同時參數(shù)量卻比VGGNet低很多。
ResNet的靈感出自于這個問題:之前的研究證明了深度對模型性能至關重要赏壹,但隨著深度的增加鱼炒,準確度反而出現(xiàn)衰減。令人意外的是蝌借,衰減不是來自過擬合昔瞧,因為訓練集上的準確度下降了。極端情況下菩佑,假設追加的層都是等價映射自晰,起碼不應該帶來訓練集上的誤差上升。
解決方案是引入殘差:某層網(wǎng)絡的輸入是x稍坯,期望輸出是H(x)酬荞,如果我們直接把輸入x傳到輸出作為等價映射,而中間的非線性層就是F(x)=H(x)-x作為殘差瞧哟。我們猜測優(yōu)化殘差映射要比優(yōu)化原先的映射要簡單混巧,極端情況下把殘差F(x)壓縮為0即可。如圖所示:
以上就是ResNet的殘差單元绢涡。殘差單元的好處是反響傳播的時候牲剃,梯度可以直接傳遞給上一層,有效率低梯度消失從而可以支撐更深的網(wǎng)絡雄可。同時,ResNet也運用了Batch Normalization缠犀,殘差單元將比以前更容易訓練且泛化性更好数苫。
GoogLeNet
GoogLeNet是由Christian Szegedy等提出,主要思路是使用更深的網(wǎng)絡取得更好的性能辨液,同時通過優(yōu)化來減少計算的損耗虐急。
GoogLeNet的模型為Network in Network。AlexNet中卷積層用線性卷積核對圖像進行內(nèi)積運算滔迈,在每個局部輸出后面跟著一個非線性的激活函數(shù)止吁,最終得到的叫做特征函數(shù)。而這種卷積核是一種廣義線性模型燎悍,進行特征提取時隱含地假設了特征是線性可分的敬惦,可實際問題往往不是這樣的。為了解決這個問題谈山,Network in Network提出了使用多層感知機來實現(xiàn)非線性的卷積俄删,實際相當于插入1x1卷積同時保持特征圖像大小不變。
使用1x1卷積的好處有:通過非線性變化增加本地特征抽象能力,避免全連接層以降低過擬合畴椰,降低維度臊诊,只需要更少的參數(shù)就可以。Network in Network從某種意義上證實了斜脂,更深的網(wǎng)絡性能更好抓艳。
GoogLenet把inception堆疊起來,通過稀疏的網(wǎng)絡來建立更深的網(wǎng)絡帚戳,在確保模型性能的同時壶硅,控制了計算量,從而更適合在資源有限的場景下進行預測销斟。
MobileNet
傳統(tǒng)的CNN模型往往專注于性能庐椒,但是在手機和嵌入式應用場景中缺乏可行性。針對這個問題蚂踊,Google提出了MobileNet這一新模型架構约谈。
MobileNet時小尺寸但是高性能的CNN模型,幫助用戶在移動設備或者嵌入式設備上實現(xiàn)計算機視覺犁钟,而無需借助云端的計算力棱诱。隨著移動設備計算力的日益增長,MobileNet可以幫助AI技術加載到移動設備中涝动。
MobileNet有以下特性:借助深度方向可分離卷積來降低參數(shù)個數(shù)和計算復雜度迈勋;引入寬都和分辨率兩個全局超參數(shù),可以再延遲和準確性之間找到平衡點醋粟,適合手機和嵌入式應用靡菇;擁有頗具競爭力的性能,在ImageNet分類等任務得到驗證米愿;在物體檢測厦凤、細粒度識別、人臉屬性和大規(guī)模地理地位等手機應用中具備可行性育苟。
理解實現(xiàn)-VGGNET風格遷移
風格遷移是深度學習眾多應用中非常有趣的一種较鼓,我們可以使用這種方法把一張圖片的風格“遷移”到另一張圖片上生成一張新的圖片。
深度學習在計算機視覺領域應用尤為明顯,圖像分類、識別汞舱、定位悯嗓、超分辨率、轉(zhuǎn)換、遷移、描述等等都已經(jīng)可以使用深度學習技術實現(xiàn)。其背后的技術可以一言以蔽之:深度卷積神經(jīng)網(wǎng)絡具有超強的圖像特征提取能力谆级。
其中烤礁,風格遷移算法的成功,其主要基于兩點:1.兩張圖像經(jīng)過預訓練好的分類網(wǎng)絡肥照,著提取出的高維特征之間的歇氏距離越小脚仔,則這兩張圖象內(nèi)容越相似。2.兩張圖像經(jīng)過預訓練好的分類網(wǎng)絡舆绎,著提取出的低維特在樹枝上基本相等鲤脏,則這兩張圖像風格越相似÷蓝洌基于這兩點猎醇,就可以設計合適的損失函數(shù)優(yōu)化網(wǎng)絡。
對于深度網(wǎng)絡來講努溃,深度卷積分類網(wǎng)絡具有良好的特征提取能力硫嘶,不同層提取的特征具有不同的含義,每一個訓練好的網(wǎng)絡都可以視為是一個良好的特征提取器梧税,另外沦疾,深度網(wǎng)絡有一層層的非線性函數(shù)組成,可以視為時復雜的多元非線性函數(shù)第队,此函數(shù)完成輸入圖像到輸出的映射哮塞。因此,萬千可以使用訓練好的深度網(wǎng)絡作為一個損失函數(shù)計算器凳谦。
模型結(jié)構如圖所示忆畅,網(wǎng)絡框架分類兩部分,其一部分時圖像轉(zhuǎn)換網(wǎng)絡T(Image transform net)和預訓練好的損失計算網(wǎng)絡VGG-16尸执,圖像轉(zhuǎn)換網(wǎng)絡T以內(nèi)容圖像x為輸入家凯,輸出風格遷移后的圖像y,隨后內(nèi)容圖像yc剔交,風格圖像ys肆饶,以及y’輸入vgg-16計算特征。
在此次深度神經(jīng)網(wǎng)絡中參數(shù)損失函數(shù)分為兩部分岖常,對于最終圖像y’,一本分是內(nèi)容葫督,一本分是風格竭鞍。
損失內(nèi)容:
,其中代表深度卷積網(wǎng)絡VGG-16感知損失:
橄镜,其中G是Gram矩陣偎快,計算過程為:
總損失定計算方式:
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載洽胶。