最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

魚書(深度學(xué)習(xí)入門):第八章 深度學(xué)習(xí)

2023-07-24 01:21 作者:棒棒x  | 我要投稿

????深度學(xué)習(xí)是加深了層的深度神經(jīng)網(wǎng)絡(luò)。基于之前介紹的網(wǎng)絡(luò),只需通過疊加層,就可以創(chuàng)建深度網(wǎng)絡(luò)。本章我們將看一下深度學(xué)習(xí)的性質(zhì)、課題和可能性,然后對(duì)當(dāng)前的深度學(xué)習(xí)進(jìn)行概括性的說明。

一、加深網(wǎng)絡(luò)

????關(guān)于神經(jīng)網(wǎng)絡(luò),我們已經(jīng)學(xué)了很多東西,比如構(gòu)成神經(jīng)網(wǎng)絡(luò)的各種層、學(xué)習(xí)時(shí)的有效技巧、對(duì)圖像特別有效的CNN、參數(shù)的最優(yōu)化方法等,這些都是深度學(xué)習(xí)中的重要技術(shù)。本節(jié)我們將這些已經(jīng)學(xué)過的技術(shù)匯總起來,創(chuàng)建一個(gè)深度網(wǎng)絡(luò),挑戰(zhàn)MNIST數(shù)據(jù)集的手寫數(shù)字識(shí)別。

????1.向更深的網(wǎng)絡(luò)出發(fā)

????話不多說,這里我們來創(chuàng)建一個(gè)如下圖所示的網(wǎng)絡(luò)結(jié)構(gòu)的CNN(一個(gè)比之前的網(wǎng)絡(luò)都深的網(wǎng)絡(luò))。

進(jìn)行手寫數(shù)字識(shí)別的深度CNN

????如上圖所示,這個(gè)網(wǎng)絡(luò)的層比之前實(shí)現(xiàn)的網(wǎng)絡(luò)都更深。這里使用的卷積層全都是3 × 3的小型濾波器,特點(diǎn)是隨著層的加深,通道數(shù)變大(卷積層的通道數(shù)從前面的層開始按順序以16、16、32、32、64、64的方式增加)。 此外,如上圖所示,插入了池化層,以逐漸減小中間數(shù)據(jù)的空間大小;并且,后面的全連接層中使用了Dropout層。

????這個(gè)網(wǎng)絡(luò)使用He初始值作為權(quán)重的初始值,使用Adam更新權(quán)重參數(shù)。 把上述內(nèi)容總結(jié)起來,這個(gè)網(wǎng)絡(luò)有如下特點(diǎn)。1.基于3×3的小型濾波器的卷積層。2.激活函數(shù)是ReLU。3.全連接層的后面使用Dropout層。4.基于Adam的最優(yōu)化。5.使用He初始值作為權(quán)重初始值。

????從這些特征中可以看出,上圖的網(wǎng)絡(luò)中使用了多個(gè)之前介紹的神經(jīng)網(wǎng)絡(luò)技術(shù)?,F(xiàn)在,我們使用這個(gè)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。先說一下結(jié)論,這個(gè)網(wǎng)絡(luò)的識(shí)別精度為99.38% ,可以說是非常優(yōu)秀的性能了!

????上圖的網(wǎng)絡(luò)的錯(cuò)誤識(shí)別率只有0.62%。這里我們實(shí)際看一下在什么樣的圖像上發(fā)生了識(shí)別錯(cuò)誤。下圖中顯示了識(shí)別錯(cuò)誤的例子。

????

識(shí)別錯(cuò)誤的圖像的例子:各個(gè)圖像的左上角顯示了正確解標(biāo)簽,右下角顯示了本網(wǎng)絡(luò)的推理結(jié)果

????觀察上圖可知,這些圖像對(duì)于我們?nèi)祟惗砸埠茈y判斷。實(shí)際上,這里面有幾個(gè)圖像很難判斷是哪個(gè)數(shù)字,即使是我們?nèi)祟?,也同樣?huì)犯“識(shí)別錯(cuò)誤”。

