你的位置:首頁問題答疑軟件答疑 → alphago如何下棋

alphago如何下棋

來源:本站整理時間:2016/3/11 11:33:20作者:GML點擊: 0 評論:0

文章標簽: alphago

alphago是通過什么手段以及運算方式來下棋的呢?相信這兩天人機大戰的現場大家都或多或少的圍觀或者了解的差不多的,但是對于阿爾法圍棋怎么下的相信不少親還不清楚,下面親們就來和小編一起了解一下吧!

AlphaGo是通過兩個不同神經網絡“大腦”合作來改進下棋。這些大腦是多層神經網絡跟那些Google圖片搜索引擎識別圖片在結構上是相似的。它們從多層啟發式二維過濾器開始,去處理圍棋棋盤的定位,就像圖片分類器網絡處理圖片一樣。經過過濾,13 個完全連接的神經網絡層產生對它們看到的局面判斷。這些層能夠做分類和邏輯推理。

這些網絡通過反復訓練來檢查結果,再去校對調整參數,去讓下次執行更好。這個處理器有大量的隨機性元素,所以我們是不可能精確知道網絡是如何“思考”的,但更多的訓練后能讓它進化到更好。

第一大腦: 落子選擇器 (Move Picker)

AlphaGo的第一個神經網絡大腦是“監督學習的策略網絡(Policy Network)” ,觀察棋盤布局企圖找到最佳的下一步。事實上,它預測每一個合法下一步的最佳概率,那么最前面猜測的就是那個概率最高的。你可以理解成“落子選擇器”。

(落子選擇器是怎么看到棋盤的?數字表示最強人類選手會下在哪些地方的可能。)

團隊通過在KGS(網絡圍棋對戰平臺)上最強人類對手,百萬級的對弈落子去訓練大腦。這就是AlphaGo最像人的地方,目標是去學習那些頂尖高手的妙手。這個不是為了去下贏,而是去找一個跟人類高手同樣的下一步落子。AlphaGo落子選擇器能正確符合57%的人類高手。(不符合的不是意味著錯誤,有可能人類自己犯的失誤)

更強的落子選擇器

AlphaGo系統事實上需要兩個額外落子選擇器的大腦。一個是“強化學習的策略網絡(Policy Network)”,通過百萬級額外的模擬局來完成。你可以稱之為更強的。比起基本的訓練,只是教網絡去模仿單一人類的落子,高級的訓練會與每一個模擬棋局下到底,教網絡最可能贏的下一手。Sliver團隊通過更強的落子選擇器總結了百萬級訓練棋局,比他們之前版本又迭代了不少。

單單用這種落子選擇器就已經是強大的對手了,可以到業余棋手的水平,或者說跟之前最強的圍棋AI媲美。這里重點是這種落子選擇器不會去“讀”。它就是簡單審視從單一棋盤位置,再提出從那個位置分析出來的落子。它不會去模擬任何未來的走法。這展示了簡單的深度神經網絡學習的力量。

更快的落子選擇器

AlphaGo當然團隊沒有在這里止步。下面我會闡述是如何將閱讀能力賦予AI的。為了做到這一點,他們需要更快版本的落子選擇器大腦。越強的版本在耗時上越久-為了產生一個不錯的落子也足夠快了,但“閱讀結構”需要去檢查幾千種落子可能性才能做決定。

Silver團隊建立簡單的落子選擇器去做出“快速閱讀”的版本,他們稱之為“滾動網絡”。簡單版本是不會看整個19*19的棋盤,但會在對手之前下的和新下的棋子中考慮,觀察一個更小的窗口。去掉部分落子選擇器大腦會損失一些實力,但輕量級版本能夠比之前快1000倍,這讓“閱讀結構”成了可能。

第二大腦:棋局評估器 (Position Evaluator)

