討論技術(shù)之前,我們先來搞清楚,到底什么是人工智能(ArtificialIntelligence)?簡言之,就是用「機(jī)器」對人的意識、思維的信息過程的模擬。
當(dāng)初,「機(jī)器」并不是專指計(jì)算機(jī),也可能是某種機(jī)械裝置,因?yàn)橛?jì)算機(jī)還沒有發(fā)明出來,AI就出現(xiàn)了。另外,即使計(jì)算機(jī)也分為我們熟悉的圖靈計(jì)算機(jī)和現(xiàn)在迅猛發(fā)展著的量子計(jì)算機(jī)或者DNA計(jì)算機(jī)等。
但是AI真正繁榮發(fā)展,還是從圖靈機(jī)出現(xiàn)之后才開始的。
有的讀者可能不是計(jì)算機(jī)專業(yè)的,所以簡單介紹一下圖靈機(jī)。同時(shí)要涉及一些數(shù)學(xué)和算法的知識,稍有些晦澀,大家要有一些耐心,否則沒辦法理解哪些更復(fù)雜的AI知識和術(shù)語。
圖靈機(jī)和圖靈測試
早在1900年,大數(shù)學(xué)家希爾伯特(DavidHilbert)提出了著名的第十問題:
GivenaDiophantineequationwithanynumberofunknownquantitiesandwithrationalintegralnumericalcoefficients:Todeviseaprocessaccordingtowhichitcanbedeterminedinafinitenumberofoperationswhethertheequationissolvableinrationalintegers.(fromWikipedia)
能否能通過有限步驟(算法)來判定不定方程存在有理整數(shù)解?
圖靈(AlanTuring,計(jì)算機(jī)科學(xué)與人工智能之父),被這個(gè)問題深深的吸引了,雖然后來的數(shù)學(xué)家證明Hillbert的第10問題中提到的那個(gè)算法不存在,但是,得到了一個(gè)最好的副產(chǎn)品,那就是1936年圖靈提出了如下所示的圖靈機(jī):
TuringMachinefromWikipedia
ATuringmachineisanabstractmachinethatmanipulatessymbolsonastripoftapeaccordingtoatableofrules.(fromWikipedia)
圖靈機(jī)是指一個(gè)抽象的機(jī)器,它有一條無限長的紙帶,紙帶分成了一個(gè)一個(gè)的小方格。有一個(gè)機(jī)器頭在紙帶上移來移去。機(jī)器頭有一些固定的程序。在每個(gè)時(shí)刻,機(jī)器頭都要從當(dāng)前紙帶上讀入一個(gè)方格信息,然后結(jié)合自己的內(nèi)部狀態(tài)查找程序表,根據(jù)程序輸出信息到紙帶方格上,并轉(zhuǎn)換自己的內(nèi)部狀態(tài),www.twshmhelmet.com,然后進(jìn)行移動。
馮?諾依曼(JohnvonNeumann),庫卡機(jī)器人,和圖靈是同一時(shí)期的大數(shù)學(xué)家,1946年領(lǐng)導(dǎo)研制出了眾所周知的第一臺現(xiàn)代電子計(jì)算機(jī)ENIAC,其工作原理就是和圖靈機(jī)是一致的。
1950年,圖靈提出了著名的「圖靈測試」,用來驗(yàn)證一個(gè)機(jī)器是否達(dá)到人類的智能,具體方法就是把一個(gè)機(jī)器A和一個(gè)人B分別關(guān)到不同房間里,測試者C通過裝置(如鍵盤)和兩者對話,如果30%以上的測試者不能區(qū)分機(jī)器和人,則認(rèn)為機(jī)器A通過圖靈測試。
TuringTestfromWikipedia
大家可以看出來,從希爾伯特、圖靈到馮?諾依曼,整個(gè)人工智能AI的發(fā)展,都是大數(shù)學(xué)家們在推動前進(jìn)的。所以,如果想真正理解AI的工作原理和發(fā)展趨勢,必須了解相關(guān)的數(shù)學(xué)發(fā)展史和挑戰(zhàn)。
幾個(gè)關(guān)鍵理論和技術(shù)
1、圖靈停機(jī)問題(Haltingproblem)
圖靈機(jī)本質(zhì)上就是完成了從輸入到輸出的變換(計(jì)算),假設(shè),程序P可以把所有的變換進(jìn)行「歸納」,產(chǎn)生這些變換規(guī)則的「共性」,那么,圖靈機(jī)應(yīng)該能通過計(jì)算獲得等同于人類的智能。但是,這個(gè)假設(shè)在圖靈機(jī)上是不可計(jì)算的,這就是著名的圖靈機(jī)停機(jī)問題:
Haltingproblemistheproblemofdetermining,fromadeionofanarbitrarycomputerprogramandaninput,whethertheprogramwillfinishrunningorcontinuetorunforever.
停機(jī)問題就是判斷任意一個(gè)程序是否會在有限的時(shí)間之內(nèi)結(jié)束運(yùn)行的問題。
圖靈本人已經(jīng)在數(shù)學(xué)上證明了這個(gè)判斷算法根本不存在。也就是說,工業(yè)機(jī)器人維修,總是有些人的智能對于圖靈計(jì)算機(jī)來說,是不可解決的。通常也說,這個(gè)問題是和圖靈停機(jī)問題計(jì)算等價(jià)的。
所以,為了讓機(jī)器獲得強(qiáng)人工智能(GeneralAI),人們開始研究「超越圖靈計(jì)算」的量子計(jì)算或者DNA計(jì)算等。
不過在弱人工智能(NarrowAI)領(lǐng)域,「深度學(xué)習(xí)」這個(gè)圖靈可計(jì)算的方法還是能解決很多實(shí)際問題的。
2、深度學(xué)習(xí)(DeepLearning)
目前大家經(jīng)常聽到的谷歌大腦、百度大腦,核心技術(shù)就是用了深度學(xué)習(xí),主要指應(yīng)用了多隱含層的神經(jīng)網(wǎng)絡(luò)。在解釋深度學(xué)習(xí)之前,我們來了解一下什么是機(jī)器學(xué)習(xí),以及其和深度學(xué)習(xí)的關(guān)系。
如上圖所示,機(jī)器學(xué)習(xí)ML是人工智能AI的一個(gè)分支,深度學(xué)習(xí)DL又是機(jī)器學(xué)習(xí)ML的一個(gè)分支。
機(jī)器學(xué)習(xí)ML就是通過算法,使得機(jī)器從大量歷史數(shù)據(jù)中學(xué)習(xí)規(guī)律,提取特征值,例如語音識別里的MFCC特征、機(jī)器視覺里的SIFT特征等,再把這些特征放到各種機(jī)器學(xué)習(xí)模型中,從而對新的樣本做智能識別或?qū)ξ磥碜鲱A(yù)測。
問題來了,因?yàn)樵诮?jīng)典機(jī)器學(xué)習(xí)里,這些特征提取算法都是人們根據(jù)具體場景數(shù)據(jù)的特征人工設(shè)計(jì)出來的,所以這種方法主要靠人工經(jīng)驗(yàn)來抽取樣本的特征。
然而,深度學(xué)習(xí)DL的關(guān)鍵就是要從海量訓(xùn)練數(shù)據(jù)中自動提取特征,這也是GeoffreyHinton和YannLeCun這些大牛們的主要貢獻(xiàn)。
深度學(xué)習(xí)DL在教會計(jì)算機(jī)聽(語音識別)、看(圖像識別)、說(自然語言處理)上,都取得了很大的成績,尤其是前兩者分別比傳統(tǒng)的MFCC和SIFT等識別率提高了20%到30%以上,這個(gè)進(jìn)步是革命性的。
簡單白話一下深度學(xué)習(xí)的工作原理,一個(gè)神經(jīng)元就是一個(gè)分類器,神經(jīng)元模型就是不停的分類,最終不同特征就抱團(tuán)了,神經(jīng)網(wǎng)絡(luò)神奇的地方就是每一個(gè)組件非常簡單,但是一層一層級連(多隱含層)后,高質(zhì)量的特征值就奇妙的產(chǎn)生了。
當(dāng)然,神經(jīng)元的參數(shù)調(diào)整依然高度依賴人的經(jīng)驗(yàn),這也是為什么說深度學(xué)習(xí)DL依舊還是一個(gè)充滿Tricks(YannLeCun語)的DirtyWork(AndrewNg語)。
3、人工人工智能
目前實(shí)踐中,接地氣的人工智能方法,除了前面說的深度學(xué)習(xí)DL,還有馬上討論的人工人工智能。
2007年,一位谷歌的實(shí)習(xí)生路易斯?馮?安(LuisvonAhn)開發(fā)了一款有趣的程序ReCapture,卻無意間開創(chuàng)了一個(gè)新的人工智能研究方向:「人類計(jì)算」。
ReCapture的初衷挺簡單的,想利用人類高超的模式識別能力,自動幫谷歌公司完成大量掃描圖書的文字識別工作。于是,LuisvonAhn想到,每天都有大量的用戶在輸入驗(yàn)證碼來向機(jī)器證明自己是人而不是機(jī)器,而輸入驗(yàn)證碼事實(shí)上就是在完成文本識別。
于是,一方面是有大量的掃描的圖書中難以識別的文字需要人來識別;另一方面是由計(jì)算機(jī)生成一些扭曲的圖片讓大量的用戶做識別以表明自己的身份。那么,為什么不把兩個(gè)方面結(jié)合在一起呢?LuisvonAhn聰明地讓用戶在輸入識別碼的時(shí)候悄悄幫助谷歌完成了文字識別工作!
大家再想一下前文中我們提到的圖靈測試,在這個(gè)「人類計(jì)算」ReCapture的例子中,用人來幫助識別文字,是不是就是A和B合二為一,他們一起給C提供AI服務(wù)了。
世界就是這么神奇,人們探索人工智能AI一個(gè)多世紀(jì)了,雖然圖靈機(jī)停機(jī)問題證明了目前現(xiàn)代圖靈計(jì)算機(jī)的局限性,但是在「深度學(xué)習(xí)DL」和「人工人工智能」兩個(gè)方向上依然砥礪前行。