會員登入
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
圍棋資訊及轉帖

知乎熱話:是否不按套路下棋就能贏AlphaGo?

discuss pic 2021-01-29 00:21:25

2021年01月29日 14:51 體育綜合

  在2016年3月13日AlphaGo與李世石的對陣中,比賽進行到兩個半小時後,李世石僅剩下17分鐘,比「阿爾法圍棋」剩餘時間足足少1個小時。但隨後李世石祭出白78「挖」妙手,一場「逆襲」之戰也由此開始。AlphaGo被李世石的「神之一手」下得陷入混亂,走出了黑93一步常理上的廢棋,導致棋盤右側一大片黑子「全死」。此後,「阿爾法圍棋」判斷局面對自己不利,每步耗時明顯增長,更首次被李世石拖入讀秒。最終,李世石冷靜收官鎖定勝局。

  那我們是否可以這樣認為:當我們不按套路下棋(類似李世石的神之一手),讓 AlphaGo在數據庫中找不到應對方法,陷入邏輯混亂,是不是就可以贏AlphaGo了?讓我們來看看知乎棋迷們貢獻出了怎樣精彩的回答吧。

  知乎作者:『已註銷』

  題主問的這個問題非常有意思,因為它牽扯到了一個深度學習裡非常重要而又在這種情況下,很難定義的一個概念。

  首先,AlphaGo 一共分為3個版本,從人類棋譜中學習的AlphaGo, 未知方法的AlphaGo Master和從零開始的AlphaGo Zero。這三個版本的訓練方式完全不同,所以也需要分開來看才能取得有意義的結論。

  我們先來說AlphaGo。

  AlphaGo 的訓練方式非常簡單。用大白話來說,就是讓AI從棋盤中的情況預測職業棋手會下的下一手,而這下一手的來源則來自於職業棋手有限的棋譜。

  在這個情況下,「不按套路出牌」可以理解為下一手在棋譜中不存在,沒有任何一個職業棋手下過的一步。這看起來非常promising,但是實際上AlphaGo 不一定會陷入邏輯混亂,因為它可以generalize (歸納 ,總結)。

  深度學習中一般將使用已存在的輸入(棋盤中的情況)和相對應的期望輸出(職業棋手的下一手)pairs的模型稱作監督學習的模型。在這個情況下,generalization performance就可以被非常直觀的定義成遇到「不按套路」時模型的表現。 而在AlphaGo的情況下, 因為AlphaGo訓練使用的輸入-輸出pairs非常非常的多,所以generalization performance 也很自然的不會特別差。

  所以,在AlphaGo這一情況下,讓AlphaGo陷入「邏輯混亂」,在遇到沒遇見的一手時表現出非常差的棋力是有可能的。

  但是,對於AlphaGo Zero這個豪華升級版來說,情況就不太一樣了。

  AlphaGo Zero訓練時並沒有使用職業棋手所下過的棋譜,而是從零開始左右搏擊,從自己的棋譜中訓練。(強化學習)

  簡單來說,AlphaGo Zero和自己下棋(selfplay)所獲得到的棋譜肯定有一方完勝,一方完敗的情況(廢話)。所以,直接讓AlphaGo Zero學習完勝那方在那一局裡面的下法就可以在自己的基礎上繼續進步了。

  這個時候,「不按套路出牌」就和上面那個例子不太一樣了。現在,因為和自己下棋不需要人類參與,谷歌又特別有錢,和自己下棋的次數非常非常多,所以很難找到上面那個意義的「神之一手」。

  同時,強化學習這個方式也可以自動增加generalization performance。如果AlphaGo Zero只會玩一個套路的話,那麼selfplay兩方只要一方隨便下一手就贏了。所以,AlphaGo Zero會自動學習到幾乎所有的套路,使得自己在selfplay時不會因為隨機一手而導致全盤皆輸。

  但是,強化學習也有自己的缺陷,也就是forgetting。因為在selfplay的時候,模型永遠在和現在的自己對戰,所以很有可能記不住以前下過的對手所操控的髒套路和相對的應對措施。

  這就和你在星際爭霸裡鑽石段位打了無數局,回到白銀段位還是被光炮rush黃金艦隊吊錘師一個道理。

  為了解決這個問題,AlphaGo Zero使用了replay buffer。它現在不僅會從最新的棋局中學習,也會從離現在500000局內的所有棋局學習,以此來提高它的記憶能力。

  總的來說,遇上AlphaGo,「不按套路下棋」是有可能下出「神之一手」的。遇上AlphaGo Zero,那「神之一手」的存在概率低到基本上可以忽略的地步,可以無視。

  但是,現在最有可能和AlphaGo Zero對戰的情況是在World AI Tournament裡扮演星陣,PheonixGo, 韓豆,里拉 (leela-zero), MiniGo, SAI中的一位。沒想到現在連圍棋ai都能上知乎了,看來強人工智能真的離我們不遠了。

  知乎作者:含辛

  提出這個問題顯然是對機器學習缺乏最基本的瞭解。

  實際上alphago本身下棋就是沒有所謂套路的,alphago的目標很簡單,就是通過海量對弈學習找到某一固定佈局下勝率最高的下法。為什麼alphago知道怎麼下勝率最高?因為在這一步之後的所有下法alphago都會試一遍。

  所以對於人類而言,你下在一個職業棋手很少下或者從來不會去下的地方,這叫不按套路,但是對alphago而言,棋盤上的每一點都是同樣重要的,全都需要參與到最終的勝率計算中,人類職業棋手的常規下法在alphago的算法中並不擁有更高的特殊地位。如果用不按套路的方法和alphago下棋,唯一的結果只會是輸得更快。

  知乎作者:sen2020

  AlphaGo 2016版本中,第一步是用Behavior Cloning從人類棋譜中學習,得到一個初步的策略網絡。文章中號稱 第一步結束之後 ,這個弱雞策略網絡可以打敗業餘棋手。如果你跟這個策略網絡下棋,那麼不按套路出牌確實可以打敗這個策略網絡。Behavior Cloning的弱點就是遇到沒見過的狀態會懵逼。

  但是,

  AlphaGo最終用的不是Behavior Cloning訓練出的弱雞策略網絡。AlphaGo第二步做自我博弈,探索各種可能的狀態,進一步提高策略網絡。這一步叫做「強化學習」。Behavior Cloning+強化學習之後的策略網絡 可以以80-20擊敗Behavior Cloning學出來的策略網絡。這時候不按常理出牌已經不好使了。做強化學習的時候,AlphaGo已經探索過各種奇葩的走法,奇葩的走法對AlphaGo來說並不奇葩。

  這還沒有完。

  AlphaGo跟李世石下棋用的不是這個更強的策略網絡。這個策略網絡只是輔助MCTS。AlphaGo最終形態是MCTS。每走一步棋,先模擬成千上萬局,看出來當前怎麼走勝算最大。這就像是開掛了一樣,人不太可能有勝算。不管你的棋走得多麼不合常理,AlphaGo根本不在乎,AlphaGo直接暴力模擬接下來可能發生的情況。

  後來AlphaGo又變強了。

  最新的版本叫做AlphaGo Zero。他們嫌人太笨了,於是訓練策略網絡的時候不跟人類棋譜學了。他們改用MCTS來監督學習策略網絡。在最後比賽的時候用策略網絡輔助MCTS。AlphaGo Zero跟「老版本」(就是虐了李世石的那個)對弈,比分100:0。

  知乎作者:Arcadia

  不能。首先不按套路下棋你確定你有獲勝把握嗎。。。如果億萬分之一的勝率也算能贏的話,就能吧。。。不按套路的前提是你對絕大多數套路瞭如指掌。

  以往AlphaGo採用了大量人類高手的對弈數據進行訓練,這種訓練過程多少會參雜一些定式。但隨著訓練過程的深入,AlphaGo能夠通過自我對弈發掘新的定式(人類高手認為勝率不高),這種以人的思維角度,已經是不按套路出牌了。

  再者,AlphaGo不同於國際象棋的深藍,沒有採用暴力窮舉,它的每一步都是基於當前的最優概率,所謂的不按套路出牌,其實在程序看來和走別的地方除了概率不同,沒有區別。

  AlphaZero在AlphaGo基礎上更進一步,不依賴於人類知識,完全通過自我博弈收集數據進行學習。每到一個沒有出現過的局面,進行若干次模擬棋局得到每種走法的勝率,如此反覆,神經網絡可以更精確地對棋局進行判斷。

  研究生的Machine Learning課程中有幸自己寫了一個簡易版本的AlphaZero,用於5x5棋盤大小的圍棋比賽。

  有人可能會覺得5x5棋盤的圍棋很簡單(完全依照圍棋規則),但如果沒有一定圍棋基礎,是很難下過訓練良好的模型的。

  一個很簡單的類似AlphaZero的網絡只用自我博弈1500局就能夠打敗其他同學訓練了幾十萬次的q-learning模型,確實很厲害。大概就是策略-價值網絡加蒙特卡洛樹搜索,有興趣的同學可以自己學習一下。

  知乎作者:時間旅客

  我覺得其實是有可能的,但實現難度應該比讓模型把熊貓識別成大猩猩的難度要大一些。

  人工智能和深度學習領域中,有一個研究領域叫對抗攻擊(Adversarial Attack),大概的意思就是想辦法對輸入的圖片進行一些微小的變動,就可以讓模型識別錯誤,例如下圖。

  具體的攻擊方法有很多,比如FGSM等。它們的攻擊原理大概是深度學習的模型非常深,在某個層上面加上一點點噪音就可以產生蝴蝶效應,使最後一層的輸出與之前大相逕庭。具體的攻擊方

  法是反梯度下降法,具體就不細說了(因為具體我也不太懂),這個研究在現實裡面也是能用上的。

  回到題目,我覺得是有可能的。因為alphago算法中的一部分就是根據一個圍棋局面圖片預測下一個落子點的概率,就有可能我們落子的某一點的改變起到了類似對抗攻擊的作用,使alphago的預測產生偏差了。

  那為什麼說實現難度比較大呢?因為圍棋和圖片有不同之處,圍棋棋盤是19*19大小,每個點只有3種可能(黑、白、無),對應模型的輸入應該是(1,0,-1),而對抗攻擊中的圖片中每個點的像素可以隨意調整小數的。即使算上吃子對棋盤分佈的改變,落下一顆子對整個圖片的影響也是比較離散的,因此我認為由於落下一個子而產生對抗攻擊的概率比較小。

  不過如果是實際面對面的時候,可能就有更多攻擊方式了,比如往棋盤上貼點黑白貼紙啥的。當然,裁判可能不允許

  無論是否可行,能提出這一問題本就難能可貴,但或許圍棋人工智能的意義並不是被人類戰勝,而是在更深遠的層面去推動圍棋與科技的關聯性發展。

  (棋牌深度報道組 跳跳)

Powered by XOOPS © 2001-2020 The XOOPS Project