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