來自Google的圍棋AlphaGo

2021-07-09 19:30:28 字數 1914 閱讀 2095

圍棋起源於三千多年前的中國,孔丘曰:「飽食終日,無所用心,難矣哉!不有博弈者乎,為之猶賢乎已。」意思是:「整天吃飽了飯,什麼都不想,真太難了!不是有下棋(指圍棋)的嗎?下下棋,總比什麼都不做要好。」」。目前,全球共有四千萬人在玩圍棋。玩圍棋的步法主要依靠直覺與構想,因為它精緻而又有極高的智力要求,幾個世紀以來一直在啟發人類的想像力。今天, 我們很高興的宣布,我們構建的alpha go系統通過機器學習掌握了這門古老的技藝。

儘管有著極簡的遊戲規則,但實際上圍棋卻是一種極為複雜的遊戲。計算起來,圍棋共有1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,

000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,

000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,

000,000,000,000種可能的走法——這個數字大於宇宙中原子的數量,比西洋棋還多乙個10的100 次方。 出於這種複雜性,計算機很難掌握圍棋技藝,也使圍棋在人工智慧研究者眼中成為吸引力巨大的挑戰——這些研究者利用遊戲作為試驗場,開發巧妙而靈活的演算法法,幫助計算機使用類似於人類大腦的思維方式解決問題。

2023年計算機掌握了第一款遊戲——井字棋;接下來是2023年的西洋跳棋;2023年,「深藍」贏得了西洋棋比賽。人工智慧並不侷限於桌面遊戲:2023年,ibm的watson 在智力遊戲jeopardy中勇奪第一,2023年,我們設計的演算法通過原始畫素輸入就學會了數十種雅達利(atari)遊戲。 但是截止目前,圍棋仍然是橫亙在人工智慧研究者面前的難題:計算機的圍棋水平只能達到業餘選手的程度。 傳統的人工智慧方法是將所有可能的走法構建成一棵搜尋樹 ,但這種方法對圍棋並不適用。所以在征服圍棋的過程中,我們決定另闢蹊徑。我們構建了alphago的系統,將高階搜尋樹與深度神經網路結合在一起。這些神經網路通過12個處理層傳遞對棋盤的描述,這些處理層包含數百萬個類似於神經的連線點。其中乙個神經網路「策略網路」(policy network)選擇下一步走法,另乙個神經網路「價值網路」(value network)**比賽勝利者。

我們如何做到這一切? 我們用人類圍棋高手的三千萬步圍棋走法訓練神經網路,直至神經網路**人類走法的準確率達到57%。不過我們的目標是擊敗最優秀的人類棋手,而不止是模仿他們。為了做到這一點,alphago學習自行研究新戰略,在它的神經網路之間執行了數千局圍棋,利用反覆試驗調整連線點,這個流程也稱為鞏固學習(reinforcement learning)。當然,這些都需要大量計算能力,因此我們廣泛使用google雲平台,完成了大量研究工作。 完成訓練後,我們要對alphago進行測試。首先,我們在alphago和其他頂級計算機圍棋程式之間舉行了比賽,結果alphago在全部500場比賽中只輸了一場。下一步就是邀請歐洲圍棋三料冠軍fan hui來到我們的倫敦辦公室參加挑戰賽,樊麾是一位優秀專業棋手,自12歲起就全身心投入於圍棋事業。在去年十月的閉門比賽中,alphago取得了5:0的勝利,這也是電腦程式首次擊敗專業圍棋選手。 接下來要做什麼? 三月,alphago將面臨終極挑戰:在首爾與傳奇棋手李世石展開一場五局鏖戰,李世石是過去十年來的世界頂級圍棋選手。 我們非常高興能夠征服圍棋,克服了人工智慧歷史上最困難的挑戰之一。不過對於我們來說,這項成就最重要的意義在於,alphago不僅是遵循人工規則的「專家」系統,它還通過通用「機器學習」自行掌握如何贏得圍棋比賽的規則。遊戲是迅速而高效地開發及測試人工智慧演算法的完美平台,不過最終,我們要運用這些技術解決現實社會的重要問題。我們所採用的方法具有通用性,因此我們希望有一天這些方法也能用來解決當今世界面臨的最嚴峻、最緊迫的問題——從氣候建模到複雜的災難分析,期待著繼續運用這些技術解決更多問題!

來自 曠野的召喚

4 來自 Google 的奇技

google 用了很多自己實現的技巧 工具使 c 更加健壯,我們使用 c 的方式可能和你在其它地方見到的有所不同.tip如果確實需要使用智慧型指標的話,scoped ptr 完全可以勝任.你應該只在非常特定的情況下使用 std tr1 shared ptr 例如 stl 容器中的物件.任何情況下都不...

來自 Google 的 R 語言編碼風格指南

r 語言是一門主要用於統計計算和繪圖的高階程式語言。這份 r 語言編碼風格指南旨在讓我們的 r 更容易閱讀 分享和檢查。以下規則系與 google 的 r 使用者群體協同設計而成。概要 r編碼風格約定 一 表示和命名 二 語法 三 組織 概要 r語言使用規則 四 語言 五 例外 六 結語 七 參考文...

來自 Google 的 R 語言編碼風格指南

r語言是一門主要用於統計計算和繪圖的高階程式語言.這份 r 語言編碼風格指南旨在讓我們的 r 更容易閱讀 分享和檢查.以下規則系與 google 的 r 使用者群體協同設計而成.檔案命名 以.r 大寫 結尾 識別符號命名 variable.name,functionname,kconstantnam...