AlphaGo的第二個大腦相對于落子選擇器是回答另一個問題。不是去猜測具體下一步,它預測每一個棋手贏棋的可能,在給定棋子位置情況下。這“局面評估器”就是論文中提到的“價值網絡(Value Network)”,通過整體局面判斷來輔助落子選擇器。這個判斷僅僅是大概的,但對于閱讀速度提高很有幫助。通過分類潛在的未來局面的“好”與“壞”,AlphaGo能夠決定是否通過特殊變種去深入閱讀。如果局面評估器說這個特殊變種不行,那么AI就跳過閱讀在這一條線上的任何更多落子。

(局面評估器是怎么看這個棋盤的。深藍色表示下一步有利于贏棋的位置。)

局面評估器也通過百萬級別的棋局做訓練。Silver團隊通過 復制兩個AlphaGo的最強落子選擇器,精心挑選隨機樣本創造了這些局面。這里AI 落子選擇器在高效創建大規模數據集去訓練局面評估器是非常有價值的。這種落子選擇器讓大家去模擬繼續往下走的很多可能,從任意給定棋盤局面去猜測大致的雙方贏棋概率。而人類的棋局還不夠多恐怕難以完成這種訓練。

增加閱讀

這里做了三個版本的落子選擇大腦,加上局面評估大腦,AlphaGo可以有效去閱讀未來走法和步驟了。閱讀跟大多數圍棋AI一樣,通過蒙特卡洛樹搜索(MCTS)算法來完成。但AlphaGo 比其他AI都要聰明,能夠更加智能的猜測哪個變種去探測,需要多深去探測。

(蒙特卡洛樹搜索算法)

如果擁有無限的計算能力,MCTS可以理論上去計算最佳落子通過探索每一局的可能步驟。但未來走法的搜索空間對于圍棋來說太大了(大到比我們認知宇宙里的粒子還多),實際上AI沒有辦法探索每一個可能的變種。MCTS做法比其他AI有多好的原因是在識別有利的變種,這樣可以跳過一些不利的。

Silver團隊讓AlphaGo裝上MCTS系統的模塊,這種框架讓設計者去嵌入不同的功能去評估變種。最后馬力全開的AlphaGo系統按如下方式使用了所有這些大腦。

1. 從當前的棋盤布局,選擇哪些下一步的可能性。他們用基礎的落子選擇器大腦(他們嘗試使用更強的版本,但事實上讓AlphaGo更弱,因為這沒有讓MCTS提供更廣闊的選擇空間)。它集中在“明顯最好”的落子而不是閱讀很多,而不是再去選擇也許對后來有利的下法。

2. 對于每一個可能的落子,評估質量有兩種方式:要么用棋盤上局面評估器在落子后,要么運行更深入蒙特卡羅模擬器(滾動)去思考未來的落子,使用快速閱讀的落子選擇器去提高搜索速度。AlphaGo使用簡單參數,“混合相關系數”,將每一個猜測取權重。最大馬力的AlphaGo使用 50/50的混合比,使用局面評估器和模擬化滾動去做平衡判斷。

這篇論文包含一個隨著他們使用插件的不同,AlphaGo的能力變化和上述步驟的模擬。僅使用獨立大腦,AlphaGo跟最好的計算機圍棋AI差不多強,但當使用這些綜合手段,就可能到達職業人類選手水平。

(AlphaGo的能力變化與MCTS的插件是否使用有關。)

這篇論文還詳細講了一些工程優化:分布式計算,網絡計算機去提升MCTS速度,但這些都沒有改變基礎算法。這些算法部中分精確,部分近似。在特別情況下,AlphaGo通過更強的計算能力變的更強,但計算單元的提升率隨著性能變強而減緩。

優勢和劣勢

我認為AlphaGo在小規模戰術上會非常厲害。它知道通過很多位置和類型找到人類最好的下法,所以不會在給定小范圍的戰術條件下犯明顯錯誤。

但是,AlphaGo有個弱點在全局判斷上。它看到棋盤式通過5*5金字塔似的過濾,這樣對于集成戰術小塊變成戰略整體上帶來麻煩,同樣道理,圖片分類神經網絡往往對包含一個東西和另一個的搞不清。比如說圍棋在角落上一個定式造成一個墻或者引征,這會劇烈改變另一個角上的位置估值。

