close

真能挑戰世界圍棋冠軍 AlphaGo如何下棋

北京時間3月9日中午12:00,在韓國首爾上演瞭電腦與人腦的大戰,由Google AlphaGo圍棋程序對陣韓國圍棋9段冠軍李世石,經過不到4個小時的對弈,AlphaGo戰勝李世石,取得瞭圍棋比賽的第一局,舉世震驚。作為人工智能挑戰人腦的第二次進擊,AlphaGo相對超算“深藍”又有哪些不同呢?未來人工智能會不會全面取代人類呢?

AlphaGo是由Google DeepMind(英國,2014年被Google 4億美元收購)開發的人工智能程序。DeepMind致力於開發人工智能程序,不同於早起的人工智能單純依賴計算機強大的計算性能,AlphaGo程序開發瞭計算機學習和系統神經科學方法,通過KGS(Kiseido Go Server)與世界各地的圍棋選手競技過程中不斷成長,在去年10月份的時候就已經戰勝瞭歐洲圍棋冠軍樊麾,並於近日正式開始挑戰世界冠軍李世石,第一局已經告捷。

AlphaGo如何下圍棋?

自從計算機在國際象棋上挑戰人類成功之後,所有人的目光就聚焦在瞭圍棋這項古老的東方棋類。然而對計算機來說,圍棋似乎是個比國際象棋更“難”的東西。1985年企業傢應昌期先生懸賞一百萬美金尋找能夠打敗人類職業棋手的計算機,一直未果。進入21世紀之後,研究者們開始探索一套被稱為“蒙特卡洛樹搜索”的全新思路,以日本的ZEN(天頂圍棋)和法國的CrazyStone為代表的一流圍棋程序沿著“蒙特卡洛方法”的思路不斷改進,而去年正式揭開面紗的AlphaGo更是將人工智能圍棋博弈帶向新的高度,繼去年10月份攻克歐洲圍棋冠軍樊麾,昨日又在韓國首爾首戰告捷戰勝世界圍棋冠軍李世石。

如果說對棋局盤面的靜態評估好比人類棋手的“感覺”過程,那麼動態評估就好比人類棋手的“推理”過程。在靜態評估中機器得益於人類專傢的很多幫助,而動態評估的部分是人工智能大顯身手的地方瞭。“動態評估”試圖對從當前盤面出發“有可能”出現的大量局面變化所導致的結果進行預判,並綜合分析所有這些可能性,對當前盤面進行一次評估。這也是人類在動態環境中做決策時經常使用的策略,也就是希望通過“看得更遠”來提前發覺潛在的危險或機會。代替AlphaGo落子的助手正在和李世石對弈

基於一套給定規則,任意給定的棋局盤面會有一個“合法走法”的集合,其中每個走法都會把棋局引向一個新盤面,而這個新盤面又會有自己的另一個合法走法集合,每個走法又對應一個新的盤面。如果假設每個盤面都有種合法走法,那麼從當前盤面走一步之後一共有N種可能“到達”的盤面,兩步之後有N^2種可能盤面,三步之後有N^3種可能……如此展開下去,從最初的給定盤面經過M步之後可能到達N^M種不同的盤面,它們就是在“未來N步內所有可能的局面變化”。 從給定盤面開始的局勢變化的復雜度是隨考慮的步數呈指數級增長的,這意味著從原則上不存在準確計算盤面的最優結果的有效方法。不過這對於對局雙方來說未必是個壞消息——雖然AlphaGo無法計算最優解,對手也同樣無法計算。事實上一個遊戲之所以成為遊戲,恰恰就是因為對局雙方都相信對手不具備完美決策的能力,而自己要做的隻是比對手“錯得更少一些”。

另一方面對於AlphaGo來說,“不可能對局勢變化的所有可能性進行有效計算”意味著想做得比對手更好需要從原理上解決兩個關鍵問題: (1)決定一個“篩選策略”,從所有從當前盤面出發有可能導致的變化中選擇一部分作為“我們實際考慮的那些局面變化”;(2)決定一個“匯總策略”,把所 有實際考慮的變化的靜態評估結果綜合起來,對當前盤面的勝率完成評估。

人工智能的核心--深度卷積神經網絡

深度卷積神經網絡是人工智能的核心基礎,諸如現在主流的人工智能的應用人臉識別、圖像分類、天氣預報等。19年前,超級計算機“深藍”擊敗國際象棋冠軍卡斯帕羅夫的新聞相信很多人耳熟能詳,雖然當時的“深藍”從狹義角度來看並算不上是人工智能,其強大之處就是使用瞭超級計算機作為運算支撐使用遍歷方式最終打敗人類,但是相對於國際象棋,圍棋擁有361(640x960)個點復雜度遠超國際象棋,如果使用遍歷其運算量和數據存儲量現階段甚至很長一段時間超級計算機也無法滿足這樣的需求。 所以AlphaGo轉而使用瞭蒙特卡洛搜索樹算法,雞精禮盒是對一類隨機算法的特性的概括。例如使用蒙特卡洛搜索樹算法從100個蘋果籃子中取出最大的蘋果,每次閉眼拿1個,挑出最大的。於是隨機拿1個,再隨機拿1個跟它比,留下大的,再隨機拿1個……每拿一次,留下的蘋果都至少不比上次的小。拿的次數越多,挑出的蘋果就越大,除非拿100次,否則無法肯定挑出瞭最大的。這個挑蘋果的算法,蒙特卡羅算法是盡量找好的,但不保證是最好的。

