網路城邦
上一篇 回創作列表 下一篇  字體:
到勝利之路乃由一連串的可能最好步鋪成
2017/06/03 20:01:12瀏覽859|回應0|推薦4

到勝利之路乃由一連串的可能最好步鋪成
沈政男 

失敗為成功之母?到成功之路由失敗鋪成?錯了,失敗只能通往失敗,每一個小失敗累積起來,結果就是大失敗。

每一步都必須下在最可能獲勝的位置,才能確保棋局的勝利到來,這是電腦圍棋程式AlphaGo擊敗世界圍棋排名第一的中國棋士柯潔,所帶給人們的啟示。

只是,每一步都下出最好步,談何容易?在比較不複雜的棋類,比如西洋棋,可以用電腦預先算出對方接下來的可能每一步,然後先下手為強下出最好步,但在圍棋辦不到,因為棋局太複雜。

多複雜?下完一盤圍棋,從第一步到最後一步的可能組合,比宇宙所有原子加起來的數目還多。因此,必須想出更聰明,或者說取巧的辦法,來找出最好步。

終於,在2006年左右,有人把「蒙地卡羅樹搜法」運用在計算圍棋的最好步。AlphaGo能夠擊敗人類棋王,第一個技術上的突破就來自於「蒙地卡羅樹搜法」。

到蒙地卡羅去爬樹找圍棋秘笈?「蒙地卡羅樹搜法」是把落子以後可能衍生的棋局變化,這樣那樣一步步推演下去,一直推演到最後結果,於是由上而下畫成了一組樹狀圖。

「蒙地卡羅樹搜法」有四個步驟,選擇、擴張、模擬與回推,然後完成一步棋以後,周而復始繼續找下一個最好步。其中的關鍵步驟是選擇與模擬。

好,當柯潔下了第一步棋以後,AlphaGo要怎麼接招?棋盤上有三百多個位置可選,AlphaGo要選哪一個?「蒙地卡羅樹搜法」說,那就以每一個位置為起點,隨機亂下到棋局結束,看哪個位置的獲勝機率高。

隨機亂下是「蒙地卡羅樹搜法」的所謂審局函數,也就是用機率來模擬可能勝負,這樣的方法可以簡化計算。但,準嗎?有一定的準確度,不信的話,你可用井字棋來模擬看看。

然而這樣的模擬,一來工程浩大,再者準確度並不理想,於是後來又加上策略函數,也就是選擇棋步的方法。怎麼選?這問題就像在賭場玩吃角子老虎,如果有三台機器,但你只有一定時間與金錢,如何選出獲勝率最高的那一台?2009年有數學家想出了方法,後來便被應用在蒙地卡羅樹搜法。

至此,AlphaGo接下來要做的,便是在棋盤上的三百多個位置裡,選出一些可能獲勝的位置,至於其他兩、三百個位置就可以不予理會。怎麼選?「深度學習」這時進場了。AlphaGo的第二個利器便是「深度學習」,以前叫神經網絡,但搞不出名堂,被冷落一陣子以後剃頭改名果真改運,在圍棋上找到了新天地。簡單講,運用在AlphaGo的「深度學習」類似Google的圖片辨認技術,但複雜許多,它必須學會辨認棋譜。AlphaGo便藉由這樣的辨識功能,進到圍棋的藏經閣裡,把千萬張歷史棋譜通通讀過,將本因坊秀策、吳清源等圍棋天才的下法,全部記在腦子裡,為己所用。

於是,柯潔下了第一步棋以後,AlphaGo所想的是,如果是吳清源,接下來會怎麼下?其他人又是如何?然後選出十幾步可能走法做為候選棋步。除了模仿著名棋手以外,AlphaGo也透過自我對弈,左手打右手,讓自己的選步策略更有勝算。

假設AlphaGo現在有四個候選棋步可以考慮,那麼接下來透過隨機亂下它發現,其中一步會輸,其他三步可能會贏,於是可以先把會輸的那一步刪去。剩下的三步,再繼續各自衍生出可能的幾個棋步,然後隨機亂下,看看誰累計的勝率高。比如三步之中,有兩步贏了五次,而有一步贏了一次,那麼就可剔除後者。接著,剩下的兩步再繼續往下衍生可能棋步,然後繼續模擬隨機亂下,一直到找出勝率最高的那一步為止。其結果便是AlphaGo在這一步棋的最後選擇,也是最有可能獲勝的一步。

每一步都下出最好步,累積起來就是最後的勝利。所以說柯潔為什麼會輸?他如果要贏,必須每一步的勝率都比AlphaGo高,但人腦不可能在短時間計算那麼多可能棋步,只能憑直覺,而直覺是一種相對不精確的深度學習。

AlphaGo給人的另一個啟示是,要決定下一步怎麼走,無須窮究所有可能後果,只須考慮足以影響結果的關鍵性選擇便可。還有,向已成功者學習,永遠是最便捷的學習方式。此外,大數法則可以透露很多訊息,要多多參考類似走法的可能結果,以避免走冤枉路。

 

( 不分類不分類 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=thegloberover&aid=103808344