????這次的深度CNN盡管識(shí)別精度很高,但是對(duì)于某些圖像,也犯了和人類同樣的“識(shí)別錯(cuò)誤”。從這一點(diǎn)上,我們也可以感受到深度CNN中蘊(yùn)藏著巨大的可能性。

????2.進(jìn)一步提高識(shí)別精度

????在一個(gè)標(biāo)題為“What is the class of this image ?”的網(wǎng)站上,以排行榜的形式刊登了目前為止通過論文等渠道發(fā)表的針對(duì)各種數(shù)據(jù)集的方法的識(shí)別精度,如下圖。

針對(duì)MNIST數(shù)據(jù)集的各種方法的排行(引自2016年6月)

????參考剛才排行榜中前幾名的方法,可以發(fā)現(xiàn)進(jìn)一步提高識(shí)別精度的技術(shù)和線索。比如,集成學(xué)習(xí)、學(xué)習(xí)率衰減、Data Augmentation(數(shù)據(jù)擴(kuò)充)等都有助于提高識(shí)別精度。尤其是Data Augmentation,雖然方法很簡(jiǎn)單,但在提高識(shí)別精度上效果顯著。

????Data Augmentation基于算法“人為地”擴(kuò)充輸入圖像(訓(xùn)練圖像)。具體地說,如下圖所示,對(duì)于輸入圖像,通過施加旋轉(zhuǎn)、垂直或水平方向上的移動(dòng)等微小變化,增加圖像的數(shù)量。這在數(shù)據(jù)集的圖像數(shù)量有限時(shí)尤其有效。

Data Augmentation的例子

????除了如上圖所示的變形之外,Data Augmentation還可以通過其他各種方法擴(kuò)充圖像,比如裁剪圖像的“crop處理”、將圖像左右翻轉(zhuǎn)的“flip處 理”A 等。對(duì)于一般的圖像,施加亮度等外觀上的變化、放大縮小等尺度上的變化也是有效的。不管怎樣,通過Data Augmentation巧妙地增加訓(xùn)練圖像, 就可以提高深度學(xué)習(xí)的識(shí)別精度。

????3.加深層的動(dòng)機(jī)

????本節(jié)就加深層的重要性,給出一些增補(bǔ)性的數(shù)據(jù)和說明。

????首先,從以ILSVRC為代表的大規(guī)模圖像識(shí)別的比賽結(jié)果中可以看出加深層的重要性。這種比賽的結(jié)果顯示,最近前幾名的方法多是基于深度學(xué)習(xí)的,并且有逐漸加深網(wǎng)絡(luò)的層的趨勢(shì)。也就是說, 可以看到層越深,識(shí)別性能也越高。

????下面我們說一下加深層的好處。其中一個(gè)好處就是可以減少網(wǎng)絡(luò)的參數(shù)數(shù)量。說得詳細(xì)一點(diǎn),就是與沒有加深層的網(wǎng)絡(luò)相比,加深了層的網(wǎng)絡(luò)可以用更少的參數(shù)達(dá)到同等水平(或者更強(qiáng))的表現(xiàn)力。這一點(diǎn)結(jié)合卷積運(yùn)算中的濾波器大小來思考就好理解了。比如,下圖展示了由5 × 5的濾波器構(gòu)成的卷積層。

5×5的卷積運(yùn)算的例子

????這里希望大家考慮一下輸出數(shù)據(jù)的各個(gè)節(jié)點(diǎn)是從輸入數(shù)據(jù)的哪個(gè)區(qū)域計(jì)算出來的。顯然,在上圖的例子中,每個(gè)輸出節(jié)點(diǎn)都是從輸入數(shù)據(jù)的某個(gè) 5 × 5的區(qū)域算出來的。接下來我們思考一下圖8-6中重復(fù)兩次3 × 3的卷積運(yùn)算的情形。此時(shí),每個(gè)輸出節(jié)點(diǎn)將由中間數(shù)據(jù)的某個(gè)3 × 3的區(qū)域計(jì)算出來。那么,中間數(shù)據(jù)的3 × 3的區(qū)域又是由前一個(gè)輸入數(shù)據(jù)的哪個(gè)區(qū)域計(jì)算出來 的呢?仔細(xì)觀察下圖,可知它對(duì)應(yīng)一個(gè)5 × 5的區(qū)域。也就是說,下圖的輸出數(shù)據(jù)是“觀察”了輸入數(shù)據(jù)的某個(gè)5 × 5的區(qū)域后計(jì)算出來的。

