《深度学习:Java语言实现》一一1.3人工智能与深度学习
1.3人工智能與深度學(xué)習(xí)
機(jī)器學(xué)習(xí)是人工智能第三波浪潮中碰撞出來的火花,作為一種數(shù)據(jù)挖掘方法,它既實(shí)用又強(qiáng)大;然而,即便采用了這種新的機(jī)器學(xué)習(xí)方法,要實(shí)現(xiàn)真正的人工智能似乎依舊遙遙無(wú)期。因?yàn)槎x特征一直需要人為干預(yù),這是阻擋機(jī)器學(xué)習(xí)實(shí)現(xiàn)人工智能的一面高墻。看起來第三次人工智能的浪潮也會(huì)無(wú)疾而終。然而,出人意料的是,這波浪潮并未消退,反而出現(xiàn)了另一波新的浪潮。觸發(fā)這波新浪潮的就是深度學(xué)習(xí)。
隨著深度學(xué)習(xí)的出現(xiàn),至少在圖像識(shí)別和語(yǔ)音識(shí)別領(lǐng)域,機(jī)器學(xué)習(xí)已經(jīng)可以憑借自身的能力從輸入數(shù)據(jù)中判斷“哪些是特征值”,不再需要人工的干預(yù)。之前只能照本宣科地處理符號(hào)的機(jī)器現(xiàn)在也能夠獲得概念了。
人工智能浪潮及人工智能研究領(lǐng)域之間的對(duì)應(yīng)關(guān)系圖
從深度學(xué)習(xí)首次出現(xiàn)到現(xiàn)在已經(jīng)歷了漫長(zhǎng)的時(shí)間,時(shí)間回到2006年,加拿大多倫多大學(xué)(Toronto University)的欣頓(Hinton)教授及同事們一起發(fā)表了關(guān)于深度學(xué)習(xí)的第一篇論文(https://wwwcstorontoedu/~hinton/absps/fastncpdf)。在這篇論文中,欣頓教授提出了一種名為深度置信網(wǎng)絡(luò)(Deep Belief Net, DBN)的方法,它是對(duì)傳統(tǒng)機(jī)器學(xué)習(xí)方法——神經(jīng)網(wǎng)絡(luò)的一種擴(kuò)展。深度置信網(wǎng)絡(luò)使用MNIST數(shù)據(jù)庫(kù)進(jìn)行測(cè)試,這是一種對(duì)圖像識(shí)別方法精度和準(zhǔn)確度進(jìn)行比較的標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)。這個(gè)數(shù)據(jù)庫(kù)中包含了70 000個(gè)28×28像素的手寫字符圖像數(shù)據(jù),這些圖像都是從0到9的數(shù)字(其中60 000個(gè)訓(xùn)練樣本集,10 000個(gè)測(cè)試樣本集)。
接著,他們構(gòu)造了一個(gè)基于訓(xùn)練數(shù)據(jù)的預(yù)測(cè)模型,依據(jù)機(jī)器能否正確識(shí)別測(cè)試用例中書寫的數(shù)字0到9來測(cè)量它的預(yù)測(cè)精度。雖然這篇論文顯示,它的預(yù)測(cè)精度要遠(yuǎn)超傳統(tǒng)的方法,然而當(dāng)時(shí)它并未引起大家的注意,也許這是由于它對(duì)比的對(duì)象是機(jī)器學(xué)習(xí)中比較通用的方法。
這之后不久的2012年,整個(gè)人工智能研究領(lǐng)域都被一個(gè)方法震撼了。這一年的圖像識(shí)別競(jìng)賽“Imagenet大規(guī)模視覺識(shí)別挑戰(zhàn)賽(Imagnet Large Scale Visual Recognition Challenge, ILSVRC)”上,一種使用深度學(xué)習(xí)名為“超級(jí)視覺(SuperVision)”(嚴(yán)格地說,這只是他們的隊(duì)名)的方法贏得了比賽,該方法是由欣頓教授和多倫多大學(xué)的同事一起合作開發(fā)的。它將其他的競(jìng)爭(zhēng)者們遠(yuǎn)遠(yuǎn)地甩在了后面,準(zhǔn)確率也相當(dāng)驚人。這場(chǎng)競(jìng)賽中,機(jī)器會(huì)接受相應(yīng)的任務(wù)去自動(dòng)地判別圖像中的信息,它是一只貓、一只狗、一只鳥,抑或是一條船等,諸如此類。訓(xùn)練數(shù)據(jù)集是10 000 000張圖片,測(cè)試數(shù)據(jù)是150 000張圖片。這項(xiàng)比賽中,每一個(gè)方法都在競(jìng)爭(zhēng)最低的出錯(cuò)率(即最高的準(zhǔn)確率)。
讓我們看看下面這張表,它顯示了此次競(jìng)賽的結(jié)果:
排名團(tuán)隊(duì)名錯(cuò)誤率
1SuperVision015315
2SuperVision016422
3ISI026172
4ISI026602
5ISI026646
6ISI026952
7OXFORD_VGG026979
8XRCE/INRIA027058
你可以看到SuperVision隊(duì)與第二名ISI隊(duì)之間在出錯(cuò)率上的差異超過10%。第二名之后其后各隊(duì)之間的差異都在01%以內(nèi)。現(xiàn)在你知道SuperVision在準(zhǔn)確率上是如何碾壓其他隊(duì)的了吧。更讓人瞠目結(jié)舌的是,這是SuperVision隊(duì)首次參加ILSVRC競(jìng)賽,換句話說,他們并非圖像識(shí)別的專家。SuperVision(深度學(xué)習(xí))出現(xiàn)之前,圖像識(shí)別領(lǐng)域的普適方法是機(jī)器學(xué)習(xí)。并且,正如我們前面所介紹的,機(jī)器學(xué)習(xí)使用的特征值需要由人工進(jìn)行設(shè)置或者設(shè)計(jì)。他們需要依據(jù)人類的直覺和經(jīng)驗(yàn)挨個(gè)嘗試設(shè)計(jì)特征,一遍又一遍地調(diào)整參數(shù),才有可能在最終取得01%的準(zhǔn)確率提升。深度學(xué)習(xí)出現(xiàn)之前,研究的熱點(diǎn)和競(jìng)爭(zhēng)都集中在誰(shuí)能夠發(fā)明更加高效的特征工程。因此,當(dāng)深度學(xué)習(xí)突然橫空出世,所有的研究人員都大吃一驚。
另一個(gè)重要事件將深度學(xué)習(xí)的浪潮推廣到了全世界。這一事件也發(fā)生在2012年,與SuperVision在ILSVRC震驚世界的時(shí)間是同一年,那一年谷歌宣布使用自己的深度學(xué)習(xí)算法,采用YouTube視頻作為學(xué)習(xí)數(shù)據(jù),機(jī)器可以自動(dòng)識(shí)別出視頻中的貓。關(guān)于這個(gè)算法的細(xì)節(jié)可以通過http://googleblogblogspotcom/2012/06/usinglargescalebrainsimulationsforhtml了解。這個(gè)算法從YouTube的視頻中提取了1000萬(wàn)個(gè)圖像,使用這些圖像作為輸入數(shù)據(jù)。回想一下我們之前所說的,傳統(tǒng)機(jī)器學(xué)習(xí)中人扮演著重要的角色,需要人為處理數(shù)據(jù),從圖像中提取出特征值。而使用深度學(xué)習(xí)的話,原始圖像可以直接作為輸入數(shù)據(jù)。這表明機(jī)器自身已經(jīng)可以自動(dòng)地從訓(xùn)練數(shù)據(jù)集中提取特征。上述的這個(gè)研究里,機(jī)器就學(xué)習(xí)了貓的概念(雖然只有貓的故事比較有名,實(shí)際的研究工作也針對(duì)人類的圖像進(jìn)行了處理,效果也很好。機(jī)器已經(jīng)知道了什么是人類!)下面的這幅圖片,介紹了研究中經(jīng)由YouTube未打標(biāo)簽的視頻訓(xùn)練后深度學(xué)習(xí)認(rèn)為貓所具有的特征:
這兩個(gè)重大事件深深地震撼了我們,引發(fā)了現(xiàn)在依舊蓬勃發(fā)展的深度學(xué)習(xí)浪潮。
谷歌推出能夠識(shí)別貓的方法之后,又拓展構(gòu)造了另一個(gè)實(shí)驗(yàn),這個(gè)實(shí)驗(yàn)使一個(gè)機(jī)器試圖利用深度學(xué)習(xí)進(jìn)行繪畫。這一方法被稱作構(gòu)夢(mèng)派(Inceptionism,http://googleresearchblogspotch/2015/06/inceptionismgoingdeeperintoneuralhtml)
該文中描述,構(gòu)夢(mèng)派的網(wǎng)絡(luò)是按如下方式學(xué)習(xí)的:
“識(shí)別出的對(duì)象,會(huì)越來越多”。即形成反饋環(huán)路:如果云看起來有一點(diǎn)點(diǎn)像鳥,網(wǎng)絡(luò)識(shí)別則會(huì)使其更像鳥;進(jìn)而,網(wǎng)絡(luò)在下一層及后面層中對(duì)鳥識(shí)別得更明確,直到一個(gè)清晰鳥形象出現(xiàn),而且看似無(wú)處不在。
機(jī)器學(xué)習(xí)中使用神經(jīng)網(wǎng)絡(luò)通常是為了檢測(cè)模式,從而對(duì)圖像進(jìn)行識(shí)別,而“構(gòu)夢(mèng)派”的玩法卻是反其道而行之。正如你從下面這些“構(gòu)夢(mèng)派”的例子中所感受到的,這些繪圖看起來有些詭異,就像是夢(mèng)魘的世界:
抑或,它們可以被看成是藝術(shù)品。這個(gè)可以讓任何人嘗試“構(gòu)夢(mèng)派”的工具現(xiàn)在已經(jīng)在GitHub上開源,它的名字是Deep Dream(https://githubcom/google/deepdream)。實(shí)現(xiàn)的例子也可以在該頁(yè)面找到。如果你知道如何編寫Python程序,就可以試著把玩下這些例子。
好吧,似乎沒有什么可以阻擋深度學(xué)習(xí)站上史無(wú)前例的高峰,不過我們還是有不少疑問,譬如,到底深度學(xué)習(xí)有哪些創(chuàng)新?哪些具體的方法極大地提升了它的預(yù)測(cè)精度?令人意外的是,實(shí)際上深度學(xué)習(xí)在算法上并沒有太多的區(qū)別。正如我們?cè)谇懊嫠岬降?#xff0c;深度學(xué)習(xí)是對(duì)神經(jīng)網(wǎng)絡(luò)的應(yīng)用,而神經(jīng)網(wǎng)絡(luò)是一種機(jī)器學(xué)習(xí)算法,它模擬了人類大腦的結(jié)構(gòu)。不管怎樣,機(jī)器采用了它并因此改變了一切。這其中的代表是預(yù)訓(xùn)練(Pretraining)和帶激活功能的棄聯(lián)(Dropout)。這些也是實(shí)現(xiàn)的關(guān)鍵字,因此請(qǐng)記住它們。
首先,深度學(xué)習(xí)中的“深度”到底代表什么意思呢?你可能已經(jīng)知道,人類的大腦是一種電路結(jié)構(gòu),這種結(jié)構(gòu)相當(dāng)復(fù)雜。它是由復(fù)雜電路多層堆疊而成。而另一方面,當(dāng)神經(jīng)網(wǎng)絡(luò)算法首次出現(xiàn)時(shí),它的結(jié)構(gòu)非常簡(jiǎn)單。它近乎是一種人腦結(jié)構(gòu)的簡(jiǎn)化版本,其網(wǎng)絡(luò)也僅有很少幾層。因此,它能識(shí)別的模式少得可憐。所以,幾乎每個(gè)人都會(huì)猜想“如果我們像人腦那樣將網(wǎng)絡(luò)聚集在一起,讓它的實(shí)現(xiàn)更加復(fù)雜,能不能取得更好的效果呢?”當(dāng)然,這個(gè)方法我們也嘗試過,然而,不幸的是,結(jié)果并不理想,這種方式的預(yù)測(cè)精度比將網(wǎng)絡(luò)堆疊起來效果還差一些。事實(shí)上,我們碰到了各種在簡(jiǎn)單網(wǎng)絡(luò)中不曾遭遇的問題。為什么會(huì)這樣呢?人腦中依據(jù)你看到的東西,信號(hào)會(huì)進(jìn)入到電路的不同部分。不同部分的電路受到刺激就會(huì)觸發(fā)不同的模式,所以你能區(qū)分不同的事物。
為了復(fù)制這一機(jī)制,神經(jīng)網(wǎng)絡(luò)算法使用權(quán)重連接代替了之前網(wǎng)絡(luò)之間的連接。這是一個(gè)重要的改進(jìn),不過很快就出了問題。如果網(wǎng)絡(luò)比較簡(jiǎn)單,權(quán)重可以依據(jù)學(xué)習(xí)數(shù)據(jù)進(jìn)行恰當(dāng)?shù)姆峙?#xff0c;網(wǎng)絡(luò)可以很好地識(shí)別和區(qū)分這些模式。然而,一旦網(wǎng)絡(luò)變得復(fù)雜,連接變得過于密集,這時(shí)就很難依靠權(quán)重進(jìn)行區(qū)分了。簡(jiǎn)而言之,算法將無(wú)法恰當(dāng)?shù)貏澐帜J健A硗?#xff0c;神經(jīng)網(wǎng)絡(luò)中,網(wǎng)絡(luò)在進(jìn)行全網(wǎng)訓(xùn)練時(shí),通過反饋錯(cuò)誤機(jī)制可以構(gòu)建一定的模型。同樣,如果網(wǎng)絡(luò)簡(jiǎn)單,反饋可以及時(shí)地得到反應(yīng),然而,如果網(wǎng)絡(luò)有多層結(jié)構(gòu),這樣的環(huán)境中發(fā)生問題,而錯(cuò)誤在它被反饋到全網(wǎng)之前消失了——想象一下那個(gè)錯(cuò)誤擴(kuò)散開并稀釋會(huì)帶來怎樣的影響。
如果網(wǎng)絡(luò)使用復(fù)雜結(jié)構(gòu)搭建,情況是不是會(huì)好些呢?遺憾的是,這樣的嘗試最終也以失敗告終。算法自身的概念是好的,不過,以世界理解來看,它從任何的標(biāo)準(zhǔn)而言都不能被稱為一個(gè)完美的算法。雖然深度學(xué)習(xí)成功地將網(wǎng)絡(luò)多層化,即將網(wǎng)絡(luò)變得“深”了,它成功的關(guān)鍵其實(shí)是每一層都參與到分階段的學(xué)習(xí)中來。而之前的算法將整個(gè)多層網(wǎng)絡(luò)作為一個(gè)巨大的神經(jīng)網(wǎng)絡(luò),在這個(gè)單一的網(wǎng)絡(luò)中進(jìn)行學(xué)習(xí),這最終導(dǎo)致了前面提到的問題。
因此,深度學(xué)習(xí)采用了讓各層預(yù)先學(xué)習(xí)的方式。這就是著名的“預(yù)訓(xùn)練”。預(yù)訓(xùn)練中,學(xué)習(xí)從淺層順次開始。之后,淺層學(xué)習(xí)得出的數(shù)據(jù)會(huì)作為下一層的輸入數(shù)據(jù)。機(jī)器按照此方式,由淺層的初級(jí)特征逐步學(xué)習(xí)到深層的高級(jí)特征。譬如,學(xué)習(xí)什么是貓時(shí),第一層是一個(gè) 輪廓、接下來的一層是眼睛和鼻子的形狀、下一層是臉的圖片、再接下來一層是臉的細(xì)節(jié),以此類推。類似地,人類幾乎也是采用同樣的步驟進(jìn)行學(xué)習(xí),首先獲取一個(gè)全局的印象,之后再深入到細(xì)節(jié)特征。因?yàn)槊恳粚佣荚诜蛛A段地學(xué)習(xí),學(xué)習(xí)的錯(cuò)誤反饋也可以在每一層上得到恰當(dāng)?shù)奶幚怼_@種設(shè)計(jì)改善了預(yù)測(cè)的精度。還有一種改進(jìn),每一層的學(xué)習(xí)都使用不同的方法,不過我們現(xiàn)在暫時(shí)不討論,后面的內(nèi)容會(huì)進(jìn)行介紹。
我們之前描述過網(wǎng)絡(luò)連接過于稠密的問題。避免這種密集問題的方法稱之為dropout。使用dropout的網(wǎng)絡(luò)通過隨機(jī)斷開神經(jīng)單元之間連接的方式進(jìn)行學(xué)習(xí)。dropout從物理上使得網(wǎng)絡(luò)變得更加稀疏。哪些網(wǎng)絡(luò)會(huì)被切斷是隨機(jī)決定的,因此每個(gè)學(xué)習(xí)步驟都會(huì)重新形成一個(gè)新的網(wǎng)絡(luò)。如果只是看看,你可能會(huì)質(zhì)疑這種方法能否工作,但是它的確改進(jìn)了預(yù)測(cè)精度,最終的結(jié)果是增強(qiáng)了網(wǎng)絡(luò)的魯棒性。人腦的電路也會(huì)依據(jù)它看到的主題在不同的部分進(jìn)行處理或回應(yīng)。dropout似乎成功地模擬了這套機(jī)制。將dropout機(jī)制嵌入算法之后,網(wǎng)絡(luò)權(quán)重的調(diào)整變得很有效了。
深度學(xué)習(xí)在不同的領(lǐng)域已經(jīng)有很多成功的案例;然而,它也有其局限性。正如“深度學(xué)習(xí)”這個(gè)名字所體現(xiàn)的,這種方法的學(xué)習(xí)是非常“深”的。這意味著完成學(xué)習(xí)步驟要花費(fèi)漫長(zhǎng)的時(shí)間。這個(gè)過程中消耗的計(jì)算量也異常龐大的。實(shí)際上,前面我們提到谷歌對(duì)貓的識(shí)別學(xué)習(xí)就耗時(shí)三天,動(dòng)用了一千多臺(tái)計(jì)算機(jī)。反過來,雖然深度學(xué)習(xí)的想法本身使用之前的技術(shù)也能達(dá)成,卻是很難實(shí)現(xiàn)的。如果你不能比較便利地使用具備了大規(guī)模處理能力和海量數(shù)據(jù)的機(jī)器,這一方法就不會(huì)實(shí)現(xiàn)。
正如我們不斷重復(fù)提起的,深度學(xué)習(xí)僅僅是機(jī)器獲取“類人(HumanLike)”知識(shí)的第一步。沒人知道未來會(huì)出現(xiàn)什么樣的創(chuàng)新。不過,我們可以預(yù)測(cè)計(jì)算機(jī)的處理能力在將來能達(dá)到怎樣的程度。為了進(jìn)行預(yù)測(cè),我們使用了摩爾定律。支撐計(jì)算機(jī)處理的集成芯片的性能是由其上搭載的晶體管數(shù)目決定的。摩爾定律顯示,集成電路上的晶體管數(shù)量大約每隔一年半的時(shí)間就會(huì)增加一倍。實(shí)際上,計(jì)算機(jī)中央處理器中的晶體管數(shù)量迄今一直遵循摩爾定律增長(zhǎng)。我們可以做一個(gè)對(duì)比,與世界上第一臺(tái)微處理器,即英特爾公司的4004處理器,它當(dāng)時(shí)有1×103(1000)個(gè)晶體管,最近的2015版,即英特爾公司的第五代酷睿處理器擁有1×109(10億)個(gè)晶體管,如果技術(shù)保持這樣的進(jìn)步速度,集成電路上晶體管的數(shù)量不久將會(huì)超過100億,這比人類大腦中細(xì)胞的數(shù)目還要多。
依據(jù)摩爾定律,在未來的2045年或者更晚的時(shí)候,我們會(huì)到達(dá)“技術(shù)奇點(diǎn)”,那時(shí)人類將有能力對(duì)技術(shù)進(jìn)行預(yù)測(cè)。彼時(shí),機(jī)器很可能就已經(jīng)具有自我遞歸的智能了。換句話說,在未來的三十年里,人工智能會(huì)逐漸成熟。那個(gè)時(shí)候的世界會(huì)變成怎樣呢……
摩爾定律的歷史
英特爾公司研發(fā)的處理器搭載的晶體管數(shù)目一直遵循摩爾定律穩(wěn)定增長(zhǎng)著。
聞名世界的學(xué)者斯蒂芬·霍金教授接受BBC的一次訪談(http://wwwbbccom/news/technology30290540)時(shí)說:
“全面人工智能的發(fā)展將宣告人類的終結(jié)!”
深度學(xué)習(xí)會(huì)成為“黑魔法”嗎?事實(shí)上,技術(shù)的發(fā)展有時(shí)的確帶來了災(zāi)難。實(shí)現(xiàn)人工智能的路依舊漫長(zhǎng),然而,我們?cè)谶M(jìn)行深度學(xué)習(xí)的工作時(shí)要保持警惕。
總結(jié)
以上是生活随笔為你收集整理的《深度学习:Java语言实现》一一1.3人工智能与深度学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: x264中I,P,B帧和PTS,DTS的
- 下一篇: GitHub教程手册、使用流程