AlphaGo 下棋的策略套路與人類策略有哪些相似嗎?
本題已收錄至知乎圓桌 ? 對弈人工智慧,更多關於李世石對戰人工智慧的解讀歡迎關注討論。
其實Alphago的策略套路和人的策略套路本質是非常相似的,不同的是估值系統更為科學,aja huang自己的棋力也十分強大,這個因素是十分重要的。最近我發現有一部分人對Alphago的理解簡直跑到玄學範疇裡面去了,讓我大惑不解一個這麼正直的演算法程序,怎麼就這樣變成一輛小火車……
繼續推薦田博士的這一篇:AlphaGo的分析 - 遠東軼事 - 知乎專欄14年起我一直業餘時間經營知乎圍棋群,期間來來往往上千個零基礎為主各行各業的成年人群體,感覺總有點話想說,簡單總結一下好了。我想把不同階段的棋友問題做個概括,然後講講我看到的Alphago的優勢之處,歡迎評論區拍磚。【零基礎群體的思維問題】
如果說成年人學棋進步極慢最大的瓶頸是什麼,就是想問題進行決策先入為主的太多,貪心不足而猶猶豫豫,到頭來很多時候不知道在想什麼。如果讓我根據一般入門成人的思維路線畫個圖,那麼很可能是下面這個樣子:如圖,充滿了奇怪而淺度的分支判斷,不但目標不明確,判斷標準也很混亂如果你真要追究一下每個分支是啥可能是這樣的:這麼下真的好嗎,啊我好想這麼下可我沒有勇氣。書里好像有這樣的變化,但是局面好像不太一樣。對手好像是想這麼欺負我但我應該反擊么?不該反擊么?上次這麼下被罵了,這次也好想這麼下……
豬肉燉粉條好吃……啊,時間過得好快。————————邪惡的分界線——————————————如上,很多變化因為個人的情感因素不去深入計算,每個分支由於進行的很淺都沒什麼實際意義。相比一下,兒童時期一張白紙,老師說什麼就潛移默化去聚精會神的記下來,雖然不一定比成人理解力強,有時候結果反而要好一些。這時候會問出這樣的問題:記定式有用么,感覺好枯燥?我一般回答做乘法之前記九九乘法表有用么.這好像打架之前練習招式一樣,可以不用招式但是當一個招式可以迅速擊潰對方的時候你可以立刻反應過來。做死活題有用么?基本功就像打架練臂力,腰力,腕力,你技巧高是可以戰勝一些空有蠻力的人,但是……說到這裡該懂了吧。基本功永遠是最重要的。[零基礎群體問題小結]
棋如其人在這個階段體現的非常充分,很多人會卡在莫名其妙的地方踟躕不前,可能只是別人認同不足或者自己對知識的吸收零碎破爛。這時候一個樸素踏實的學習思路會讓一個人迅速突破初學的瓶頸進入下一階段。看到這裡我想看看讀者的情況,請問下圖白棋先走,如何吃掉被標記了兩個黃點的黑棋?答案很簡單。如下圖:留兩個思考題:【段位及以上的情況】
基礎知識打過之後,圍棋不同階段的不同特性會吸引不同的人走向不同的道路,但是思維通路圖比起零基礎會有顯著地不同,舉例來說,喜歡計算秉性偏急一些的會在自己感到收貨不夠多或者意圖被打亂的情況下把局面變複雜。喜歡判斷性子偏悠長的會在大部分時間爭取棋局安全運轉在中後盤慢慢尋找對手的小漏洞。如圖,思維路徑會慢慢變成這樣,主次分明,但是目的明確,有的地方分支算的很深但是會通過一些方法在計算到底之前排除掉。當然,排除掉的不一定是不好的變化,有的妙手隱藏的十分隱蔽,可能反覆看幾次都不會覺得有棋。
有一句話說得非常好,圍棋主要的樂趣在於怎麼從別人的百般阻撓中尋找一條可以實現自己意圖的方式。但是水平還不夠高的棋友出現的最大問題是你的意圖全照你想的實現,你會發現你反而輸多了,所以之前有人問我,圍棋是不是只有計算而沒有境界之分,我嗤之以鼻。只會計算算什麼本事,你算得多,判斷的根本不對,路都選錯了能贏么。{順便說說優化}最近剛開始學習python,看到各種演算法優化,感覺和人腦的思路優化是有一點像的,同樣執行一件事,有的思維方式又麻煩犯錯的機會又多,重新審視復盤的時候還會覺得這一串思維表達式太繁雜一時半會找不出最關鍵的問題。職業高手計算的時候計算極快,極遠又極深。有多快呢?有個地方,我發現我自己的群里大家都沒有去關注,這句
每次搜索到葉子節點時,沒有立即展開葉子節點,而是等到訪問次數到達一定數目(40)才展開,這樣避免產生太多的分支,分散搜索的注意力,也能節省GPU的寶貴資源」,
這裡和人的思考路徑是有相似性的,包括快速落子系統,避免戰鬥強調大局的下法,通過一定方法減少無意義的計算,這一點是相通的。
{再說不同}我們大家這兩盤棋看的很清楚,Alphago最大的特點是開局非常有「創新意識」,下出來的棋之前的棋譜庫里基本沒有,這是為什麼?還是因為機器是隨機抽樣,大量運算,計算機的眼裡會根據團隊給他的估值系統給全盤所有的點做一個評分,可以說真正做到了胸懷全局,而且是十分數字化系統化的大局觀。如之前所述,人的判斷,很多知識來自己於老師,對手,書籍,長時間的訓練之後對很多點是不會去想的,因為對一些奇怪的或者理論上一般會認為比較俗的變化進行研究,人達不到一個非常系統的評斷勝率的級別。這是一個非常具有積極意義的地方,我看到很多棋友剛開始學棋,很多棋看著有效,但是會因為比較「粗俗」等理由不去下,或者僅僅因為對方的棋目的過於直接或者選點過於罕見而鄙視,相信這種風氣在有了Alphago以後可以有更科學的改變。(歡迎大家各種意見各種拍磚)
知道為什麼以前國際象棋電腦戰勝人類時候,大家沒有這麼多感觸嗎?因為國象軟體絕大多數都是開局背譜+後半深度計算的模式。這種模式就是大家所熟悉的算到死的模式,也是所謂的機械式方法,一般來說不會被認可為"有智能"。
但是這次狗狗不太一樣,谷歌團隊並沒有給他編寫一種演算法,而是給他編寫了一種學習方法,讓他反覆學習棋譜,並自己和自己反覆下。
這種模式很可怕,因為這也是你我學習的方法,而且,從現在阿爾法狗的演算法來說,他下某一步的過程,從外部來看是黑盒的。
也就是說,很像一個人學習一個事情以後,做出反應時候的樣子。你知道他學了些什麼,也最後看到了他的反應,但是你並不知道他一個完整的思考過程。
從這個角度來說,阿爾法狗真的是擁有了自我學習和思考的一個初步能力。AlphaGo的策略人是看不懂的,就算是開發它的工程師也是看不懂的,這才是AI,因為它進行了自我學習。
對於下棋來說,計算機的思維和人是極為類似的,下的每一步都是尋找最優解(取勝的路徑)的過程,棋盤固定,唯一的變數是落子位置,約束條件是圍棋規則。圍棋之所以難,是因為有解的範圍太大了,純蠻力搜索搞不定(如果每步棋給「足夠長」的時間,是能算出最優解的),這時其他的演算法和預先輸入的棋譜就有用了--可以保證在規定時間內算出一步,並且總體上是向最優解收斂的。不斷的輸入訓練能幫助識別棋局的制勝概率,提高收斂速度;棋盤上的子越多也能幫助縮小可解範圍,進而提高收斂速度。收斂速度越快,李世石就越艱難。人類下棋,憑的是計算+經驗+直覺,計算已經輸了,經驗也輸了,直覺其實跟計算機演算法的數學收斂很像,「雖不是很確定,但應該是最好的選擇吧」。
相對於人類而言,阿爾法下棋的基本原則是比較單一的,有一種楞頭小子但卻是武林高手的感覺……
他的招數一定是來源於人的,但是它能泛化提升,而且學習太多棋譜之後,就沒有人的一些慣性步驟·····
有一些相似之處,不過不是完全相似。
我對圍棋也不是很了解,只是這幾天看了一下古力老師的解說,這裡隨便說說。棋手是如何下棋的?
棋手下棋的時候,首先是思考哪些地方可以走子,然後是對走子進行評估。也就是棋手對於棋的判斷,是有兩種。一種是判斷哪些地方可以走子。一種是對於局面的判斷,即判斷走子之後的局面。判斷局勢時一般都會用最小-最大值方法,即不是直接判斷走子之後下一步的局勢,會考慮雙方繼續走幾手時,在對方走出最強變化的情況下,我方的局勢如何。通常所謂的神之一招,一般是指在走子判斷之外的巧妙手。AlphaGo下棋的思路也是一樣的。
AG有兩個系統,一個系統用來判斷哪些地方可以走子,一個系統用來判斷走子之後的局勢。AG也用了最小-最大值方法來判斷局面。兩者的區別,一是在於對於局勢的判斷方法上。
人類棋手對於局面的判斷基本上是三種不同的方法。
一種是定式、習慣走法等,這種是基於過去的經驗、個人喜好來選擇的。一種是根據走子位置與附近子的位置來進行的判斷,即所謂的厚薄,這種應該是基於過去的經驗來的。還有一種是算目數。這種是在局部進行的。人類棋手對於局部走棋時,目標其實是局部的目數最大化。也就是人類棋手的一般思路是:將棋局分解為多個部分,然後在每一個部分追求目數最大化。而AG對於局勢的判斷是通過神經網路訓練出的一個勝負值,也就是棋感,或者叫大局觀。
舉一個例子來說明。黑棋在中間有一塊10目的棋,現在白棋叫殺,假設有AB兩處可走,A處與這10目無關,走後這10目被提,B處是做活這10目。
人類棋手執黑會怎麼想?走A虧10目,同時帶來A處的某些收益。走B保住這10目。這是人的想法。AG執黑怎麼想?AG會假設自己走了A,算一下走後當前局勢自己的勝率。再假設自己走了B,算一下勝率。二是對於走子位置的判斷也有區別。
人類棋手的判斷其實是有目標的,即戰術。比如打劫、攻擊、做活。特別是在中後盤時,目的性非常明顯。這樣就帶來了一個先手的概念。
而AG的判斷是基於神經網路訓練的。也就是AG其實是不理解人類棋手說的這些戰術目的的,純粹是憑的直覺、棋感。舉個例子就很清楚了。聽到過這樣的解說,AG走的棋,有的棋看似局部虧損,其實是為了簡化變化,這樣AG算起來更加清楚。個人認為這樣的理解不是很準確,是人給機器的走棋加上了人的理解,人總結出的戰術。其實機器就是算了一下勝率而已。我多麼希望第五局是阿法狗對AlphaGo!!!
應該不一樣。機器沒有情感,不會有情緒波動。人的狀態時好時壞,這點人類還是吃虧的。
機器的優勢在於學習,其學習能力在於數萬棋譜都對其神經網路有影響。他的每一步都源於人!也就是說李世石其實是在跟數百萬民間高手下棋!這一步也許是一個人的下法,下一步就換了另一個人的套路!計算機的作用只是選擇最優且最多人選擇的著棋方法而已!所以說到本質,計算機還是不會思考的。
該怎麼理解相似?這個問題我先提出來:是人類覺得策略套路一樣的就是相似,還是說機器跟人類思考的方式相似?沒興趣可跳過分割線之間的內容直接看我回答。--------------------------------------------------------------------------------------------------------------------------------------------首先,得了解圖靈測試。我想直接簡單的說,就是一個人把問題塞進一個房間裡面,他不知道房間裡面是什麼,但是他每次都能得到正確的答案。這樣他就沒辦法辨別房間裡面到底是個機器還是人,這個房間裡面的「機器」就通過了圖靈測試。也可以說具有了人工智慧。假設1,這房間裡面其實並不是機器,只是一群科學家,他們與塞問題的人連語言都不一樣。然後科學家們迅速查字典,把塞進來的問題翻譯成自己能理解的語言,然後用人類的思維回答他。這個算是相似的思考方式了吧?假設2,房間裡面是一堆機器,它存儲了世界上所有可能的問題。這樣,塞進來的問題總能匹配到一個正確的答案,或者粗略一點找到極其相似的問題,再把匹配到的答案輸出來。這個算是相似的思考方式么?雖然以上兩種假設得到的答案都是與人類相似的,但是假設2的解題策略好像與人類並不是相似。但是,再反過來一想,如果有一個人他能記住書上所有的東西,不管什麼問題他都能在書上找到答案來回答,只是搜索相似問題,而不是像正常人一樣用邏輯來思考回答問題,他到底是機器還是人呢?關於圖靈測試的相關資料:圖靈測試,測的到底是什麼? (果殼網)圖靈測試_百度百科(講的其實挺詳細的)有沒有可能存在故意不通過圖靈測試的 AI? - 計算機 (另一個挺腦洞的問題)--------------------------------------------------------------------------------------------------------------------------------------------說了一大圈,其實也沒有個最終的答案。但我認為AlphaGo更多的還是一種Deep learning 的搜索策略。Deep learning就是通過以前訓練過的數據得到解決問題的答案,而不是像人類一樣去思考。你沒辦法讓它回答你它為什麼這麼做,因為它也不懂。
完全不同!
在AlphaGo之前,Google也開發了利用深度學習進行簡單紅白機遊戲對戰的人工智慧技術。深度學習技術驗證了這樣大數據輸入直接預測一個複雜問題是可行的,之後很多問題的解決其實都是利用了這個先驗,包括圍棋技術。AlphaGo的圍棋AI實際上是在圍棋這個特定問題上用深度學習的思路建模,並通過Google強大的計算資源不斷進行訓練。在IBM「深藍」時期,人工智慧實際上還是人總結規律,用演算法實現規律,用高性能計算硬體來進行計算的時期。「深藍」在象棋上的演算法,主要依靠強大的計算能力窮舉所有路數來選擇最佳策略,再加上對一些明顯選擇的判斷來縮小窮舉範圍。而象棋棋盤較小,可能的策略較少,所以當時的人工智慧利用這種暴力的做法是可以戰勝人類的。但是面對圍棋這種可能的策略非常多的情況,基於類似窮舉方案的演算法就無能為力了
事實上AlphaGo不知道圍棋的原理,它下棋的思路不是計算一步兩步,而是10步、20步或者更多。判定的方法是輸入預算的棋盤,計算勝率。只要給它輸入足夠多的資料庫(人類下過的棋盤),它只是選取了其中的一部分進行比對,哪些步驟贏面大它就怎麼下。但是對於圍棋這種計算量非常巨大,變化量極大的智力運動,它需要的數據是正常人無法理解大的數量級--兆兆級。不僅是大量的資料庫,它在開賽前還進行了大量的「訓練」。人工智慧可怕的地方是能自我學習!基於深度學習的人工智慧,已經完全摒棄了之前基於規則的方案,通過給定的輸入輸出,新的學習方案可以自動學習得到給定輸出需要經過的運算。在大量訓練數據的指導下,性能不斷提升。AlphaGo 自我對弈的訓練量多大3000萬盤,每一盤均堪稱高手對決。諸多人類高手窮其一生都無法企及的訓練量,AlphaGo在短短几年的時間內就可以完成。對於人類來說,計算是大腦偏弱的項目,對於計算機而言毫無優勢可言。人類對於計算機唯一的優勢是想像力。所以,計算機對壘李世乭的結局是可預見性的。5-0是意料之內,4-1是運氣,3-2則是人類真正的遺憾。阿法狗下圍棋的演算法應該有361的階乘納悶多吧
alphago沒那麼蠢,它應該會讓人類贏的。
私以為最可怕的事情是機器有了思考的能力,只要它們不斷在追求最優的選擇難免最後會得出反抗人類才是最優的選擇
阿法狗的本質不就是搜索——計算——搜索嗎?在資料庫里搜索,然後算出最有利的一手,貌似是這樣?
機器本身是不會下棋的,更談不到策略。這種所謂的人工智慧的實質不過是讓一個一流的棋手和古今中外一百萬個二流棋手對弈。所以除非是這個一流棋手對圍棋遊戲玩出了一個完全不同的本質上的變化,否則完全沒有可能贏過ai。當然如果是那樣的話他下的也就不是圍棋了。所以,ai只有規則而沒有策略。
柯潔對李世石戰績可以讓我們對他表示信心的,況且智能也一定有思維障區,所以我看好柯潔對手人工智慧贏!
推薦閱讀:
※圍棋的技巧能運用在什麼地方?
※圍棋中,餘味是什麼?
※為什麼日本圍棋衰落了?
※如今的圍棋棋風是不是不如六超時代有趣和好看了?
※如何評價古力?棋力如何?