重復(fù)兩次3×3的卷積層的例子

????一次5 × 5的卷積運(yùn)算的區(qū)域可以由兩次3 × 3的卷積運(yùn)算抵充。并且,相對(duì)于前者的參數(shù)數(shù)量25(5 × 5),后者一共是18(2 × 3 × 3),通過疊加卷積層,參數(shù)數(shù)量減少了。而且,這個(gè)參數(shù)數(shù)量之差會(huì)隨著層的加深而變大。

????加深層的另一個(gè)好處就是使學(xué)習(xí)更加高效。與沒有加深層的網(wǎng)絡(luò)相比,通過加深層,可以減少學(xué)習(xí)數(shù)據(jù),從而高效地進(jìn)行學(xué)習(xí)。具體地說,在前面的卷積層中,神經(jīng)元會(huì)對(duì)邊緣等簡(jiǎn)單的 形狀有響應(yīng),隨著層的加深,開始對(duì)紋理、物體部件等更加復(fù)雜的東西有響應(yīng)。

????不過,通過加深網(wǎng)絡(luò),就可以分層次地分解需要學(xué)習(xí)的問題。因此,各層需要學(xué)習(xí)的問題就變成了更簡(jiǎn)單的問題。通過加深層,可以分層次地傳遞信息,這一點(diǎn)也很重要。比如,因?yàn)樘?取了邊緣的層的下一層能夠使用邊緣的信息,所以應(yīng)該能夠高效地學(xué)習(xí)更加高級(jí)的模式。也就是說,通過加深層,可以將各層要學(xué)習(xí)的問題分解成容易解決的簡(jiǎn)單問題,從而可以進(jìn)行高效的學(xué)習(xí)。

????不過,這里需要注意的是,近幾年的深層化是由大數(shù)據(jù)、計(jì)算能力等即便加深層也能正確地進(jìn)行學(xué)習(xí)的新技術(shù)和環(huán)境支撐的。

二、深度學(xué)習(xí)的小歷史

????本節(jié)我們以ILSVRC這個(gè)大規(guī)模圖像識(shí)別比賽為軸,看一下深度學(xué)習(xí)最近的發(fā)展趨勢(shì)。

????1.ImageNet

????ImageNet是擁有超過100萬張圖像的數(shù)據(jù)集。如下圖所示,它包含 了各種各樣的圖像,并且每張圖像都被關(guān)聯(lián)了標(biāo)簽(類別名)。每年都會(huì)舉辦使用這個(gè)巨大數(shù)據(jù)集的ILSVRC圖像識(shí)別大賽。

大規(guī)模數(shù)據(jù)集ImageNet的數(shù)據(jù)例

????ILSVRC大賽有多個(gè)測(cè)試項(xiàng)目,其中之一是“類別分類”(classification),在該項(xiàng)目中,會(huì)進(jìn)行1000個(gè)類別的分類,比試識(shí)別精度。。下圖中展示了從2010年到 2015年的優(yōu)勝隊(duì)伍的成績(jī)。這里,將前5類中出現(xiàn)正確解的情況視為“正確”, 此時(shí)的錯(cuò)誤識(shí)別率用柱形圖來表示。

ILSCRV優(yōu)勝隊(duì)伍的成績(jī)演變:豎軸是錯(cuò)誤識(shí)別率,橫軸是年份。橫軸的括號(hào)內(nèi)是隊(duì)伍名或者方法名

