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