對於圍棋而言,由於遍歷數據的龐大,隻能通過部分遍歷的方式尋找最優下棋的方式,所以會出現獲得真正的結果之前,無法知道目前得到的結果是不是真正的結果。

AlphaGo的兩大法寶--價值網絡和策略網絡

作為人工智能的核心,AlphaGo更是使用瞭兩個大腦,也就是Value Networks(價值網絡)和Policy Networks(策略網絡)兩個計算網絡,使用Value Networks來評估大量的選點,而以Policy Networks來選擇落子,並且開發瞭一種新式算法來結合蒙特卡洛樹算法和以上兩個神經網絡。 在Google DeepMind工作的黃世傑,2015年在ICLR發表瞭一篇關於“深度神經網絡”的論文,指出從網上對戰平臺KGS可以獲取人類圍棋選手對弈的棋局,並且匯總這些棋局,得到瞭最初的3000萬個樣本,也就是棋譜,這奠定瞭AlphaGo的下棋基礎,與人類學習下棋有著異曲同工之妙。這3000萬個樣本可以用a,b統計,其中a是一個640x960xn的二維棋局,輸入到一個卷積神經網絡分類,分類的目標就是落子向量A,通過不斷的訓練,盡可能讓計算機得到的向量A接近人類高手的落子結果b,這樣就形成瞭一個模擬人類下圍棋的神經網絡,然後得出一個下棋函數F_g雞精何時喝o(),當盤面走到任何一種情形的時候,都可以通過調用函數的形式從數據庫獲取最佳的落子位置。

似乎這樣的程序隻要積累到足夠多的棋譜數據庫作為支撐,那麼就可以打造出一個虛擬的頂級圍棋高手,但由於圍棋局面數據無限龐大,單純的棋譜收集並不能支撐起成為一個頂級高手,而黃世傑也介紹,這樣打造出來的虛擬圍棋高手隻能達到業餘六段的水準,和專業級的選手還有很大的差距,更何況是專業9段的李世石。

早先公佈的世界圍棋人工智能得分排名 於是AlphaGo開始將蒙特卡洛樹算法結合在一起,它不再機械的調用函數庫,而是一種類似於人類進化的過程,黃世傑的老師Coulum讓兩個機器人在棋盤上隨機下棋,那麼下到最後,必然會有一個機器人會贏,那麼將贏的那一方法記下來(M0,a0),並將分值雞精推薦提高一些:新分數=初始分+r。於是使用(M0,a0),例如(M0,a0)方法的分值為2,其它方法依然是1,理論上來說再次選擇(M0,a0)方法的概率會更高一些,而要和(M0,a0)方法假象中的對手也同樣適用瞭這樣的方式更新瞭自己的分數,例如會以a1作為應對,就這樣如法炮制,Coulum就這樣不斷的和那些不怎麼是高手的虛擬對手下棋,這樣那些不錯的落子方案就會分數越來越高,等到Coulum在想象中完成瞭10萬盤棋後,選擇他推演過次數最多的那個方案落子,實際上這個時候Coulum才下瞭第一步棋。

不過Coulum的程序仍然有局限性,因為初始的下棋方法太過簡單,需要使用更高效地扔骰子,那如何更搞笑的扔骰子呢?於是黃世傑改進瞭蒙特卡洛樹算法,一開始就不在使用(M0,a0)這種擲骰子的方法,而是先根據F_go()計算的結果來得到b可能的概率分佈,以這個概率來挑選下一步的動作,每次棋局下完之後,新分數=調整後的初始分+通過模擬得到的贏棋概率。 當然執行過程中會遇到某一步唄隨機到很多次,這個時候就應該依據模擬得到的概率而不是F_go(),所以F_go()的初始分會被打個折扣:調整後的初始分=F_go()/(被隨機到的次數+1) 於是下棋過程中F_go()就可以快速定位到相對優秀的落子方案,又給瞭其它位置一定的概率,不過這樣做瞭後,就出現瞭一個問題,F_go()的計算速率太慢,完全無法滿足圍棋比賽的需求,如果和真正的選手比賽時間根本就不夠用。於是新的F_go_Fast()函數被推出,它把網絡層數、輸入特征都減少,耗時相比之前最初增加並不多,基本可以滿足正常下棋的需求,隻需要在開始的時候使用F_go()走一些步數,然後在後續執行F_go_Fast(),兼顧準確和效率。