????上圖中需要注意的是,以2012年為界,之后基于深度學(xué)習(xí)的方法一直居于首位。實(shí)際上,我們發(fā)現(xiàn)2012年的AlexNet大幅降低了錯(cuò)誤識(shí)別率。并且, 此后基于深度學(xué)習(xí)的方法不斷在提升識(shí)別精度。這些年深度學(xué)習(xí)取得了不斐的成績(jī),其中VGG、GoogLeNet、ResNet已廣為人知,在與深度學(xué)習(xí)有關(guān)的各種場(chǎng)合都會(huì)遇到這些網(wǎng)絡(luò)。下面我們就來簡(jiǎn)單地介紹一下這3個(gè)有名的網(wǎng)絡(luò)。

????2.VGG

????VGG是由卷積層和池化層構(gòu)成的基礎(chǔ)的CNN。不過,如下圖所示, 它的特點(diǎn)在于將有權(quán)重的層(卷積層或者全連接層)疊加至16層(或者19層), 具備了深度(根據(jù)層的深度,有時(shí)也稱為“VGG16”或“VGG19”)。

????VGG中需要注意的地方是,基于3×3的小型濾波器的卷積層的運(yùn)算是連續(xù)進(jìn)行的。如上圖所示,重復(fù)進(jìn)行“卷積層重疊2次到4次,再通過池化 層將大小減半”的處理,最后經(jīng)由全連接層輸出結(jié)果。

????3.GoogLeNet

????GoogLeNet的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。圖中的矩形表示卷積層、池化層等。

GoogLeNet

????只看圖的話,這似乎是一個(gè)看上去非常復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),但實(shí)際上它基本上和之前介紹的CNN結(jié)構(gòu)相同。不過,GoogLeNet的特征是,網(wǎng)絡(luò)不僅在縱向上有深度,在橫向上也有深度(廣度)。
????GoogLeNet在橫向上有“寬度”,這稱為“Inception結(jié)構(gòu)”,以下圖所示的結(jié)構(gòu)為基礎(chǔ)。

????

GoogLeNet的Inception結(jié)構(gòu)

????如上圖所示,Inception結(jié)構(gòu)使用了多個(gè)大小不同的濾波器(和池化),最后再合并它們的結(jié)果。GoogLeNet的特征就是將這個(gè)Inception結(jié)構(gòu)用作一個(gè)構(gòu)件(構(gòu)成元素)。此外,在GoogLeNet中,很多地方都使用了大小為1 × 1的濾波器的卷積層。這個(gè)1 × 1的卷積運(yùn)算通過在通道方向上減小大小,有助于減少參數(shù)和實(shí)現(xiàn)高速化處理。

????4.ResNet

????ResNet是微軟團(tuán)隊(duì)開發(fā)的網(wǎng)絡(luò)。它的特征在于具有比以前的網(wǎng)絡(luò)更深的結(jié)構(gòu)。我們已經(jīng)知道加深層對(duì)于提升性能很重要。但是,在深度學(xué)習(xí)中,過度加深層的話,很多情況下學(xué)習(xí)將不能順利進(jìn)行,導(dǎo)致最終性能不佳。ResNet中,為了解決這類問題,導(dǎo)入了“快捷結(jié)構(gòu)”(也稱為“捷徑”或“小路”)。導(dǎo)入這個(gè)快捷結(jié)構(gòu)后,就可以隨著層的加深而不斷提高性能了(當(dāng)然,層的加深也是有限度的)。

????

?ResNet的構(gòu)成要素:這里的“weight layer”是指卷積層

????如上圖所示,快捷結(jié)構(gòu)橫跨(跳過)了輸入數(shù)據(jù)的卷積層,將輸入x合計(jì)到輸出。 上圖中,在連續(xù)2層的卷積層中,將輸入x跳著連接至2層后的輸出。這里的重點(diǎn)是,通過快捷結(jié)構(gòu),原來的2層卷積層的輸出F(x)變成了F(x) + x。通過引入這種快捷結(jié)構(gòu),即使加深層,也能高效地學(xué)習(xí)。這是因?yàn)?,通過快捷結(jié)構(gòu),反向傳播時(shí)信號(hào)可以無衰減地傳遞。

????ResNet以前面介紹過的VGG網(wǎng)絡(luò)為基礎(chǔ),引入快捷結(jié)構(gòu)以加深層,其結(jié)果如下圖所示。

