摘要:今年早些時(shí)候,Google DeepMind的AlphaGo打敗了韓國的圍棋大師李世乭九段。在媒體描述DeepMind勝利的時(shí)候,將人工智能(AI)、機器學(xué)習(machine learning)和深度學(xué)習(deep learning)都用上了。這三者在A(yíng)lphaGo擊敗李世乭的過(guò)程中都起了作用,但它們說(shuō)的并不是一回事。
有人說(shuō),人工智能(AI)是未來(lái),人工智能是科幻,人工智能也是我們日常生活中的一部分。這些評價(jià)可以說(shuō)都是正確的,就看你指的是哪一種人工智能。
今年早些時(shí)候,Google DeepMind的AlphaGo打敗了韓國的圍棋大師李世乭九段。在媒體描述DeepMind勝利的時(shí)候,將人工智能(AI)、機器學(xué)習(machine learning)和深度學(xué)習(deep learning)都用上了。這三者在A(yíng)lphaGo擊敗李世乭的過(guò)程中都起了作用,但它們說(shuō)的并不是一回事。
今天我們就用最簡(jiǎn)單的方法——同心圓,可視化地展現出它們三者的關(guān)系和應用。
如上圖,人工智能是最早出現的,也是最大、最外側的同心圓;其次是機器學(xué)習,稍晚一點(diǎn);最內側,是深度學(xué)習,當今人工智能大爆炸的核心驅動(dòng)。
五十年代,人工智能曾一度被極為看好。之后,人工智能的一些較小的子集發(fā)展了起來(lái)。先是機器學(xué)習,然后是深度學(xué)習。深度學(xué)習又是機器學(xué)習的子集。深度學(xué)習造成了前所未有的巨大的影響。
| 從概念的提出到走向繁榮
1956年,幾個(gè)計算機科學(xué)家相聚在達特茅斯會(huì )議(Dartmouth Conferences),提出了“人工智能”的概念。其后,人工智能就一直縈繞于人們的腦海之中,并在科研實(shí)驗室中慢慢孵化。之后的幾十年,人工智能一直在兩極反轉,或被稱(chēng)作人類(lèi)文明耀眼未來(lái)的預言;或者被當成技術(shù)瘋子的狂想扔到垃圾堆里。坦白說(shuō),直到2012年之前,這兩種聲音還在同時(shí)存在。
過(guò)去幾年,尤其是2015年以來(lái),人工智能開(kāi)始大爆發(fā)。很大一部分是由于GPU的廣泛應用,使得并行計算變得更快、更便宜、更有效。當然,無(wú)限拓展的存儲能力和驟然爆發(fā)的數據洪流(大數據)的組合拳,也使得圖像數據、文本數據、交易數據、映射數據全面海量爆發(fā)。
讓我們慢慢梳理一下計算機科學(xué)家們是如何將人工智能從最早的一點(diǎn)點(diǎn)苗頭,發(fā)展到能夠支撐那些每天被數億用戶(hù)使用的應用的。
| 人工智能(Artificial Intelligence)——為機器賦予人的智能
早在1956年夏天那次會(huì )議,人工智能的先驅們就夢(mèng)想著(zhù)用當時(shí)剛剛出現的計算機來(lái)構造復雜的、擁有與人類(lèi)智慧同樣本質(zhì)特性的機器。這就是我們現在所說(shuō)的“強人工智能”(General AI)。這個(gè)無(wú)所不能的機器,它有著(zhù)我們所有的感知(甚至比人更多),我們所有的理性,可以像我們一樣思考。
人們在電影里也總是看到這樣的機器:友好的,像星球大戰中的C-3PO;邪惡的,如終結者。強人工智能現在還只存在于電影和科幻小說(shuō)中,原因不難理解,我們還沒(méi)法實(shí)現它們,至少目前還不行。
我們目前能實(shí)現的,一般被稱(chēng)為“弱人工智能”(Narrow AI)。弱人工智能是能夠與人一樣,甚至比人更好地執行特定任務(wù)的技術(shù)。例如,Pinterest上的圖像分類(lèi);或者Facebook的人臉識別。
這些是弱人工智能在實(shí)踐中的例子。這些技術(shù)實(shí)現的是人類(lèi)智能的一些具體的局部。但它們是如何實(shí)現的?這種智能是從何而來(lái)?這就帶我們來(lái)到同心圓的里面一層,機器學(xué)習。
| 機器學(xué)習—— 一種實(shí)現人工智能的方法
機器學(xué)習最基本的做法,是使用算法來(lái)解析數據、從中學(xué)習,然后對真實(shí)世界中的事件做出決策和預測。與傳統的為解決特定任務(wù)、硬編碼的軟件程序不同,機器學(xué)習是用大量的數據來(lái)“訓練”,通過(guò)各種算法從數據中學(xué)習如何完成任務(wù)。
機器學(xué)習直接來(lái)源于早期的人工智能領(lǐng)域。傳統算法包括決策樹(shù)學(xué)習、推導邏輯規劃、聚類(lèi)、強化學(xué)習和貝葉斯網(wǎng)絡(luò )等等。眾所周知,我們還沒(méi)有實(shí)現強人工智能。早期機器學(xué)習方法甚至都無(wú)法實(shí)現弱人工智能。
機器學(xué)習最成功的應用領(lǐng)域是計算機視覺(jué),雖然也還是需要大量的手工編碼來(lái)完成工作。人們需要手工編寫(xiě)分類(lèi)器、邊緣檢測濾波器,以便讓程序能識別物體從哪里開(kāi)始,到哪里結束;寫(xiě)形狀檢測程序來(lái)判斷檢測對象是不是有八條邊;寫(xiě)分類(lèi)器來(lái)識別字母“ST-O-P”。使用以上這些手工編寫(xiě)的分類(lèi)器,人們總算可以開(kāi)發(fā)算法來(lái)感知圖像,判斷圖像是不是一個(gè)停止標志牌。
這個(gè)結果還算不錯,但并不是那種能讓人為之一振的成功。特別是遇到云霧天,標志牌變得不是那么清晰可見(jiàn),又或者被樹(shù)遮擋一部分,算法就難以成功了。這就是為什么前一段時(shí)間,計算機視覺(jué)的性能一直無(wú)法接近到人的能力。它太僵化,太容易受環(huán)境條件的干擾。
隨著(zhù)時(shí)間的推進(jìn),學(xué)習算法的發(fā)展改變了一切。
| 深度學(xué)習——一種實(shí)現機器學(xué)習的技術(shù)
人工神經(jīng)網(wǎng)絡(luò )(Artificial Neural Networks)是早期機器學(xué)習中的一個(gè)重要的算法,歷經(jīng)數十年風(fēng)風(fēng)雨雨。神經(jīng)網(wǎng)絡(luò )的原理是受我們大腦的生理結構——互相交叉相連的神經(jīng)元啟發(fā)。但與大腦中一個(gè)神經(jīng)元可以連接一定距離內的任意神經(jīng)元不同,人工神經(jīng)網(wǎng)絡(luò )具有離散的層、連接和數據傳播的方向。
例如,我們可以把一幅圖像切分成圖像塊,輸入到神經(jīng)網(wǎng)絡(luò )的第一層。在第一層的每一個(gè)神經(jīng)元都把數據傳遞到第二層。第二層的神經(jīng)元也是完成類(lèi)似的工作,把數據傳遞到第三層,以此類(lèi)推,直到最后一層,然后生成結果。
每一個(gè)神經(jīng)元都為它的輸入分配權重,這個(gè)權重的正確與否與其執行的任務(wù)直接相關(guān)。最終的輸出由這些權重加總來(lái)決定。
我們仍以停止(Stop)標志牌為例。將一個(gè)停止標志牌圖像的所有元素都打碎,然后用神經(jīng)元進(jìn)行“檢查”:八邊形的外形、救火車(chē)般的紅顏色、鮮明突出的字母、交通標志的典型尺寸和靜止不動(dòng)運動(dòng)特性等等。神經(jīng)網(wǎng)絡(luò )的任務(wù)就是給出結論,它到底是不是一個(gè)停止標志牌。神經(jīng)網(wǎng)絡(luò )會(huì )根據所有權重,給出一個(gè)經(jīng)過(guò)深思熟慮的猜測——“概率向量”。
這個(gè)例子里,系統可能會(huì )給出這樣的結果:86%可能是一個(gè)停止標志牌;7%的可能是一個(gè)限速標志牌;5%的可能是一個(gè)風(fēng)箏掛在樹(shù)上等等。然后網(wǎng)絡(luò )結構告知神經(jīng)網(wǎng)絡(luò ),它的結論是否正確。
即使是這個(gè)例子,也算是比較超前了。直到前不久,神經(jīng)網(wǎng)絡(luò )也還是為人工智能圈所淡忘。其實(shí)在人工智能出現的早期,神經(jīng)網(wǎng)絡(luò )就已經(jīng)存在了,但神經(jīng)網(wǎng)絡(luò )對于“智能”的貢獻微乎其微。主要問(wèn)題是,即使是最基本的神經(jīng)網(wǎng)絡(luò ),也需要大量的運算。神經(jīng)網(wǎng)絡(luò )算法的運算需求難以得到滿(mǎn)足。
不過(guò),還是有一些虔誠的研究團隊,以多倫多大學(xué)的Geoffrey Hinton為代表,堅持研究,實(shí)現了以超算為目標的并行算法的運行與概念證明。但也直到GPU得到廣泛應用,這些努力才見(jiàn)到成效。
我們回過(guò)頭來(lái)看這個(gè)停止標志識別的例子。神經(jīng)網(wǎng)絡(luò )是調制、訓練出來(lái)的,時(shí)不時(shí)還是很容易出錯的。它最需要的,就是訓練。需要成百上千甚至幾百萬(wàn)張圖像來(lái)訓練,直到神經(jīng)元的輸入的權值都被調制得十分精確,無(wú)論是否有霧,晴天還是雨天,每次都能得到正確的結果。
只有這個(gè)時(shí)候,我們才可以說(shuō)神經(jīng)網(wǎng)絡(luò )成功地自學(xué)習到一個(gè)停止標志的樣子;或者在Facebook的應用里,神經(jīng)網(wǎng)絡(luò )自學(xué)習了你媽媽的臉;又或者是2012年吳恩達(Andrew Ng)教授在Google實(shí)現了神經(jīng)網(wǎng)絡(luò )學(xué)習到貓的樣子等等。
吳教授的突破在于,把這些神經(jīng)網(wǎng)絡(luò )從基礎上顯著(zhù)地增大了。層數非常多,神經(jīng)元也非常多,然后給系統輸入海量的數據,來(lái)訓練網(wǎng)絡(luò )。在吳教授這里,數據是一千萬(wàn)YouTube視頻中的圖像。吳教授為深度學(xué)習(deep learning)加入了“深度”(deep)。這里的“深度”就是說(shuō)神經(jīng)網(wǎng)絡(luò )中眾多的層。
現在,經(jīng)過(guò)深度學(xué)習訓練的圖像識別,在一些場(chǎng)景中甚至可以比人做得更好:從識別貓,到辨別血液中癌癥的早期成分,到識別核磁共振成像中的腫瘤。Google的AlphaGo先是學(xué)會(huì )了如何下圍棋,然后與它自己下棋訓練。它訓練自己神經(jīng)網(wǎng)絡(luò )的方法,就是不斷地與自己下棋,反復地下,永不停歇。
| 深度學(xué)習,給人工智能以璀璨的未來(lái)
深度學(xué)習使得機器學(xué)習能夠實(shí)現眾多的應用,并拓展了人工智能的領(lǐng)域范圍。深度學(xué)習摧枯拉朽般地實(shí)現了各種任務(wù),使得似乎所有的機器輔助功能都變?yōu)榭赡?。無(wú)人駕駛汽車(chē),預防性醫療保健,甚至是更好的電影推薦,都近在眼前,或者即將實(shí)現。
人工智能就在現在,就在明天。有了深度學(xué)習,人工智能甚至可以達到我們暢想的科幻小說(shuō)一般。你的C-3PO我拿走了,你有你的終結者就好了。