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