ResNet:方塊對(duì)應(yīng)3×3的卷積層,其特征在于引入了橫跨層的快捷結(jié)構(gòu)

????如上圖所示,ResNet通過以2個(gè)卷積層為間隔跳躍式地連接來加深層。另外,根據(jù)實(shí)驗(yàn)的結(jié)果,即便加深到150層以上,識(shí)別精度也會(huì)持續(xù)提高。并且,在ILSVRC大賽中,ResNet的錯(cuò)誤識(shí)別率為3.5%,令人稱奇。

四、深度學(xué)習(xí)的高速化

????隨著大數(shù)據(jù)和網(wǎng)絡(luò)的大規(guī)?;?,深度學(xué)習(xí)需要進(jìn)行大量的運(yùn)算。實(shí)際上,環(huán)視一下周圍,大多數(shù)深度學(xué)習(xí)的框架都支持GPU(Graphics Processing Unit),可以高速地處理大量的運(yùn)算。另外,最近的框架也開始支持多個(gè)GPU或多臺(tái)機(jī)器上的分布式學(xué)習(xí)。

????1.需要努力解決的問題

????從下圖中可知,AlexNex中,大多數(shù)時(shí)間都被耗費(fèi)在卷積層上。實(shí)際上,卷積層的處理時(shí)間加起來占GPU整體的95%,占CPU整體的89%!因此,如何高速、高效地進(jìn)行卷積層中的運(yùn)算是深度學(xué)習(xí)的一大課題。雖然下圖是推理時(shí)的結(jié)果,不過學(xué)習(xí)時(shí)也一樣,卷積層中會(huì)耗費(fèi)大量時(shí)間。

AlexNet的forward處理中各層的時(shí)間比:左邊是使用GPU的情況,右邊是使用CPU的情況。圖中的“conv”對(duì)應(yīng)卷積層,“pool”對(duì)應(yīng)池化層,“fc”對(duì)應(yīng)全連接層,“norm”對(duì)應(yīng)正規(guī)化層

????2.基于GPU的高速化

????由于GPU可以高速地進(jìn)行并行數(shù)值計(jì)算,因此GPU計(jì)算的目標(biāo)就是將這種壓倒性的計(jì)算能力用于各種用途。所謂GPU計(jì)算,是指基于GPU進(jìn)行通用的數(shù)值計(jì)算的操作。

????深度學(xué)習(xí)中需要進(jìn)行大量的乘積累加運(yùn)算(或者大型矩陣的乘積運(yùn)算)。這種大量的并行運(yùn)算正是GPU所擅長(zhǎng)的(反過來說,CPU比較擅長(zhǎng)連續(xù)的、復(fù)雜的計(jì)算)。因此,與使用單個(gè)CPU相比,使用GPU進(jìn)行深度學(xué)習(xí)的運(yùn)算可以達(dá)到驚人的高速化。下面我們就來看一下基于GPU可以實(shí)現(xiàn)多大程度的高速化。下圖是基于CPU和GPU進(jìn)行AlexNet的學(xué)習(xí)時(shí)分別所需的時(shí)間。

?使用CPU 的“16-core Xeon CPU”和GPU的“Titan系列”進(jìn)行AlexNet的學(xué)習(xí)時(shí)分別所需的時(shí)間

????3.分布式學(xué)習(xí)

????為了進(jìn)一步提高深度學(xué)習(xí)所需的計(jì)算的速度,可以考慮在多個(gè)GPU或者多臺(tái)機(jī)器上進(jìn)行分布式計(jì)算?,F(xiàn)在的深度學(xué)習(xí)框架中,出現(xiàn)了好幾個(gè)支持多GPU或者多機(jī)器的分布式學(xué)習(xí)的框架。其中,Google的TensorFlow、微軟的CNTK(Computational Network Toolki)在開發(fā)過程中高度重視分布式學(xué)習(xí)。以大型數(shù)據(jù)中心的低延遲·高吞吐網(wǎng)絡(luò)作為支撐,基于這些框架的分布式學(xué)習(xí)呈現(xiàn)出驚人的效果。 基于分布式學(xué)習(xí),可以達(dá)到何種程度的高速化呢?下圖中顯示了基于TensorFlow的分布式學(xué)習(xí)的效果。

