繼谷歌宣布人工智能項目AlphaGo實現(xiàn)突破性研究——計算機程序首次擊敗專業(yè)棋手之后, 谷歌DeepMind今日公布了將與過去十年最佳圍棋手李世石之間的終極挑戰(zhàn)的詳細情況。3月9日至3月15日,AlphaGo將在韓國首爾與李世石進行5場挑戰(zhàn)賽。比賽完全平等,獲勝者將得到一百萬美元獎金。目前比賽情況是,AlphaGo在3月9日和10日的兩場李世石人機大戰(zhàn)的比賽中都取得了勝利,如果這一句繼續(xù)奪魁,那么在這場人機世紀大戰(zhàn)中,人類是慘敗。〔贿^,五場比賽還是會繼續(xù)進行。西西小編會給您持續(xù)跟蹤中。
李世石人機大戰(zhàn)第三局直播中:
李世石人機大戰(zhàn)第三局直播地址:
http://tech.sina.com.cn/d/AlphaGo/index.shtml
在兩場比賽中,AlphaGo表現(xiàn)出了那些智能?
一、到底什么是深度學習?
我認為深度學習相對于傳統(tǒng)的機器學習,最大的特點就是不需要(太多)的feature engineering。
在機器學習流行之前,都是基于規(guī)則的系統(tǒng),因此做語音的需要了解語音學,做自然語言處理(NLP)的需要很多語言學知識,做深藍需要很多國際象棋大師。而到后來統(tǒng)計方法成為主流之后,領域知識就不再那么重要,但是我們還是需要一些領域知識或者經(jīng)驗來提取合適的feature,feature的好壞往往決定了機器學習算法的成敗。
對于NLP來說,feature還相對比較好提取,因為語言本身就是高度的抽象;而對于Speech或者Image來說,我們?nèi)祟愖约阂埠茈y描述我們是怎么提取feature的。比如我們識別一只貓,我們隱隱約約覺得貓有兩個眼睛一個鼻子有個長尾巴,而且它們之間有一定的空間約束關系,比如兩種眼睛到鼻子的距離可能差不多。但怎么用像素來定義”眼睛“呢?如果仔細想一下就會發(fā)現(xiàn)很難。當然我們有很多特征提取的方法,比如提取邊緣輪廓等等。
但是人類學習似乎不需要這么復雜,我們只要給幾張貓的照片給人看,他就能學習到什么是貓。人似乎能自動“學習”出feature來,你給他看了幾張貓的照片,然后問題貓有什么特征,他可能會隱隱預約的告訴你貓有什么特征,甚至是貓?zhí)赜械奶卣,這些特征豹子或者老虎沒有。
深度學習為什么最近這么火,其中一個重要的原因就是不需要(太多)提取feature。
從機器學習的使用者來說,我們以前做的大部分事情是feature engineering,然后調(diào)一些參數(shù),一般是為了防止過擬合。而有了深度學習之后,我們似乎什么也不用干!給它標注足夠多的訓練數(shù)據(jù)就行了。
具體的應用比如語音識別,圖像識別,自然語言處理,這是比較成熟的一些領域。在一些其它領域,比如殺毒,天氣預測。只要需要用機器建模,特征比較難以描述,而且又有足夠多標注數(shù)據(jù)的地方都可以試一試深度學習。
二、同樣是與人類對戰(zhàn),AlphaGo和深藍的區(qū)別
深藍的主要技術有兩個:alpha-beta搜索和估值模型。搜索,大家應該都明白,機器學習就是更加領域?qū)<?國際象棋大師)提取的特征(比如棋子的價值,位置的作用,棋子的保護和威脅關系等等),然后建立一個復雜的模型來判斷局面(不太清楚是否用了機器學習)。
而AlphaGo的核心技術是:MCTS搜索和CNN神經(jīng)網(wǎng)絡。CNN使得機器可以學習人類的“棋感”,從而在開局和中局不落下風,然后殘局憑借強大的計算能力戰(zhàn)勝人類。
因為深度神經(jīng)網(wǎng)絡非;穑蠹铱赡苡X得它是AlphaGo能贏的關鍵,其實我覺得不是這樣。
根據(jù)Tian yuandong(田淵棟)和AlphaGo的論文,如果不做任何搜索,只是根據(jù)“棋感”(其實就是估值函數(shù)),CNN最好能達到KGS 3d的水平,我估計也就業(yè)余1段的水平。而MCTS算法在沒有Value Network的情況下在9 x 9的棋盤上能戰(zhàn)勝人類高手,其實這也間接印證了AlphaGo在殘局的實力是搜索(計算)起重要作用。原來基于搜索的軟件在開局和中局就崩盤或者虧太多了,所以就不能體現(xiàn)搜索的優(yōu)勢了。另外AlphaGo使用了Value Network,這保證即使搜索有一些小問題,從人類學來的棋感也能保證不至于偏差太大。
AlphaGo的特點是:開局和中局依靠人類的棋盤學習棋感(可以理解為背棋盤,不過比死記硬背好一點,有一定的泛化能力),然后殘局的計算能力碾壓人類,就好像以前的李昌鎬,前面看不出什么好來,但官子你就是下不過他,沒辦法,不服不行。
三、在比賽前,很多人都判斷AlphaGo會輸,這種判斷偏差在哪里?
之前我們都太多關注AlphaGo的神經(jīng)網(wǎng)絡部分,其實它贏棋的關鍵可能在于殘局的計算上。我們沒有想到。
四、整個比賽的輸贏對人工智能研究意味著什么?
作為對人工智能感興趣的工程師,我既感到高興又不免有些傷感。
高興是因為我們可以“創(chuàng)造”出比我們自己“聰明”的機器,傷感就像教拳擊的師傅看到徒弟的水平已然超過自己,不免有“老了,不中用了”的感嘆。但這是大勢所趨,不可避免,人工智能會在很多領域超過人類。
五、首場比賽,AlphaGo為什么在后半程越走越慢?
這是計算機用時的策略問題,因為根據(jù)前面的分析,后面的殘局才是AlphaGo贏棋的關鍵,所以它把更多的時間放在殘局是合理的策略。
六、如果計算性能夠強大,AlphaGo能否直接得出最優(yōu)解?
從數(shù)學上來講,圍棋有個最優(yōu)的走法,也就是用mini-max搜索到游戲結束時的一條最優(yōu)路徑(也許有多條,但至少有一條),然后就能知道最優(yōu)的情況下黑棋勝白棋多少目。
我認為AlphaGo離最優(yōu)解其實還是差得老遠的,尤其是開局和中局。其實這也間接的說明人類在開局上其實也離最優(yōu)解差得太遠。人類幾千年也下不了多少盤棋(而且水平越差的人的棋對整個人類圍棋沒有太大幫助)。我們認為一個開局是否好,只能根據(jù)水平相似的高手下這個布局的勝率來推測它的好壞。但如果我們在最后50步的時候誤差就很大,那么往前傳播時積累的誤差就更大了,我們可能經(jīng)常忽略了一個看起來不好的走法,而這個走法可能就是“支持”這個開局的關鍵。
當然AlphaGo的殘局比人厲害,那么就可以通過自己對弈來學習,然后往前傳播誤差。但是由于這個問題本質(zhì)是NP的,即使它用了MCTS的方法來避免“明顯不好”的走法。但是由于圍棋的復雜性,可能某個“看起來不好”的走法可能恰恰是一個關鍵的勝負手呢?另外根據(jù)之前的分析,即使每步都能99%的準確,那么往前推100步準確的可能性也基本是0了。
因此如果人類不能解決NP問題,不能提出計算能力超過圖靈機的計算模型,那么人類制造的機器也是不太可能解決這個問題的(當然這只是我的直覺,不知道能不能數(shù)學上證明)。
不過即使這樣,能制造和人類一樣,雖然在質(zhì)上不能超越人類,但在量上能超越人類的機器也是很有意義的。
七、AlphaGo在學習什么,是如何學習的?
AlphaGo是通過人類高手的對局作為訓練數(shù)據(jù)來訓練的,也就是給定一個局面,用人類高手的下一步棋做完這個局面的最優(yōu)走法。通過大量的這樣的數(shù)據(jù),使用CNN自動學習出類似人類的”棋感“。當然雖然說CNN不需要太多的feature,其實AlphaGo也是用了一些圍棋的知識的,比如征子。我雖然比較業(yè)余,也知道征子能否成功要看那六線上是否有對手的接應,另外更棋的高低也有關系,即使有接應,如果棋太低,可能也能征子成功,這個就要計算了。
另外,AlphaGo也通過自己和自己對弈的強化學習來改進它”棋感“。我個人覺得為什么要強化學習的原因可能是:之前那些棋譜學習出來的是很多人的”棋感“,通過強化學習,AlphaGo能選擇更適合自己的“棋感”。
這樣的”棋感“更能適應它的后階段的計算能力。就好像如果我下棋計算能力不行,我就走一些比較穩(wěn)的開局。我計算力超強,我就和你搏殺,走復雜的變化。
AlphaGo一晚上的學習大概能達到什么樣的效果?
這個很難說,我個人覺得他們應該不會再訓練新的模型,因為即使是深度神經(jīng)網(wǎng)絡,調(diào)參也是很tricky的事情。而且他們現(xiàn)在領先,應該不會冒險更新模型。
八、除了圍棋,AlphaGo還可以用在什么領域?
AlphaGo本身的技術是MCTS和CNN,MCTS其實是屬于強化學習這個領域的。
深度學習可以用在很多領域,前面說過了,只要這個領域需要構建一個模型來預測,而且有大量標注的訓練數(shù)據(jù)。
強化學習是非常關鍵,我覺得強化學習才是人類社會學習的過程,通過行為改變世界,然后從反饋中學習。雖然人類也有一些監(jiān)督學習,比如學校的教育,把前人的結論作為訓練數(shù)據(jù)。但大部分的創(chuàng)新(獲取新知識或者修正舊知識)都是靠強化學習。之前學校學到的可以認為是先驗知識,但還是要自己的行為和嘗試。紙上得來終覺淺,絕知此事要躬行。
比如我們要讓機器人在火星生存,火星的環(huán)境我們是不太清楚的,只能根據(jù)地球的數(shù)據(jù)訓練一個基本的先驗的模型。到了火星之后機器人就必須能通過強化學習來學習新的知識來適應新的環(huán)境。