神經網路可能終將在圍棋上打敗人類

麻省理工科技創業 發表於 19分鐘前

(Alulull/編譯)在幾乎一切領域裡,人類都面臨著被計算機迎頭趕超的局面。譬如,機器視覺專家最近開發出了一種新的演算法,使得計算機獲得了超越人類的面孔識別能力。類似演算法用於物體識別上,也在逐步縮小機器與人類的差距。而人類國際象棋選手在很久以前就放棄了打敗計算機的努力——計算機第一次擊敗頂尖人類是在1997年,而人類最後一次擊敗頂尖計算機是在2006年。

但是,有一個領域仍舊由人類獨領風騷,那就是一項古老的中國棋類競技——圍棋。計算機始終沒能掌握這門技藝,目前最好的演算法只能達到一個優秀的業餘棋手的水平,頂級的人類棋手能輕易地將其打敗。

如今,這一局面似乎有望被打破。蘇格蘭愛丁堡大學的克里斯托弗·克拉克(Christopher Clark)和阿莫斯·司多奇(Amos Storkey)利用了一種機器學習技術,來計算下一步棋的走向,而正是這種技術幫助面孔識別演算法實現了革新性的進步。結果表明,人類繼續稱霸圍棋賽場的希望恐怕十分渺茫了。

圍棋需要兩名棋手,以及一個由19X19條網格線劃分而成的棋盤。棋手輪流將黑色或白色的棋子下在交叉點上,目標是在遊戲結束時比對手佔據更多的領地。當己方棋子將對方棋子包圍時,棋手就能將該棋子移走。

專家認為,計算機之所以在圍棋上表現不佳,原因有二。首先,圍棋每一步的可能下法非常之多。棋手在起手時就有19X19=361種落子選擇,而在比賽的任意階段,通常都有數以百計的可能下法。與之形成對比的是,國際象棋的可能下法通常只有50種左右。

第二個問題在於,計算機很難分辨當下棋局的優勢方和弱勢方。對國際象棋來說,只需要把目前棋盤上剩餘棋子的價值總和算出來,就能獲得關於棋手形勢的可靠指標。但這種方法對圍棋來是行不通的。「計算雙方棋手的棋子數目很難告訴我們,現在到底誰的贏面較大。」克拉克和司多奇說。

目前頂尖的圍棋演算法往往用蠻力法來解決這個問題,那就是對每一步可能的下法模擬出隨後的整場比賽,並用不同的下法重複多次。如果在絕大多數模擬棋局中電腦能夠獲勝,那麼就判斷這一步棋為好棋。

很顯然,這項任務非常耗時,且計算量極大。即便如此,計算機還是不能打敗人類圍棋高手,因為人往往只需一眼就能看出當下棋局的形勢。

許多專家相信,人類掌握圍棋的秘訣在於模式識別——通過棋子組成的圖形形狀來判斷優勢和弱點,而不是預測幾步棋後的走向。

也正是因為這個原因,模式識別演算法的最新進展有可能會大大改進計算機的表現。新演算法利用大型的圖片資料庫,訓練深度卷積神經網路(deep convolutional neural networks)來識別物體和面孔,其精確性如今已能與人類媲美。因此,可以預想,同樣的演算法用在圍棋棋局自動評估上,也能發揮巨大的作用。

克拉克和司多奇所做的工作恰恰如此。兩人訓練深度卷積神經網路解決的問題是:給出一張兩名圍棋高手對局途中的棋盤照片,有沒有可能預測出下一步?

他們的解決方案就是讓神經網路對一個巨大的圍棋棋局資料庫進行學習,從而找到下一步棋的下法。克拉克和司多奇使用了超過16萬個高手棋局,生成了共計1650萬個棋子位置及其下一步的資料庫。他們利用大約1500萬個這種位置-步法的信息對來訓練一個8層卷積神經網路,令其識別高手們棋路。這一過程共耗時數天。

接著,他們用資料庫中剩餘的部分棋局信息對該神經網路進行了測試。換句話說,他們向神經網路輸入了源自某一棋局的棋盤位置,並讓它選擇下一步的下法。克拉克和司多奇說,經過訓練的神經網路的預測準確性達到了44%,「顯著超過了目前其他的最佳演算法。」

這種新演算法非常有趣,尤其是因為它在進行決策時沒有利用任何先前的著子信息,也沒有對將來的棋子位置進行評估。

神經網路的訓練結束後,克拉克和司多奇讓它和兩個目前最好的圍棋演算法進行了對弈。第一個對手叫做GNU Go,棋力相當於一名中等水平的業餘棋手,等級大約為6-8級。(圍棋的業餘等級為逆序,初學者為30-20級,最高為1級,再往上則改用段位。)

第二個對手則是目前的頂級圍棋軟體之一,名叫Fuego 1.1,等級大約為5-4級。人類棋手通常需要多年時間學習才能達到這一水平。

對弈的結果對於人類起手來說無疑是一個凶兆。面對GNU Go的200次棋局中,克拉克和司多奇的神經網路的勝率高達90%。換句話說,只需幾天的學習訓練,神經網路就能穩定地擊敗6-8級的人類棋手。

在Fuego 1.1面前,它表現欠佳,只贏了10%的棋局。儘管如此,這依然是重大進步。「面對這個對手,哪怕只能贏過幾局,也說明(我們的神經網路)的能力達到了相當高的水平。」克拉克和司多奇如是說。

很明顯,前景是樂觀的。「儘管目前神經網路使用的是『不往前看』的策略,計算時間也遠遠小於對手,但它們仍然能夠超越GNU Go,而且還能從Fuego那兒拿下幾局。」他們說。

進步的空間也很容易預見,比如,將這種演算法與其他考慮過往步數並會向前預測的演算法結合起來。克拉克和司多奇的一個提議即是,將他們的卷積神經網路與傳統的演算法同步運行,前者能夠幫助後者減小需要探索的步數。

克拉克和司多奇並沒有說他們的演算法能夠打敗世界上最好的圍棋選手。但毫無疑問的是,圍棋選手也終將向計算機霸主低頭,這一切只是時間的問題。(編輯:Ent)

參考文獻:

  1. arxiv.org/abs/1412.3409: Teaching Deep Convolutional Neural Networks to Play Go

編譯來源 technologyreview.com, Why Neural Networks Look Set to Thrash the Best Human Go Players for the First Time
推薦閱讀:

綠豆實驗:人類意志創造實相
風水對人類的影響_史地師_95442
輻射如何影響人類健康?
人類畫猴的時候,其實是在畫自己
難以置信!家裡養只老虎是這種感覺,實在太挑戰人類極限了

TAG:人類 | 神經網路 | 神經 | 圍棋 | 網路 |