????

基于TensorFlow的分布式學(xué)習(xí)的效果:橫軸是GPU的個(gè)數(shù),縱軸是與單個(gè)GPU相比時(shí)的高速化率

????如上圖所示,隨著GPU個(gè)數(shù)的增加,學(xué)習(xí)速度也在提高。實(shí)際上,與使用1個(gè)GPU時(shí)相比,使用100個(gè)GPU(設(shè)置在多臺(tái)機(jī)器上,共100個(gè))似乎可以實(shí)現(xiàn)56倍的高速化!這意味著之前花費(fèi)7天的學(xué)習(xí)只要3個(gè)小時(shí)就能完成,充分說明了分布式學(xué)習(xí)驚人的效果。

????4.運(yùn)算精度的位數(shù)縮減

????計(jì)算機(jī)中為了表示實(shí)數(shù),主要使用64位或者32位的浮點(diǎn)數(shù)。通過使用較多的位來表示數(shù)字,雖然數(shù)值計(jì)算時(shí)的誤差造成的影響變小了,但計(jì)算的處理成本、內(nèi)存使用量卻相應(yīng)地增加了,還給總線帶寬帶來了負(fù)荷。

????關(guān)于數(shù)值精度(用幾位數(shù)據(jù)表示數(shù)值),我們已經(jīng)知道深度學(xué)習(xí)并不那么需要數(shù)值精度的位數(shù)。這是神經(jīng)網(wǎng)絡(luò)的一個(gè)重要性質(zhì)。這個(gè)性質(zhì)是基于神經(jīng)網(wǎng)絡(luò)的健壯性而產(chǎn)生的。這里所說的健壯性是指,比如,即便輸入圖像附有一些小的噪聲,輸出結(jié)果也仍然保持不變。可以認(rèn)為,正是因?yàn)橛辛诉@個(gè)健壯性,流經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)即便有所“劣化”,對(duì)輸出結(jié)果的影響也較小。

????計(jì)算機(jī)中表示小數(shù)時(shí),有32位的單精度浮點(diǎn)數(shù)和64位的雙精度浮點(diǎn)數(shù)等格式。根據(jù)以往的實(shí)驗(yàn)結(jié)果,在深度學(xué)習(xí)中,即便是16位的半精度浮點(diǎn)數(shù)(half float),也可以順利地進(jìn)行學(xué)習(xí)。

????關(guān)于深度學(xué)習(xí)的位數(shù)縮減,到目前為止已有若干研究。最近有人提出了用1位來表示權(quán)重和中間數(shù)據(jù)的Binarized Neural Networks方法。

四、深度學(xué)習(xí)的應(yīng)用案例

????本節(jié)將以計(jì)算機(jī)視覺這個(gè)領(lǐng)域?yàn)橹行?,介紹幾個(gè)深度學(xué)習(xí)能做的事情(應(yīng)用)。

????1.物體檢測(cè)

????物體檢測(cè)是從圖像中確定物體的位置,并進(jìn)行分類的問題。如下圖所示,要從圖像中確定物體的種類和物體的位置。

物體檢測(cè)的例子

????對(duì)于這樣的物體檢測(cè)問題,人們提出了多個(gè)基于CNN的方法。這些方法展示了非常優(yōu)異的性能,并且證明了在物體檢測(cè)的問題上,深度學(xué)習(xí)是非常有效的。

????在使用CNN進(jìn)行物體檢測(cè)的方法中,有一個(gè)叫作R-CNN的有名的方法。下圖顯示了R-CNN的處理流。

R-CNN的處理流

????2.圖像分割

????圖像分割是指在像素水平上對(duì)圖像進(jìn)行分類。如下圖所示,使用以像素為單位對(duì)各個(gè)對(duì)象分別著色的監(jiān)督數(shù)據(jù)進(jìn)行學(xué)習(xí)。然后,在推理時(shí),對(duì)輸入圖像的所有像素進(jìn)行分類。

