機器與人對弈圍棋,無法獲勝的瓶頸是什麼?
個人感覺下圍棋的過程會涉及一些宏觀的分析,有時候是憑藉感覺。這會不會是所謂的瓶頸?機器學習這部分的過程是怎樣的?
理論上來說,一切都可以計算出來。所謂的「厚勢」,是我們人類無法將其量化的一種表達。我們沒法證明這些內容(包括藝術)在未來仍然不能被量化。
所謂 "感覺" 等形勢判斷其實就是高層的評價函數, 現在只是運算能力的不夠只能打贏絕大部分的人類, 等更優化的演算法和硬體出來後可能就能打贏所有人類了...
現在除了 Monte Carlo Tree Search 還有 Deep Learning 的做法
Teaching Deep Convolutional Neural Networks to Play Go
http://arxiv.org/abs/1412.3409Move Evaluation in Go Using Deep Convolutional Neural Networks
http://arxiv.org/abs/1412.6564學習的樣本不夠, 就機器互搏, 用遺傳演算法來產生新樣本...
2016-2 更新: 現在機器圍棋已經超過人類啦,什麼感覺呀大局觀呀都只是加層神經網路而已圍棋的計算難度比象棋和國際象棋高得多,現在科技達不到,就算達到了也會成本太高
從數學上講,手數有限的棋類必然有某一方理論必勝,當然,只要計算機夠強大,就可以計算出來。也就是說,很可能人類再厲害也下不過電腦。
不過到那時,圍棋可能就像井字棋一樣無聊了。
所謂感覺,不過是一種行棋的經驗,類似於陰陽五行這類,若能完全看透一個棋,那麼這些就都是多餘的。形勢判斷難以用一個函數表達,這使得機器不能像人一樣思考下一步的走法(人可以想「我這麼走得到厚勢可以滿意」,電腦會想「厚勢是什麼?好吃嗎」)。
另外,以UCT演算法為代表的蒙卡方法先天不足,不一定能走出正確的棋來,而且即使用蒙卡演算法把概率算準了,也還是無法避免這一問題。這是因為走某步棋之後贏棋概率高不表示這步棋是對的,比如
有字母的方塊表示黑棋走棋前的狀態,圓圈表示白棋走棋前的狀態,箭頭表示下一步棋的可能走法。最後的黑方塊表示黑棋贏,白方塊表示白棋贏。在A狀態下輪黑棋走,有B、C兩種應法,用UCT等演算法計算B、C的贏棋概率,可以發現走B的贏棋概率是2/3,走C的贏棋概率是1/2,於是電腦會認為黑棋應該走B。然而如果黑棋走B的話白棋只要走F黑就輸了,相反如果走C的話白棋只能走G,黑棋只要接著走H就贏了。這個例子表明UCT演算法在可落子的地方不多時可能會犯傻,這意味著UCT演算法在碰到官子或者死活的時候棋力會變低,這一現象不因電腦性能提高而改變。事實上跟crazystone等軟體下棋的確可以感覺到這一點。
當然,也許可以在碰到官子和死活的時候換一種演算法,但這又繞回了開始的問題:沒有形式判斷函數,電腦就不知道什麼時候該換演算法。實際上圍棋的AI已經超越了人類。目前最先進的人工智慧使用的演算法是基於概率論的考量,也就是不再從邏輯方面來尋找最佳的落子位置了,而是通過模擬演算,來獲取各個落點的勝率,最後選擇最優解。當然,這種演算法需要建立在極強的計算能力下的,在普通計算機上,這種AI會看起來非常愚蠢,但隨著計算能力提升,AI的棋力呈幾何級數上升。
2016年3月9日,谷歌AlphaGo擊敗李世石。這個問題本身就已經不成立了。
此題終結了:主要還是演算法的問題
瓶頸在於韓國,中國,日本都並非數學和演算法方面的頂尖國家,而歐洲人的圍棋水平很差。
真讓一個數學厲害,圍棋也厲害的國家去搞,機器早就能下贏人了1月28日《自然》雜誌的封面文章介紹,谷歌DeepMind公司設計的AlphaGo在沒有任何讓子的情況下以5:0 完勝歐洲冠軍、職業圍棋二段樊麾。 DeepMind團隊表示,Alpha Go的關鍵在於使用人工智慧中的深度神經網路。在Alpha Go中有兩種不同的神經網路,第一種叫做政策網路(policy network),用來預測下一步;第二種叫做價值網路(value network),用來預測棋盤上不同的分布會帶來什麼不同的結果。 DeepMind先用已有的圍棋技巧來訓練AI,稱為監督學習(supervised learning),然後讓AI和自己對弈,通過深度學習讓其掌握如何贏得圍棋比賽的技巧。 英國圍棋協會財務主管,也是樊麾與AlphaGo比賽的裁判托比·曼寧(Toby Manning)目睹了整個對弈過程。在接受國外媒體採訪時,他表示:「你甚至很難區分哪一方是人類,哪一方是計算機。在之前的很多軟體中,計算機下的很多步可能都很理性,但突然就會變得毫無頭緒,而在這場比賽中,幾乎看不到計算機與人類的區別。一個區別是時間的分配方式:樊麾下每一步所花的時間都要比AlphaGo更久,而AlphaGo的棋路也不像人類棋手那樣富有進攻性。它會非常冷靜地落子,而非積極地侵略領地或提子。」 人工智慧的發展可能比我們想像的要快,也許我們能看得到機器比人更聰明的那天。
演算法牛b的人圍棋不牛b,圍棋牛b的人演算法不牛b唄,沒什麼高端的,洗洗睡吧。
計算機很難估算每個搜索分支的價值。
機器擅長處理大量的數據,但是對於「形狀」沒有「感覺」
現在圍棋軟體走上了蒙特卡洛演算法的的邪路,覺得既然機器不可能解決這種問題,那索性就不解決,放棄圍棋的邏輯,通過統計下一步的勝率來迫近最優解。這種軟體,根本不是在下棋,贏了也沒意義。是無法保證獲勝吧。
世界上第一個下棋的ai(不記得是什麼棋了,好像是跳棋)的作者自己不會下那種棋,應該說是不怎麼會下,然後他做了個程序,把自己爆出翔。原理就跟前面一些答案說的一樣,擼棋譜,找勝率最高的下一步。擼過的棋譜越多,勝率也就越高。不能保證獲勝,是因為變化太多,棋譜太多,目前擼不完而已。理論上這是有限的,必然有一天計算機擼完了某個數量的棋譜以後,就天下無敵了。順便各種棋都攻破了,用同樣的辦法花時間花錢來干這個,沒準兒都水不了paper,所以只好坐等有閑錢的公司了。這哪裡沒有意義了?AI本來就不是在思考,用盡各種辦法只是為了看起來像人一樣就行了。幾乎沒有不可逾越的瓶頸。
試想以下幾個條件:
1,科研經費足夠;
2,AI設計者同時具有極高計算機水平以及圍棋棋力,並且有強烈的意願和時間來開發AI;
3,設計者有足夠的演算法領悟力,將自己的圍棋思維力和電腦的計算力整合為一體。
誰還敢說電腦不行?
人腦VS電腦:
人能口算四位數乘法已經是天才
二十年前的計算機算個十位數乘法也不在話下
人思考一個圍棋的分支需要幾分鐘甚至幾小時
計算機只需要毫秒級別
這哪是一個量級的?
目前人能戰勝電腦是因為人的思考更有目地性,電腦的」思考「更加隨機和無章法,缺乏對」勢「的判斷等等原因;但隨著圍棋演算法發展,該解決的總有解決的那一天。
不過也不用覺得可悲,象棋特級大師早就玩不過電腦了,他們照樣可以享受象棋的快樂。
因為沒那個閑錢!
因為沒那個閑錢!因為沒那個閑錢!造一個圍棋機器人和造一個國際象棋機器人本質區別能有多大。。。可是我們已經知道了機器人能在棋類運動中完爆我們為啥還要在浪費人力物力造這東西啊,科學家是抖M么。。。更何況美國人又不下圍棋,中國人技術可能達不到。。。所以自然沒有人造這玩意老外不下圍棋
圍棋每一步有幾百種(&<361)走法,增加了遍歷每一步對弈情況的計算開銷。例如中國象棋,每步變化都不過百,考慮自己和對手各一步遍歷不過上千個結果。而圍棋里一個來回的遍歷要超出10萬。另一方面,圍棋吃子規則的複雜也增加了計算難度。被吃的棋子還能重新回到棋盤,影響局勢的評分,簡直變態。此外還有一點是局勢的評分困難。圍棋的最終局面並不要求『將死』或者棋盤填滿,這給評分帶來很大的難度。雖然點目有規則可循,但即使點目程序沒有差錯,仍然需要大量的訓練數據支持複雜的結果變化。
記得原來IBM的Deep Blue超級計算機贏了國際象棋的世界冠軍,用的就是機器學習。
然而國際象棋和圍棋大大的不一樣啊,像深藍計算機學習了100000盤棋局就能上去幹了,圍棋可不行,100000盤可不夠學的。
所以說瓶頸可能是計算速度,還有學習的盤數吧推薦閱讀:
※如果在智豬博弈中,長期扮演著大豬的角色,該如何擺脫困局?
※懂博弈論的人通常會擅長哪些遊戲?
※三個人用兩個遊戲手柄,輪流玩公平嗎?
※如何用博弈論來分析運營商的套餐?