編者按:你可能聽說過人工智能遮怜,但你知道它是怎么運(yùn)轉(zhuǎn)的嗎?GumGum的首席執(zhí)行官Ophir Tanz早前在TechCrunch上發(fā)表了一篇文章對(duì)人工智能的基層技術(shù)——神經(jīng)網(wǎng)絡(luò)進(jìn)行了介紹搅窿,文章中并沒有什么高深的數(shù)學(xué)函數(shù)等等嘁酿,而是通過一個(gè)神經(jīng)網(wǎng)絡(luò)“識(shí)別”蘋果的例子來對(duì)其工作方式進(jìn)行了生動(dòng)的呈現(xiàn)隙券。通過這篇文章,你或許對(duì)人工智能有更加深刻的理解闹司。
如果你去閱讀任何有關(guān)于人工智能的文章娱仔,你肯定會(huì)碰到“神經(jīng)網(wǎng)絡(luò)(neural network)”這個(gè)專有名詞,它是指通過松散地模仿人類的大腦游桩,來使得計(jì)算機(jī)能夠通過數(shù)據(jù)來進(jìn)行學(xué)習(xí)的方式牲迫。
可以說,神經(jīng)網(wǎng)絡(luò)可能是當(dāng)今存在的最具有破壞性與顛覆性的技術(shù)之一借卧。用其作為關(guān)鍵技術(shù)的機(jī)器學(xué)習(xí)比其他任何人工智能研究分支都能夠擔(dān)負(fù)起終結(jié)漫長(zhǎng)“人工智能冬季”的使命盹憎。
這篇文章旨在幫助你理解深度學(xué)習(xí)如何進(jìn)行工作的。所以文章中就避免了關(guān)于深入討論數(shù)學(xué)的部分铐刘,而使用了更多的類比與動(dòng)畫模擬陪每。
1、
早期研究人工智能的教授認(rèn)為,如果你把盡可能多的信息裝入一臺(tái)強(qiáng)大的計(jì)算機(jī)檩禾,并盡可能多地告訴它怎么去理解那些數(shù)據(jù)挂签,它就應(yīng)該能夠“思考”。這就是IBM著名的深藍(lán)(Deep Blue)——國(guó)際象棋計(jì)算機(jī)背后的想法:通過詳盡地編程盼产,將棋子的每一項(xiàng)可能饵婆、已知的下棋策略寫入計(jì)算機(jī)中,并給予足夠的動(dòng)力戏售。
理論上來說侨核,這臺(tái)由IBM程序員創(chuàng)建的機(jī)器能夠計(jì)算出來每一個(gè)可能的動(dòng)作和未來的結(jié)果,從而來安排后續(xù)行動(dòng)的順序來超越對(duì)手灌灾。這實(shí)際上和1997年的象棋大師的學(xué)習(xí)沒有什么區(qū)別芹关。(注:這與Alphago不同,Alphago使用的是自主學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)紧卒,深藍(lán)使用的是一個(gè)人編寫的硬編碼函數(shù)侥衬。)
通過這種計(jì)算,機(jī)器依賴于工程師精心預(yù)編程的固定規(guī)則——如果發(fā)生了特定的情況跑芳,那么與其對(duì)應(yīng)的情況就會(huì)發(fā)生轴总;如果發(fā)生了特定的情況,就應(yīng)該按照固定的方式進(jìn)行應(yīng)對(duì)博个。很顯然怀樟,這與人類靈活的學(xué)習(xí)方式想去甚遠(yuǎn),僅僅是強(qiáng)大的計(jì)算而已盆佣,更不用說是思考本身了往堡。
2、
在過去的十多年中共耍,科學(xué)家重新?lián)炱鹆艘粋€(gè)不依賴大型百科全書記憶庫(kù)的舊概念虑灰,而是用一種模仿人類思維、簡(jiǎn)單而系統(tǒng)的方法分析輸入數(shù)據(jù)的技術(shù)痹兜。這種技術(shù)被稱為深度學(xué)習(xí)或者是神經(jīng)網(wǎng)絡(luò)穆咐。其實(shí)從20世紀(jì)40年代它就一直存在了,得益于當(dāng)前數(shù)據(jù)的大量增長(zhǎng)字旭,比如圖像对湃、視頻、語(yǔ)音搜索遗淳、瀏覽習(xí)慣等等拍柒,以及超負(fù)荷和負(fù)擔(dān)得起的處理器,它終于能夠開始顯現(xiàn)真正的潛力屈暗。
人工(相對(duì)于人類)神經(jīng)網(wǎng)絡(luò)(ANN)是一種算法構(gòu)造拆讯,使得機(jī)器能夠從語(yǔ)音命令和播放策略到音樂組合和圖像識(shí)別中學(xué)到一切有用的信息剧包。典型的ANN由數(shù)千個(gè)互連的人造神經(jīng)元組成,這些神經(jīng)元按順序堆疊在被稱為層的行列中往果,形成數(shù)百萬個(gè)連接疆液。在許多情況下,層僅通過輸入和輸出與它們之間和之后的神經(jīng)元層互連陕贮。(這與人腦中的神經(jīng)元完全不同堕油,它們是相互連接的。)
這種分層的ANN是當(dāng)前機(jī)器學(xué)習(xí)的主要方式之一肮之,并且有大量的標(biāo)簽數(shù)據(jù)可以幫助學(xué)習(xí)如何解讀數(shù)據(jù)(有時(shí)甚至比人類更好)掉缺。
以圖像識(shí)別為例,它依賴于稱為卷積神經(jīng)網(wǎng)絡(luò)(CNN)的特定類型的神經(jīng)網(wǎng)絡(luò)戈擒,因?yàn)樗褂梅Q為卷積的數(shù)學(xué)過程能夠以非文字方式分析圖像眶明,例如識(shí)別部分模糊的對(duì)象或僅從某些角度可見的對(duì)象。(還有其他類型的神經(jīng)網(wǎng)絡(luò)筐高,包括遞歸神經(jīng)網(wǎng)絡(luò)和前饋神經(jīng)網(wǎng)絡(luò)搜囱,但是這些神經(jīng)網(wǎng)絡(luò)對(duì)于識(shí)別諸如圖像的東西不太有用,下面我們只使用使用示例來進(jìn)行分析柑土。)
3蜀肘、
那么,神經(jīng)網(wǎng)絡(luò)如何學(xué)習(xí)稽屏?讓我們來看一個(gè)非常簡(jiǎn)單但有效的程序扮宠,它被稱為監(jiān)督學(xué)習(xí)。在這里狐榔,我們?yōu)樯窠?jīng)網(wǎng)絡(luò)提供了大量有人類標(biāo)記的訓(xùn)練數(shù)據(jù)坛增,以便神經(jīng)網(wǎng)絡(luò)可以最大程度地在事實(shí)上進(jìn)行自我檢查。
假設(shè)這個(gè)標(biāo)簽數(shù)據(jù)分別由蘋果和橙子的圖像組成薄腻。照片是數(shù)據(jù)收捣,“蘋果”和“橙子”是標(biāo)簽,具體取決于圖像被廓。當(dāng)圖像被輸入時(shí)坏晦,網(wǎng)絡(luò)將它們分解成最基本的組件萝玷,即邊緣嫁乘,紋理和形狀。當(dāng)圖像通過網(wǎng)絡(luò)傳播時(shí)球碉,這些基本組件被組合起來形成更抽象的概念蜓斧,即曲線和不同顏色,當(dāng)進(jìn)一步組合時(shí)睁冬,開始看起來像莖挎春、整個(gè)橙子看疙,或綠色和紅色蘋果等等。
在這個(gè)過程即將技術(shù)的時(shí)候直奋,網(wǎng)絡(luò)試圖對(duì)圖像中的內(nèi)容進(jìn)行預(yù)測(cè)能庆。一開始這些預(yù)測(cè)是隨機(jī)的,因?yàn)檫€沒有真正地進(jìn)行學(xué)習(xí)脚线。如果輸入的圖像是蘋果搁胆,但預(yù)測(cè)為“橙子”,則需要調(diào)整網(wǎng)絡(luò)的內(nèi)層邮绿。
這些調(diào)整是通過一個(gè)稱為反向傳播的過程來進(jìn)行的渠旁,以增加下一次為同一圖像預(yù)測(cè)“蘋果”的可能性。這種情況一直發(fā)生船逮,直到預(yù)測(cè)或多或少是準(zhǔn)確的顾腊,而且似乎并沒有得到改善。正如父母教孩子們?cè)诂F(xiàn)實(shí)生活中識(shí)別蘋果和橙子一樣挖胃,對(duì)于計(jì)算機(jī)來說杂靶,也是會(huì)熟能生巧的。
通常酱鸭,卷積神經(jīng)網(wǎng)絡(luò)除了輸入和輸出層之外還有四個(gè)基本的神經(jīng)元層伪煤,分別是卷積(Convolution)、激活(Activation)凛辣、池(Pooling)抱既、完全連接(Fully connected)。
3.1 卷積
在初始的卷積層或?qū)又斜馐模汕先f的神經(jīng)元作為第一組過濾器防泵,在圖像的每個(gè)部分和像素中尋找特征。隨著越來越多的圖像被處理蝗敢,每個(gè)神經(jīng)元逐漸學(xué)會(huì)對(duì)特定的特征進(jìn)行過濾捷泞,這對(duì)于準(zhǔn)確率的提高有極大幫助。
在蘋果的情況下寿谴,一個(gè)過濾器可能集中在發(fā)現(xiàn)紅色的顏色锁右,而另一個(gè)過濾器可能正在尋找圓形邊緣,而另一個(gè)過濾器可能會(huì)識(shí)別薄的讶泰,棒狀的莖咏瑟。
舉個(gè)例子,如果你必須清理一個(gè)雜亂的地下室痪署,準(zhǔn)備一跳蚤市場(chǎng)或者搬家码泞,你就會(huì)明白將經(jīng)歷什么,你會(huì)將地下室中的物品按照不同的類別(書狼犯、玩具余寥、電子领铐、藝術(shù)品、衣服)來整理好宋舷。這是一個(gè)卷積層通過將圖像分解成不同的功能來完成的绪撵。
特別強(qiáng)大的是,神經(jīng)網(wǎng)絡(luò)與早期的人工智能方法(深藍(lán)及其同類)不同祝蝠,這些過濾器不是設(shè)計(jì)的莲兢,他們純粹是通過查看數(shù)據(jù)來學(xué)習(xí)和和完善自己的。
卷積層基本上創(chuàng)建了一個(gè)圖譜——圖片的不同的续膳、細(xì)分的版本改艇,每個(gè)都與一種過濾特征相匹配,來指示其神經(jīng)元在哪里看到紅色坟岔,莖谒兄,曲線和各種其他元素的實(shí)例(但是部分的),比如在這個(gè)文章中例子是一個(gè)蘋果社付。但由于卷積層在特征識(shí)別中是相當(dāng)自由的承疲,所以它需要額外的輔助,以確保圖片通過網(wǎng)絡(luò)移動(dòng)時(shí)沒有遺漏任何值鸥咖。
3.2 激活
神經(jīng)網(wǎng)絡(luò)的一個(gè)優(yōu)點(diǎn)是它們能夠以非線性方式學(xué)習(xí)燕鸽,能夠發(fā)現(xiàn)不太明顯的圖像中的特征。比如樹上的蘋果圖片啼辣,其中的一些在直接陽(yáng)光和在樹蔭下啊研,或者堆積在廚房灶臺(tái)上的碗里。這一切都是由于激活層鸥拧,它或多或少地突出了有價(jià)值的東西党远,包括那些直接和難以辨認(rèn)的品種。
在上文關(guān)于地下室打掃的例子中富弦,我們可以想像從每一個(gè)分開的東西中沟娱,我們都挑選了一些可能想要保留的東西。我們把這些“可能留下”的物品放在他們各自的類別的頂部腕柜,以便稍后再考慮济似。
3.3 池化
整個(gè)圖像中的所有這種“卷積”都會(huì)產(chǎn)生大量的信息,這可能很快成為一個(gè)計(jì)算噩夢(mèng)盏缤,它將會(huì)耗費(fèi)大量的計(jì)算資源砰蠢。進(jìn)入池層,就可以將其全部縮小成更一般和更易消化的形式蛾找。有很多方法可以解決這個(gè)問題娩脾,但最受歡迎的是“最大池化”,它將每個(gè)特征映射到一個(gè)摘要版本打毛,因此只有發(fā)紅柿赊,發(fā)干或彎曲的才是最顯著的特征。
就好比在車庫(kù)清潔的例子中幻枉,我們不得不從每個(gè)類別堆中選擇想要留下的東西碰声,然后賣掉或處理其他的東西。所以現(xiàn)在我們?nèi)匀话凑瘴锲返念愋头诸愇覀兊乃袞|西熬甫,但只留下我們實(shí)際想要保留的物品胰挑,其他的一切都賣了 。(順便說一句椿肩,這結(jié)束了混亂的比喻瞻颂,以幫助描述在神經(jīng)網(wǎng)絡(luò)內(nèi)進(jìn)行的過濾和縮小。)
在這一點(diǎn)上郑象,神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)師可以堆疊這種類型的后續(xù)分層配置——卷積贡这,激活,池化——并且繼續(xù)篩選過濾圖像以獲得更高級(jí)別的信息厂榛。在識(shí)別圖片中蘋果的情況下盖矫,圖像被一遍又一遍地過濾,在初始層中击奶,只能捕捉到很少的特征辈双,比如勉強(qiáng)可辨別的邊緣部分,紅色或只是一個(gè)莖的頂端柜砾。隨后湃望,更多的過濾層將顯示整個(gè)蘋果。無論如何痰驱,當(dāng)開始得出結(jié)果的時(shí)候喜爷,完全連接的層開始發(fā)揮作用。
3.4 完全連接
現(xiàn)在是開始得到答案的時(shí)候了萄唇。在完全連接的層中檩帐,每個(gè)縮小的或“池化”的特征圖都被“完全連接”到表示學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)項(xiàng)目的輸出節(jié)點(diǎn)(神經(jīng)元)。如果網(wǎng)絡(luò)的任務(wù)是學(xué)習(xí)如何發(fā)現(xiàn)貓另萤,狗湃密,豚鼠和沙鼠,那么它將有四個(gè)輸出節(jié)點(diǎn)四敞。在我們所描述的神經(jīng)網(wǎng)絡(luò)中泛源,它將只有兩個(gè)輸出節(jié)點(diǎn):一個(gè)用于“蘋果”,一個(gè)用于“橙子”忿危。
如果通過網(wǎng)絡(luò)提供的圖片是蘋果达箍,而且網(wǎng)絡(luò)已經(jīng)進(jìn)行了一些訓(xùn)練,并且隨著其預(yù)測(cè)而變得越來越好铺厨,那么這就成了一個(gè)監(jiān)測(cè)蘋果的特征圖譜缎玫。這是最終輸出節(jié)點(diǎn)開始實(shí)現(xiàn)功能的地方硬纤,反之亦然。
蘋果和橙子節(jié)點(diǎn)的工作(他們?cè)诠ぷ髦袑W(xué)到的)赃磨,基本上是為那些包含各自水果的特征的圖像進(jìn)行“投票”筝家。因此,“蘋果”節(jié)點(diǎn)認(rèn)為圖像中包含“蘋果”特征越多邻辉,它發(fā)送給這個(gè)圖的投票就越多溪王。兩個(gè)節(jié)點(diǎn)都必須對(duì)每個(gè)圖片進(jìn)行投票,無論它包含什么值骇。所以在這種情況下莹菱,“橙子”節(jié)點(diǎn)不會(huì)向任何圖片發(fā)送過多的投票,因?yàn)樗鼈儾⒉徽嬲魏巍俺茸印碧卣髦ù瘛W詈蟮牢埃l(fā)送最多票數(shù)的節(jié)點(diǎn)(在本例中為“蘋果”節(jié)點(diǎn))可以被認(rèn)為是網(wǎng)絡(luò)的“答案”,盡管它不是那么簡(jiǎn)單搅裙。
因?yàn)橥粋€(gè)網(wǎng)絡(luò)正在尋找兩個(gè)不同的東西——蘋果和橙子皱卓,所以網(wǎng)絡(luò)的最終輸出以百分比表示。在這種情況下部逮,我們假設(shè)網(wǎng)絡(luò)在訓(xùn)練中有點(diǎn)退步娜汁,所以這里的預(yù)測(cè)可能就是75%的“蘋果”,25%的“橙子”兄朋,或者如果在訓(xùn)練剛開始的時(shí)候掐禁,可能會(huì)更加不正確,比如確定它是20%的“蘋果”和80%的“橙子”颅和。
3.5 反向傳播
所以傅事,在早期階段,神經(jīng)網(wǎng)絡(luò)以百分比的形式吐出了一堆錯(cuò)誤的答案峡扩。20%的“蘋果”和80%的“橙子”的預(yù)測(cè)顯然是錯(cuò)誤的蹭越,但由于這是使用標(biāo)簽的訓(xùn)練數(shù)據(jù)進(jìn)行監(jiān)督學(xué)習(xí),所以網(wǎng)絡(luò)能夠通過稱為“反向傳播”的系統(tǒng)來找出錯(cuò)誤教届。
反向傳播將“關(guān)于離答案有多遠(yuǎn)的結(jié)果”反饋發(fā)送到上一層的節(jié)點(diǎn)响鹃。然后,該層將反饋發(fā)送到上一層案训,直到它回到卷積層進(jìn)行調(diào)整买置,以幫助每個(gè)神經(jīng)元在后續(xù)的圖像通過網(wǎng)絡(luò)時(shí)更好地識(shí)別每個(gè)級(jí)別的數(shù)據(jù)。
這個(gè)過程一直反復(fù)進(jìn)行强霎,直到神經(jīng)網(wǎng)絡(luò)以更準(zhǔn)確的方式(100%的正確預(yù)測(cè))識(shí)別圖像中的蘋果和橙子忿项。盡管許多工程師認(rèn)為85%是可以接受的。到了這個(gè)時(shí)候,神經(jīng)網(wǎng)絡(luò)就已經(jīng)準(zhǔn)備好專業(yè)地在圖片上識(shí)別蘋果了轩触。