圖像分割的例子:左邊是輸入圖像,右邊是監(jiān)督用的帶標(biāo)簽圖像

????為了解決這個(gè)計(jì)算問題,有人提出了一個(gè)名為FCN(Fully Convolutional Network)的方法。該方法通過一次forward處理,對(duì)所有像素進(jìn)行分類,如下圖所示。

FCN的概略圖

????3.圖像標(biāo)題的生成

????有一項(xiàng)融合了計(jì)算機(jī)視覺和自然語言的有趣的研究,該研究如下圖所示,給出一個(gè)圖像后,會(huì)自動(dòng)生成介紹這個(gè)圖像的文字(圖像的標(biāo)題)。

基于深度學(xué)習(xí)的圖像標(biāo)題生成的例子

????一個(gè)基于深度學(xué)習(xí)生成圖像標(biāo)題的代表性方法是被稱為NIC(Neural Image Caption)的模型。如下圖所示,NIC由深層的CNN和處理自然語言的RNN(Recurrent Neural Network)構(gòu)成。RNN是呈遞歸式連接的網(wǎng)絡(luò), 經(jīng)常被用于自然語言、時(shí)間序列數(shù)據(jù)等連續(xù)性的數(shù)據(jù)上。

Neural Image Caption(NIC)的整體結(jié)構(gòu)

????我們將組合圖像和自然語言等多種信息進(jìn)行的處理稱為多模態(tài)處理。多模態(tài)處理是近年來備受關(guān)注的一個(gè)領(lǐng)域。
五、深度學(xué)習(xí)的未來

????1.圖像風(fēng)格變換

????如下圖所示,如果指定將梵高的繪畫風(fēng)格應(yīng)用于內(nèi)容圖像,深度學(xué)習(xí)就會(huì)按照指示繪制出新的畫作。

基于論文“A Neural Algorithm of Artistic Style”的圖像風(fēng)格變換的例子:左上角是風(fēng)格圖像,右上角是內(nèi)容圖像,下面的圖像是新生成的圖像

????2.圖像的生成
? ? 下圖的圖像可能看上去像是真的照片,但其實(shí)這些圖像都是基于 DCGAN新生成的圖像。也就是說,DCGAN生成的圖像是誰都沒有見過的圖像(學(xué)習(xí)數(shù)據(jù)中沒有的圖像),是從零生成的新圖像。能畫出以假亂真的圖像的DCGAN會(huì)將圖像的生成過程模型化。使用大量圖像(比如,印有臥室的大量圖像)訓(xùn)練這個(gè)模型,學(xué)習(xí)結(jié)束后,使用這個(gè)模型,就可以生成新的圖像。

基于DCGAN生成的新的臥室圖像

????DCGAN中使用了深度學(xué)習(xí),其技術(shù)要點(diǎn)是使用了Generator(生成者)和Discriminator(識(shí)別者)這兩個(gè)神經(jīng)網(wǎng)絡(luò)。Generator生成近似真品的圖像,Discriminator判別它是不是真圖像(是Generator生成的圖像還是實(shí)際拍攝的圖像)。像這樣,通過讓兩者以競(jìng)爭(zhēng)的方式學(xué)習(xí),Generator會(huì)學(xué)習(xí)到更加精妙的圖像作假技術(shù),Discriminator則會(huì)成長(zhǎng)為能以更高精度辨別真假的鑒定師。兩者互相切磋、共同成長(zhǎng),這是GAN(Generative Adversarial Network)這個(gè)技術(shù)的有趣之處。在這樣的切磋中成長(zhǎng)起來的Generator最終會(huì)掌握畫出足以以假亂真的圖像的能力。

????3.自動(dòng)駕駛

????下圖中對(duì)輸入圖像進(jìn)行了分割(像素水平的判別)。觀察結(jié)果可知,在某種程度上正確地識(shí)別了道路、建筑物、人行道、樹木、車輛等。今后若能基于深度學(xué)習(xí)使這種技術(shù)進(jìn)一步實(shí)現(xiàn)高精度化、高速化的話,自動(dòng)駕駛的實(shí)用化可能也就沒那么遙遠(yuǎn)了。

