1
本文作者: 彭博 | 2017-02-23 13:54 |
雷鋒網(wǎng)注:本文作者彭博,Blink·稟臨科技聯(lián)合創(chuàng)始人。文章由雷鋒網(wǎng)整理自作者知乎專欄,獲授權發(fā)布。
本篇提前回答一個大家經(jīng)常問的問題:強化學習在 AlphaGo 中究竟是怎么用的?比如說,SL策略網(wǎng)絡,是怎么變成 RL 策略網(wǎng)絡的?
| Policy Gradient:簡單而有效
很有意思的是,很少見到有人回答上述問題(可能是因為 AlphaGo 論文在此寫得很簡略)。其實,這個問題的答案特別簡單:
如果我贏了棋,就說明這次我選擇的策略是正確的。所以可以對于這次所經(jīng)歷的每一個局面,都加強選擇這局的走法的概率。
如果我輸了棋,就說明這次我選擇的策略是錯誤的。所以可以對于這次所經(jīng)歷的每一個局面,都減少選擇這局的走法的概率。
舉個例子,比如說電腦左右互搏,黑棋開局走星位,白棋回應走小目,最后白棋輸了,那么黑棋就加強開局走星位的概率(以及后續(xù)的每一步選擇這局的走法的概率),白棋就減少在黑棋開局走星位的情況下走小目的概率(以及后續(xù)的每一步選擇這局的走法的概率)。
等一下,這里好像有問題。這是不是太傻了?也許白棋并不是敗在開局,而是敗在中盤的某一步?也許黑棋并不是真的這次走對了策略,而是白棋看漏了一步(而且白棋如果走對是可以贏的)?
以上說的很正確。但是,反過來想,如果黑棋的走法可以讓白棋后面打勺的概率增加,那也不錯啊。另一方面,如果白棋發(fā)現(xiàn)自己目前的策略容易進入自己不容易掌握的局面,那么盡管確實可能有完美的招數(shù)隱藏在里面,那白棋也不妨一開始就去避免這種局面吧。而且,勝和負的影響可以相互抵消,所以在經(jīng)過大量對局后,這個過程是比較穩(wěn)定的。比如說如果某個開局的后續(xù)勝率經(jīng)統(tǒng)計是50%,那它就不會被改變;但如果不是50%,這種改變就有一定道理。
這個過程,有點像人類棋手的“找到適合自己的棋風”的過程。毫無疑問,現(xiàn)在的 AlphaGo 已經(jīng)找到了十分適合自己的棋風,它確實是會揚長避短的。
以上是最簡單的 Policy Gradient 的例子,它的問題是有可能陷入局部的最優(yōu)(對付自己有效,不代表對付其他人有效),因此 AlphaGo 論文中會建立一個對手池(包括整個進化過程中形成的所有策略),保證新策略盡量對于不同對手都有效。在這個基礎上,可以做各種各樣的改進,例如配合未來的價值網(wǎng)絡,更清楚地看到自己的敗著在哪里,而不是傻傻地把所有概率都同樣修改 。
| Deepmind 的相關研究
其實 Deepmind 自創(chuàng)始以來就在做類似的研究,在此簡單說說。經(jīng)典的一系列論文是學會玩 Atari 游戲:
Playing Atari with Deep Reinforcement Learning
Human-level control through deep reinforcement learning
例如最經(jīng)典的 Pong:
這里也有一個策略網(wǎng)絡,它輸入的是目前的屏幕圖像(實際上要輸入幾幅圖像,或者前后兩幅圖像的差,用于判斷運動情況),輸出的是此時應該往上移動的概率。用這里所說的訓練方法就可以讓它無師自通,自己學會玩游戲,最終達到相當高的水準(可以想象,這個學習過程會比較慢)。
但是如果我們仔細想想,這個辦法恐怕很難自己學會玩好星際!一個重要原因是星際的決策中有太復雜的“層次結構”。因此盡管 Deepmind 此前說星際是下一個目標,目前我們尚未看到 Deepmind 在這方面發(fā)表的進展。如果真的成功實現(xiàn),將是相當大的成就。
最后,如果對于這方面感興趣,這是一篇很好的介紹:
Deep Reinforcement Learning: Pong from Pixels
相關閱讀:
28 天自制你的 AlphaGo(二):訓練策略網(wǎng)絡,真正與之對弈
28天自制你的AlphaGo(三):對策略網(wǎng)絡的深入分析以及它的弱點所在
雷峰網(wǎng)版權文章,未經(jīng)授權禁止轉載。詳情見轉載須知。