就像其他的基于MCTS的AI, AlphaGo對于需要很深入閱讀才能解決的大勢判斷上,還是麻煩重重的,比如說大龍生死劫。AlphaGo 對一些故意看起來正常的局也會失去判斷,天元開盤或者少見的定式,因為很多訓練是基于人類的棋局庫。

AlphaGo棋力如何

在圍棋人工智能程序方面,除了開源程序Pachi和Fuego,還有日本的Zen、韓國的DolBaram和法國的CrazyStone。按照以往的戰績來看,AlphaGo和Crazy Stone、Zen的戰績為495戰,494勝,而且在讓四子的情況下(讓對方先下四個子),與Crazy Stone、Zen的勝利為77%和86%。雖然還沒有AlphaGo與韓國DolBaram交手的具體戰績,但這并不妨礙AlphaGo成為現階段頂尖水平圍棋人工智能程序。

職業棋手的段位是根據比賽成績來確定的——根據勝、負、和的成績計算積分,按照積分高低將棋手分為初段—九段,而且段位會根據棋手在一定時間內的比賽成績而上升或下降。根據2014年12月31日公布的中國圍棋職業棋手等級分排名,在讓4子和5子的情況下戰勝DolBaram的中國棋手連笑(七段)排名為第12位,而作為棋壇宿將的李世石(九段)的棋力則更勝一籌。

被AlphaGo擊敗的中國職業二段棋手樊麾,在棋力上與即將和AlphaGo交手的李世石,以及戰勝DolBaram的連笑有著非常大的差距,但畢竟具備職業棋手的基本素質和水平。就現今的戰績來看,AlphaGo基本具備不低于職業初段棋手的棋力。

如果AlphaGo的棋力與韓國DolBaram的水平相當,或僅僅是略優于DolBaram,那顯然是無法戰勝李世石的。若是AlphaGo具備能在讓6子的情況下戰勝DolBaram的棋力,那么和李世石的比賽就有可能存在一定懸念了。筆者在此斗膽做一個推測,即便在和樊麾對決后的5個月后(和樊麾對決在2015年10月),AlphaGo的棋力又有所增長,但技術的進步有一個過程,就如 國際象棋程序在80年代末就有戰勝國際象棋大師的戰績,但真正打敗卡斯帕羅夫要到1997年。 也許在將來AlphaGo能與李世石一較高下,但就現階段而言,AlphaGo戰勝李世石的可能性并不高。

就現階段而言,AlphaGo戰勝李世石的可能性并不高。

職業選手如何評價 AlphaGo

為了更直觀地說明AlphaGo的棋力,筆者將職業棋手看完對局后的評價列舉如下,感謝知乎網友@專吃劉小羊 的匯總整理。

時越九段(世界冠軍,中國棋院等級分第二位):

說實話,我昨天看到這個消息的時候是不信的,雖然我現在還是不能理解電腦是怎么去學習的,但是事實擺在眼前,這5盤棋電腦下的讓我驚嘆,我認為水平已經邁入了職業的門檻。雖然和頂尖棋手還差的很遠,但按照這個進步速度,3月份的對局,我想李世石也不會贏的太輕松。

樊麾二段(法國國家隊總教練,AlphaGo的對手):

第一盤輸了之后,我這個心態就發生了很大變化,因為第一盤畢竟覺得可能比較輕松,然后發現他的官子、各方面的掌控能力很強之后,我第二盤就有點(心態)失衡。第二盤打了一個大勺之后,整個進程就不對了。圍棋畢竟不能用單純的技術來說,一是一、二是二、三是三,因為畢竟有發揮的問題。不過我確實下的也不是很好,當然了,下的時候心態也是一個最主要的原因。不管怎么樣,AlphaGo的棋力確實已經很強了。這幾盤棋呢,可以說我自己發揮不佳,但不能說不是我的真實水平,下得不好。主要是在某些方面覺得被他徹底克制住了,尤其心理負擔很重,總感覺下到最后一讀秒就會打勺子,這就導致我的棋下的很急。