除瞭這些對戰,AlphaGo還加入瞭人類無法實現的左右互搏,意思就是使用F_go(1)和F_go(1)對弈,得到瞭一定一定量的新棋譜,加入到訓練集當中,訓練處新的F_go(2),一次類推,這樣就可以得到勝率更高的F_go(n)。不過左右互搏並沒有帶來提升,相反還不如F_go(),於是黃世傑最後使出瞭評價函數v(s)這一招,在訓練v(s)的時候,開局還是使用F_go()走n步,這樣可以生成更多的開局,不過黃世傑覺得開局還是不夠豐富,於是在n+1步的時候再隨機擲骰子,並記下這個狀態,然後和F_go(n)對弈,知道比賽結束,獲得結果r,通過這種方式獲取足夠多的樣本,再通過神經網絡,把最後一層的目標改成回歸而非分類,就得出瞭v(s)函數,輸出贏棋的概率。 F_go()、v(s)以及蒙特卡洛樹算法三者相互配合,使用F_go()作為初始分開局,每局選擇分數最高的方案落子,下到n步之後,改用F_go_Fast()下完剩下的棋局,同時調用v(s),評估局面的獲勝概率,就實現瞭佈局和快速的雙重效果,剩下的就是不斷的學習過程瞭。

人工智能會犯錯誤嗎?

人們總是說機器是不會犯錯誤的,在AlphaGo與李世石的對弈過程中,一些媒體或者專傢經常會說到“AlphaGo不會犯錯誤”,並擔憂李世石會敗給AlphaGo,最終結局並不盡如意,最終李世石落敗。自詡的人類恐怕要對於後面的四場比賽開始惶恐起來。 實際在比賽的過程中AlphaGo有多次機會可以拿下棋局,卻一直對弈到近4個小時候才分出勝負,期間AlphaGo由於並沒有采取正確的措施,按照人類的理解認知,實際上人工智能已經犯下瞭錯誤。畢竟對於非公理性的算法,機器是無法精準獲取最優結果的,AlphaGo采用的蒙特卡洛搜索樹遍歷對於圍棋來說很難做到精準下棋,畢竟計算量擺在那兒,實際上對於圍棋而言至少現階段不可能使用完全的遍歷方式獲取最優結果。

實際上所有的人工智能對於未台中滴雞精門市知領域的嘗試都是很難窮盡結果的,這也是為什麼人工智能一直被人類語言很難完全取代人類的原因,人工智能在某些領域成功是科技進步的表現,但是對於人工智能未能涉足的領域,我們可以認為人工智能會犯錯誤而無法在這一領域應用,當人工智能超越人類的過程也是不斷犯錯誤的過程,你覺得呢?

人類被人工智能打敗 需要畏懼嗎?

最終回到AlphaGo是否可以戰勝圍棋世界冠軍李世石問題上來,雖然從目前已經對局的情勢來看,AlphaGo最終打敗世界冠軍李世石的概率很大,另外AlphaGo快速的成長速度是任何一個圍棋世界冠軍無法企及的,隨著計算機性能的不斷增強,蒙特卡洛搜索樹遍歷將進一步提高命中概率,這樣在人腦提升緩慢的背景下,AlphaGo在圍棋對弈上全面戰勝人類隻是早晚的事情,正如當時“深藍”歷經數年才艱難戰勝人類,自兒童雞精推薦此以後將人類甩在瞭身後。

大量的計算機專傢,配合大量的世界圍棋高手,在算法上不斷革新,再配合不斷成長的超級計算能力,不斷的從失敗走向成功,最終打造出圍棋人工智能。樊麾、李世石是敗給人類智慧的結晶。賽後的李世石並不是太悲觀 而棋手和圍棋從業者們,出於可以理解的感情,總是希望並認為這一天不會來的那麼快,但他們絕對不會拒絕甚至仇視這種進步。其實我看到的很多人,都一直期待並贊許著人工智能的進步,甚至很多職業高手還親身參與和幫助著人工智能圍棋項目的研究。

我們努力打造著一個“新我”,一個能戰勝自己的“新我”。其實並不是人工智能打敗瞭人類,而是人類打敗瞭人類。所以最終的成功,是我們人類自己的成功,而不應該對人工智能感到畏懼。

台灣電動床工廠 電動床

台灣電動床工廠 電動床

AUGI SPORTS|重機車靴|重機車靴推薦|重機專用車靴|重機防摔鞋|重機防摔鞋推薦|重機防摔鞋

AUGI SPORTS|augisports|racing boots|urban boots|motorcycle boots

arrow
arrow
    創作者介紹
    創作者 lzb177j9s7 的頭像
    lzb177j9s7

    巴巴的預購清單

    lzb177j9s7 發表在 痞客邦 留言(0) 人氣()