基于深度學(xué)習(xí)的圖像分割的例子:道路、車輛、建筑物、人行道等被高精度地識(shí)別了出來

? ? 4.Deep Q-Network(強(qiáng)化學(xué)習(xí))

????????就像人類通過摸索試驗(yàn)來學(xué)習(xí)一樣(比如騎自行車),讓計(jì)算機(jī)也在摸索試驗(yàn)的過程中自主學(xué)習(xí),這稱為強(qiáng)化學(xué)習(xí)(reinforcement learning)。強(qiáng)化學(xué)習(xí)和有“教師”在身邊教的“監(jiān)督學(xué)習(xí)”有所不同。

????強(qiáng)化學(xué)習(xí)的基本框架是,代理(Agent)根據(jù)環(huán)境選擇行動(dòng),然后通過這個(gè)行動(dòng)改變環(huán)境。根據(jù)環(huán)境的變化,代理獲得某種報(bào)酬。強(qiáng)化學(xué)習(xí)的目的是決定代理的行動(dòng)方針,以獲得更好的報(bào)酬,如下圖所示。

強(qiáng)化學(xué)習(xí)的基本框架:代理自主地進(jìn)行學(xué)習(xí),以獲得更好的報(bào)酬

????在使用了深度學(xué)習(xí)的強(qiáng)化學(xué)習(xí)方法中,有一個(gè)叫作Deep Q-Network(通稱DQN)的方法。該方法基于被稱為Q學(xué)習(xí)的強(qiáng)化學(xué)習(xí)算法。在Q學(xué)習(xí)中,為了確定最合適的行動(dòng),需要確定一個(gè)被稱為最優(yōu)行動(dòng)價(jià)值函數(shù)的函數(shù)。為了近似這個(gè)函數(shù),DQN使用了深度學(xué)習(xí)(CNN)。

????在DQN的研究中,有讓電子游戲自動(dòng)學(xué)習(xí),并實(shí)現(xiàn)了超過人類水平的操作的例子。如下圖所示,DQN中使用的CNN把游戲圖像的幀(連續(xù)4幀) 作為輸入,最終輸出游戲手柄的各個(gè)動(dòng)作(控制桿的移動(dòng)量、按鈕操作的有無等)的“價(jià)值”。

基于Deep Q-Network學(xué)習(xí)電子游戲的操作。輸入是電子游戲的圖像,經(jīng)過摸索試驗(yàn),學(xué)習(xí)出讓專業(yè)玩家都自愧不如的游戲手柄(操作桿)的操作手法

????深度學(xué)習(xí)領(lǐng)域還有很多尚未揭曉的東西,新的研究正一個(gè)接一個(gè)地出現(xiàn)。 今后,全世界的研究者和技術(shù)專家也將繼續(xù)積極從事這方面的研究,一定能實(shí)現(xiàn)目前無法想象的技術(shù)。

????感謝讀者一直讀到本書的最后一章。如果讀者能通過本書加深對(duì)深度學(xué)習(xí)的理解,體會(huì)到深度學(xué)習(xí)的有趣之處,筆者將深感榮幸。

原書正文內(nèi)容完。

魚書(深度學(xué)習(xí)入門):第八章 深度學(xué)習(xí)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
称多县| 南岸区| 阿拉善盟| 九江县| 湘西| 商丘市| 区。| 丹阳市| 松潘县| 法库县| 孝义市| 和顺县| 湾仔区| 黎城县| 长海县| 东丽区| 岗巴县| 屯门区| 巢湖市| 英德市| 台江县| 阿勒泰市| 康保县| 姚安县| 共和县| 屏东市| 大埔区| 武安市| 龙州县| 上思县| 石首市| 安福县| 合肥市| 穆棱市| 黑龙江省| 苏尼特右旗| 宝山区| 集安市| 合山市| 松溪县| 蒙阴县|