導(dǎo)語(yǔ)
最近,人工智能再一次刷屏了!
學(xué)霸君的人工智能程序Aidam以134分的成績(jī)拿下了2017年的數(shù)學(xué)高考,而且更令人吃驚的是,Aidam僅僅用不到10分鐘就完成了所有的考題。這是繼AlphaGo挑戰(zhàn)柯潔之后人工智能再一次成功吸引了大眾的眼球,所有這些觸動(dòng)我們神經(jīng)的事件都在一次次地向我們表明,人工智能的確已經(jīng)取得了突飛猛進(jìn)的發(fā)展。
接下來(lái),就讓我透過(guò)這些熱點(diǎn)事件,說(shuō)說(shuō)AI下棋與AI高考背后的人工智能技術(shù)。
Aidam是如何工作的?
首先,讓我們來(lái)看看Aidam是如何工作的。整個(gè)Aidam的工作可以分成如下三個(gè)流程:
首先,在讀題階段,Aidam需要讀取試卷上的題目。而試卷上所有題目的表述都是運(yùn)用我們?nèi)祟惖淖匀徽Z(yǔ)言,但是這對(duì)于機(jī)器來(lái)說(shuō)卻是一個(gè)很大的挑戰(zhàn),他需要能夠?qū)⒆匀徽Z(yǔ)言轉(zhuǎn)述成計(jì)算機(jī)能夠理解的符號(hào)語(yǔ)言。事實(shí)上,這是整個(gè)解題過(guò)程最大的挑戰(zhàn)。Aidam之所以還是有16分的失分,就是因?yàn)樗鼪](méi)有讀懂題意。
其次,在讀題完成之后,所有的數(shù)學(xué)題就全部變成了機(jī)器可以理解的形式符號(hào)語(yǔ)言了。接下來(lái),機(jī)器就開(kāi)始進(jìn)行它非常擅長(zhǎng)的自動(dòng)推理階段。其實(shí),自動(dòng)推理、自動(dòng)定理證明雖然在我們普通人看來(lái)是一件非常困難的事情,但是對(duì)于機(jī)器來(lái)說(shuō)卻是相對(duì)容易的。我們知道,早在1956年人工智能誕生的時(shí)候,機(jī)器已經(jīng)可以進(jìn)行數(shù)學(xué)定理的自動(dòng)證明了。當(dāng)時(shí),Newell和Simon等人編制的程序“邏輯理論家”可以自動(dòng)證明羅素的數(shù)學(xué)經(jīng)典著作《數(shù)學(xué)原理》第二章中的38條定理;而到了1958年,美籍邏輯學(xué)家王浩在IBM 704計(jì)算機(jī)上以3-5分鐘的時(shí)間證明了《數(shù)學(xué)原理》中的370條定理。可以說(shuō),自動(dòng)定理證明是人工智能發(fā)展最早的一個(gè)領(lǐng)域。那么,相比較《數(shù)學(xué)原理》中的艱澀定理,高考數(shù)學(xué)題自然也是不在話下的。
最后一個(gè)環(huán)節(jié)就是要把機(jī)器自動(dòng)推理得到的結(jié)論再次轉(zhuǎn)換成人類能夠理解的自然語(yǔ)言輸出出來(lái),它相當(dāng)于把形式語(yǔ)言再次轉(zhuǎn)化成人類的自然語(yǔ)言。這種自然語(yǔ)言的合成相對(duì)來(lái)說(shuō)也并不算特別困難,因?yàn)樾问秸Z(yǔ)言不像人類語(yǔ)言那樣具有任意性,而回答問(wèn)題的自然語(yǔ)言本身也不過(guò)是對(duì)形式語(yǔ)言進(jìn)行描述,并讓閱卷人能夠讀懂回答,因此即使輸出的話不太像我們?nèi)祟惖谋硎鲆膊⒉环恋K整個(gè)結(jié)果。
所以,總體來(lái)說(shuō),真正的難點(diǎn)就是在第一步,即把題目的自然語(yǔ)言表述轉(zhuǎn)化成機(jī)器能夠理解的形式化語(yǔ)言。學(xué)霸君是如何完成這艱難的一步的呢?
答案就在于機(jī)器學(xué)習(xí)。與AlphaGo一樣,學(xué)霸君耗費(fèi)了大量的計(jì)算資源來(lái)訓(xùn)練一個(gè)所謂的RNN人工神經(jīng)網(wǎng)絡(luò),從而完成了從自然語(yǔ)言到形式語(yǔ)言的轉(zhuǎn)化。據(jù)學(xué)霸君的CEO張凱磊說(shuō),他們用了400臺(tái)至強(qiáng)十二核64G內(nèi)存的服務(wù)器加上1000臺(tái)左右的輔助服務(wù)器,共同按成了每天30萬(wàn)至50萬(wàn)道題的訓(xùn)練,才有了今天的戰(zhàn)績(jī)。
人工智能的最新進(jìn)展
無(wú)論是AlphaGo還是人工智能高考,雖然它們都有新聞炒作的嫌疑,但從這些事件的背后,我們卻能都到有關(guān)人工智能的最新發(fā)展趨勢(shì),這就是深度學(xué)習(xí)技術(shù)與傳統(tǒng)的搜索技術(shù)的深度結(jié)合!
事實(shí)上,人工智能的發(fā)展可謂一波三折,但總體可以歸納為兩個(gè)大的發(fā)展階段,第一階段的人工智能的代表就是戰(zhàn)勝人類世界國(guó)際象棋冠軍卡斯帕羅夫的深藍(lán)(Deep Blue)。這一代的人工智能主要運(yùn)用自動(dòng)推理和搜索技術(shù),配備上超大規(guī)模的知識(shí)庫(kù)完成了令人稱奇的計(jì)算。第二代人工智能技術(shù)是以人工神經(jīng)網(wǎng)絡(luò)模型為代表。如果我們將傳統(tǒng)第一代人工智能比喻成只會(huì)填鴨式獲得知識(shí)的自動(dòng)推理器,那么人工神經(jīng)網(wǎng)絡(luò)則更像是在“素質(zhì)教育”下長(zhǎng)大的小孩。它的所有知識(shí)并不需要人類的強(qiáng)行灌輸,而是它自己學(xué)習(xí)而來(lái)。這兩種人工智能各有利弊。第一代AI雖然學(xué)習(xí)很死板,無(wú)法進(jìn)行舉一反三,但是它的所有推理和知識(shí)表述都是透明的,我們?nèi)祟惪梢宰x取并理解。但是,神經(jīng)網(wǎng)絡(luò)的知識(shí)表述方式卻是隱形的,人類很難看懂網(wǎng)絡(luò)中大量權(quán)重的含義。
而人工智能最新的進(jìn)展就是將這兩派人工智能進(jìn)行深度的耦合。這樣,新型的AI機(jī)器將會(huì)既具備超強(qiáng)的模式識(shí)別能力和舉一反三的泛化的能力;同時(shí)機(jī)器也能夠完成深度的思考和推理。
AlphaGo
例如,著名的AlphaGo就是一個(gè)典型的混血兒。在正式比賽之前,AlphaGo將主要調(diào)用其強(qiáng)大的自學(xué)習(xí)功能,通過(guò)一種“左右互搏”的方式完成自我上千萬(wàn)次的對(duì)局,從而訓(xùn)練兩個(gè)深度神經(jīng)網(wǎng)絡(luò):走棋網(wǎng)絡(luò)和估值網(wǎng)絡(luò)。
如下圖所示:
走棋網(wǎng)絡(luò)可以將任意棋局映射為每一個(gè)允許落子格點(diǎn)的落子概率;而價(jià)值網(wǎng)絡(luò)則將棋局映射為一個(gè)局勢(shì)評(píng)估數(shù)值,它們都是通過(guò)大量的訓(xùn)練而得到的。
在真正比賽的時(shí)候,AlphaGo則主要采取所謂的蒙特卡洛搜索技術(shù)來(lái)完成大量棋局的模擬與規(guī)劃,并結(jié)合走棋網(wǎng)絡(luò)和估值網(wǎng)絡(luò)的最終訓(xùn)練結(jié)果,完成最終的落子。
棋局的搜索就屬于第一代人工智能技術(shù),它的本質(zhì)就是在一個(gè)非常的棋局空間之中進(jìn)行大量的下棋模擬,從而找到一種能夠贏棋的走法。蒙特卡洛搜索則是對(duì)經(jīng)典搜索技術(shù)的擴(kuò)展,使得搜索技術(shù)可以更好地融合第二代人工智能機(jī)器學(xué)習(xí)框架。
最終的結(jié)果大家是有目共睹的。如果單純地依靠機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò),則AlphaGo雖然可以有很好的表現(xiàn),但仍然無(wú)法完成復(fù)雜局面的絞殺;如果單純地依靠搜索技術(shù),則AlphaGo就會(huì)失去所謂的大局觀,從而導(dǎo)致在局勢(shì)尚不明朗的時(shí)候不知道如何落子。
所以,AlphaGo就是一個(gè)典型的AI融合工程。
神經(jīng)圖靈機(jī)
所謂的圖靈機(jī)是一種古老而經(jīng)典的模型,它是我們計(jì)算機(jī)的理論雛形,它的樣子如下圖所示:
我們可想象一只螞蟻在一條紙袋上爬來(lái)爬去,并是不是地會(huì)把紙袋上的黑白狀態(tài)進(jìn)行涂寫改變。所有者一些都是輸入給螞蟻的指令代碼來(lái)控制的,這就是圖靈機(jī)。它是經(jīng)典人工智能的鼻祖,能夠模擬任何強(qiáng)大的計(jì)算程序。
神經(jīng)圖靈機(jī)則是谷歌工程師們發(fā)明的一種裝置,它將經(jīng)典的圖靈機(jī)模型改造成了“軟化而柔性”的版本,每一個(gè)部件(例如讀寫紙袋)都可以用一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)控制。這樣的好處是我們可以對(duì)其進(jìn)行訓(xùn)練,因此這套東西又稱為“可微分計(jì)算機(jī)”,意思是我們可以用反向傳播算法來(lái)訓(xùn)練里面的人工神經(jīng)網(wǎng)絡(luò),它的樣子如下圖所示:
這種神經(jīng)圖靈機(jī)的功能非常強(qiáng)大,它不僅可以像經(jīng)典的LSTM神經(jīng)網(wǎng)絡(luò)一樣完成各式各樣的序列生成、翻譯等任務(wù),還可以進(jìn)行復(fù)雜問(wèn)題的規(guī)劃,甚至自己編程序。
例如,下圖就展示了用神經(jīng)圖靈機(jī)如何完成在倫敦地鐵地圖上進(jìn)行路徑規(guī)劃任務(wù)。
神經(jīng)網(wǎng)絡(luò)優(yōu)化神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)雖然很強(qiáng)大,但是它往往具有一堆不好調(diào)的超參數(shù),比如一共有多少層,每層有多少個(gè)神經(jīng)元等等。那么,能否用人工智能的方式自動(dòng)搜索這些參數(shù)呢?我們知道,搜索是經(jīng)典人工智能的一種非常重要的任務(wù),它可以在一個(gè)很大的參數(shù)空間中找到我們想要的參數(shù)。Google的工程師們探索了一種途徑可以利用強(qiáng)化學(xué)習(xí)算法來(lái)實(shí)現(xiàn)對(duì)神經(jīng)網(wǎng)絡(luò)超參數(shù)空間的搜索。
如圖所示結(jié)構(gòu),其基本構(gòu)思是用強(qiáng)化學(xué)習(xí)的方法訓(xùn)練一個(gè)控制器網(wǎng)絡(luò),它是一個(gè)RNN,可以用于生成子網(wǎng)絡(luò)的超參數(shù)(例如卷積神經(jīng)網(wǎng)絡(luò)中每一個(gè)層中的神經(jīng)單元個(gè)數(shù)),然后讓子網(wǎng)絡(luò)在這個(gè)超參數(shù)下去完成一個(gè)圖像分類的任務(wù),從而得到精確度R。然后利用這個(gè)R再來(lái)訓(xùn)練控制器。也就是說(shuō),我們將控制器作為主體,將子網(wǎng)絡(luò)當(dāng)作是環(huán)境,子網(wǎng)絡(luò)的表現(xiàn)(精度R)作為回報(bào)反饋給主體,從而讓主體設(shè)計(jì)出越來(lái)越好的超參數(shù)。
利用這種強(qiáng)化學(xué)習(xí)的模式我們可以更加有效地對(duì)超參數(shù)空間進(jìn)行搜索,從而設(shè)計(jì)出遠(yuǎn)高于現(xiàn)有網(wǎng)絡(luò)表現(xiàn)的超參數(shù)集合。
柔性規(guī)劃
規(guī)劃又是一個(gè)經(jīng)典的人工智能任務(wù),它可以指導(dǎo)機(jī)器人完成復(fù)雜的序列化的任務(wù)。在經(jīng)典人工智能中,我們是通過(guò)搜索來(lái)完成規(guī)劃策略的制定的,然而它的弊端是規(guī)劃出來(lái)的策略很難具有應(yīng)付環(huán)境多樣性的靈活性。于是,人們尋求一種能夠用神經(jīng)網(wǎng)絡(luò)來(lái)改造自動(dòng)規(guī)劃的方案。
如上圖,這是NIPS2006會(huì)議的最佳論文工作。UC伯克利的一個(gè)人工智能團(tuán)隊(duì)用卷積神經(jīng)網(wǎng)絡(luò)完成了“柔性規(guī)劃”,并具有非常好的泛化能力。他們的基本想法是將經(jīng)典的強(qiáng)化學(xué)習(xí)算法中的價(jià)值迭代算法類比為一個(gè)多層次的卷積神經(jīng)網(wǎng)絡(luò),從而用深層的網(wǎng)絡(luò)對(duì)應(yīng)了多步價(jià)值迭代的能力。經(jīng)過(guò)訓(xùn)練之后,這個(gè)價(jià)值迭代網(wǎng)絡(luò)不僅能夠指導(dǎo)著主體完成動(dòng)態(tài)規(guī)劃,而且還能夠具備非常強(qiáng)大的規(guī)劃能力,這要比單純依賴CNN的算法更好。
總之,現(xiàn)在的人工智能技術(shù)發(fā)展的前沿就是將經(jīng)典的人工智能和最新的深度學(xué)習(xí)、人工神經(jīng)網(wǎng)絡(luò)進(jìn)行完美的融合。這種融合不僅可以讓人工智能程序能夠進(jìn)行比較“深”的思考能力,而且又可以具備一定的柔性和適應(yīng)能力,這是我們通往強(qiáng)人工智能的一個(gè)必經(jīng)階段。
相關(guān)論文與課程
關(guān)于自然語(yǔ)言處理如何提取深度語(yǔ)義信息,請(qǐng)看徐飛玉的課程:自然語(yǔ)言理解及其應(yīng)用
http://campus.swarma.org/vdetail=10279?src=3
關(guān)于神經(jīng)網(wǎng)絡(luò)優(yōu)化神經(jīng)網(wǎng)絡(luò),請(qǐng)參看Google Brain的這篇論文:
Barret Zoph, Quoc V. Le: NEURAL ARCHITECTURE SEARCH WITHREINFORCEMENT LEARNING,https://arxiv.org/abs/1611.01578
關(guān)于價(jià)值迭代網(wǎng)絡(luò),請(qǐng)參看這篇論文:
Aviv Tamar, Yi Wu, Garrett Thomas, Sergey Levine, and Pieter Abbeel : Value Iteration Networks,https://arxiv.org/abs/1602.02867
也可參看張江的課程:價(jià)值迭代網(wǎng)絡(luò)
http://campus.swarma.org/gcou=10292?src=3
關(guān)于神經(jīng)圖靈模型,請(qǐng)參看Deep Mind團(tuán)隊(duì)的這篇論文:
Alex Graves1*, Greg Wayne et al.:?Hybrid computing using a neural network with dynamic external memory, Nature, Vol 538, 471, 2016
也可參看甄慧玲的解讀視頻:記憶與記憶網(wǎng)絡(luò)
http://campus.swarma.org/gcou=10067?src=3
關(guān)于AlphaGo的原理,請(qǐng)參看Deep Mind的論文:
David Silver1*, Aja Huang et al: Mastering the game of Go with deep neural networks and tree search, Nature, Vol 529, 484, 2016
也可參看張江的解讀:揭秘AlphaGo
http://campus.swarma.org/gcou=10283?src=3?
集智QQ群|292641157
搜索公眾號(hào):集智俱樂(lè)部
加入“沒(méi)有圍墻的研究所”
讓蘋果砸得更猛烈些吧!