柯潔九段(世界冠軍,中國棋院等級分第一位,當前的世界第一人):

果殼網: 假如是不知情地去看AlphaGo和樊麾的這五盤棋,你會猜到AlphaGo不是人類嗎?

柯潔: 完全看不出來。這五盤棋我也仔細地看了一眼,但我沒看名字,不知道誰執黑誰執白,完全看不出誰是AI。感覺就像是一個真正的人類下的棋一樣。該棄的地方也會棄,該退出的地方也會退出,非常均衡的一個棋風,真是看不出來出自程序之手。因為之前的ZEN那樣的程序,經常會莫名其妙的抽風,突然跑到一個無關緊要的地方下棋。它這個不會。它知道哪個地方重要,會在重要的地方下棋,不會突然短路。這一點是非常厲害的。

果殼網: 就電腦的表現來看,你對它布局、中盤、官子三個階段的評價,分別是什么水平?

柯潔: 按照我的評價,它的水平大概就是沖職業段之前的水平,雖然職業還到不了,但是無限接近于職業了。關于這幾個階段,我的感覺是都差不多,非常均衡,也看不出哪個地方是機器,這個很恐怖(笑)。當然這只是看了五盤棋,也看不出它的短板來,可能是因為對手發揮得太糟糕了(笑),我也看不出來具體的哪里好哪里不好。

羋昱廷九段(世界冠軍,中國棋院等級分第四位):

問: 今早的大新聞是谷歌圍棋AlphaGo5比0贏了樊麾二段,是否已看過棋譜?

羋昱廷: 知道后感覺很刺激,看棋譜覺得實力相當于沖段少年。

李喆七段(全國冠軍):

Google的圍棋AI已經具有職業水準,從棋譜初步判斷是頂尖棋手讓先-讓先倒貼目的水平,離戰勝人類還有一小段距離。但這是三個月前的棋譜……以Google機器學習堆數據的速速,今年三月對決李世石相當值得期待。

劉星七段(全國冠軍):

第一是棋形很正,第二是失誤相當的少。如果把它看作一名業余頂尖的棋手,做到這兩點,就已經具備了相當的實力。(趙守洵:星爺還沒有把它看作職業高手) (劉星:這個很難說)

AlphaGo獲勝的秘訣何在

在國際象棋上,因為王、后、車、相、馬、兵的重要性不一樣,程序員可以對不同的子設定不同的分值,比如王10分,后8分……讓計算機以判定分值的高低來指導計算機計算和落子。但圍棋的棋子沒有大小之分,使得計算機很難做出取舍,只能以窮舉法的方式進行計算。而圍棋的另一個特點是非常復雜——下棋時可能會遭遇3^361 種變化,在過去計算機性能相對有限的情況下,又沒有一個良好的算法進行輔助, 使用窮舉法計算自然導致人工智能雖然在國際象棋上戰勝了卡斯帕羅夫,但在圍棋領域一直處于業余棋手的棋力水平。

計算機眼中的國際象棋落子思路

計算機眼中的圍棋落子思路

AlphaGo戰勝樊麾的秘訣在于神經網絡系統、蒙特卡洛算法和深度學習。

以上,就是關于阿爾法圍棋的相關內容,親們可以簡單的了解一下,希望對大家了解這種算法有所幫助!

游客評論

熱門評論

最新評論

發表評論 查看所有評論(0)

(您的評論需要經過審核才能顯示) 字數: 0/500

本周熱門

找游戲 下應用

排行榜

游戲軟件破解

關于安卓網 | 聯系方式 | 發展歷程 | 下載幫助(?) | 廣告聯系 | 網站地圖 | 友情鏈接

Copyright 2011-2014 5577.com安卓網 鄂ICP備15005058號-1