中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

國際象棋版AlphaZero出來了誒,還開源了Keras實現(xiàn)ヽ( `0′)ノ

2018-07-20    來源:編程學習網(wǎng)

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

只用了不到4小時。

AlphaZero在去年底通過自我對弈,就完爆上一代圍棋冠軍程序AlphaGo,且沒有采用任何的人類經(jīng)驗作訓練數(shù)據(jù)(至少DeepMind堅持這么認為,嗯)。

昨天,GitHub有位大神@Zeta36用Keras造出來了國際象棋版本的AlphaZero,具體操作指南如下。

項目介紹

該項目用到的資源主要有:

去年10月19號DeepMind發(fā)表的論文《不靠人類經(jīng)驗知識,也能學會圍棋游戲》 基于DeepMind的想法,GitHub用戶@mokemokechicken所做的Reversi開發(fā),具體前往https://github.com/mokemokechicken/reversi-alpha-zero DeepMind剛發(fā)布的AlphaZero,從零開始掌握國際象棋:https://arxiv.org/pdf/1712.01815.pdf。 之前量子位也報道過,AlphaZero僅用了4小時(30萬步)就擊敗了國際象棋冠軍程序Stockfish。是不是賽雷(′?Д?)」

更多細節(jié)去wiki看唄。

筆記

我是這個信息庫(repositories,也簡稱repo)的創(chuàng)造者。

這個repo,由我和其他幾個小伙伴一起維護,并會盡我們所能做到最好。

repo地址:https://github.com/Zeta36/chess-alpha-zero/graphs/contributors

不過,我們發(fā)現(xiàn)讓機器自己對弈,要燒很多錢。盡管監(jiān)督學習的效果很好,但我們從來沒有嘗試過自我對弈。

在這里呢,我還是想提下,我們已經(jīng)轉(zhuǎn)移到一個新的repo,采用大多數(shù)人更習慣的AZ分布式版本的國際象棋(MCTS in C ++):https://github.com/glinscott/leela-chess

現(xiàn)在,項目差不多就要完成啦。

每個人都可以通過執(zhí)行預編譯的Windows(或Linux)應用程序來參與。這個項目呢,我們趕腳自己做得還是不錯的。另外,我也很確定,在短時的分布式合作時間內(nèi),我們可以模擬出DeepMind結果。

所以呢,如果你希望能看到跑著神經(jīng)網(wǎng)絡的UCI引擎打敗國際象棋冠軍程序Stockfish,那我建議你去看看介個repo,然后肯定能增強你家電腦的能力。

使用環(huán)境

Python 3.6.3

tensorflow-gpu: 1.3.0

Keras: 2.0.8

最新結果 (在@Akababa用戶的大量修改貢獻后獲得的)

在約10萬次比賽中使用監(jiān)督式學習,我訓練了一個模型(7個剩余的256個濾波器塊),以1200個模擬/移動來估算1200 elo。 MCTS有個優(yōu)點,它計算能力非常好。

下面動圖泥萌可以看到,我(黑色)在repo(白色)模型中對陣模型:

下面的圖,你可以看到其中一次對戰(zhàn),我(白色,?2000 elo)在這個回購(黑色)中與模型對戰(zhàn):

首個好成績

在用了我創(chuàng)建的新的監(jiān)督式學習步驟之后,我已經(jīng)能夠訓練出一個看著像是國際象棋開局的學習模型了。

下圖,大家可以看到這個模型的對戰(zhàn)(AI是黑色):

下面,是一場由@ bame55訓練的對戰(zhàn)(AI玩白色):

5次迭代后,這個模型就能玩成這樣了。這5次里,’eval’改變了4次最佳模型。而“opt”的損失是5.1(但結果已經(jīng)相當好了)。

Modules

監(jiān)督學習

我已經(jīng)搞出來了一個監(jiān)督學習新的流程。

從互聯(lián)網(wǎng)上找到的那些人類游戲文件“PGN”,我們可以把它們當成游戲數(shù)據(jù)的生成器。

這個監(jiān)督學習流程也被用于AlphaGo的第一個和最初版本。

考慮到國際象棋算是比較復雜的游戲,我們必須在開始自我對弈之前,先提前訓練好策略模型。也就是說,自我對弈對于象棋來說還是比較難。

使用新的監(jiān)督學習流程,一開始運行挺簡單的。

而且,一旦模型與監(jiān)督學習游戲數(shù)據(jù)足夠融合,我們只需“監(jiān)督學習”并啟動“自我”,模型將會開始邊自我對弈邊改進。

python src/chess_zero/run.py sl

如果你想使用這個新的監(jiān)督學習流程,你得下載一個很大的PGN文件(國際象棋文件)。

并將它們粘貼到data / play_data文件夾中。BTW,F(xiàn)ICS是一個很好的數(shù)據(jù)源。

您也可以使用SCID程序按照玩家ELO,把對弈的結果過濾。

為了避免過度擬合,我建議使用至少3000場對戰(zhàn)的數(shù)據(jù)集,不過不要超過3-4個運行周期。

強化學習

AlphaGo Zero實際上有三個workers:self,opt和eval。

self,自我模型,是通過使用BestModel的自我生成訓練數(shù)據(jù)。

opt,訓練模型,是用來訓練及生成下一代模型。

eval是評測模型,用于評估下一代模型是否優(yōu)于BestModel。如果更好,就替換BestModel。

分布式訓練

現(xiàn)在可以通過分布式方式來訓練模型。唯一需要的是使用新參數(shù):

輸入分布式:使用mini config進行測試,(參見src / chess_zero / configs / distributed.py)

分布式訓練時,您需要像下面這樣在本地運行三方玩家:

python src/chess_zero/run.py self —type distributed (or python src/chess_zero/run.py sl —type distributed) python src/chess_zero/run.py opt —type distributed python src/chess_zero/run.py eval —type distributed

圖形用戶界面(GUI)

uci啟動通用象棋界面,用于GUI。 為ChessZero設置一個GUI,將其指向C0uci.bat(或重命名為.sh)。例如,這是用Arena的自我對弈功能的隨機模型的屏幕截圖:

數(shù)據(jù)

data/model/modelbest: BestModel. data/model/next_generation/: next-generation models. data/playdata/play*.json: generated training data. logs/main.log: log file. 如果您想從頭開始訓練模型,請刪除上述目錄。

使用說明

安裝

安裝庫

pip install -r requirements.txt

如果您想使用GPU,請按照以下說明使用pip3進行安裝。

確保Keras正在使用Tensorflow,并且你有Python 3.6.3+。根據(jù)您的環(huán)境,您可能需要運行python3 / pip3而不是python / pip。

基本使用

對于訓練模型,執(zhí)行自我對弈模型,訓練模型和評估模型。

注意:請確保您正在從此repo的頂級目錄運行腳本,即python src / chess_zero / run.py opt,而不是python run.py opt。

自我對弈

python src/chess_zero/run.py self

執(zhí)行時,自我對弈會開始用BestModel。如果不存在BestModel,就把創(chuàng)建的新的隨機模型搞成BestModel。

你可以這么做

創(chuàng)建新的BestModel;

使用mini config進行測試,(參見src / chess_zero / configs / mini.py)。

訓練模型

python src/chess_zero/run.py opt

執(zhí)行時,開始訓練;A模型會從最新保存的下一代模型中加載。如果不存在,就用BestModel。訓練好的模型每次也會自動保存。

你可以這么做

輸入mini:使用mini config進行測試,(參見src / chess_zero / configs / mini.py)

用全套流程:指定整套流程的(小批量)編號,不過跑完全程會影響訓練的學習率。

評價模型

python src/chess_zero/run.py eval

執(zhí)行后,開始評估。它通過玩大約200場對戰(zhàn)來評估BestModel和最新的下一代模型。如果下一代模型獲勝,它將成為BestModel。

你可以這么做

輸入mini: 使用mini config進行測試,(請參閱src / chess_zero / configs / mini.py)

幾點小提示和內(nèi)存相關知識點

GPU內(nèi)存

通常來講,缺少內(nèi)存會觸發(fā)警告,而不是錯誤。

如果發(fā)生錯誤,請嘗試更改src / configs / mini.py中的vram_frac,

self.vram_frac = 1.0

較小的batch_size能夠減少opt的內(nèi)存使用量?梢試L試在MiniConfig中更改TrainerConfig#batch_size。

最后,附原文鏈接,

https://github.com/Zeta36/chess-alpha-zero/blob/master/readme.md

 

來自:https://baijia.baidu.com/s?id=1593981712049561306&wfr=pc&fr=ch_lst

 

標簽: linux 互聯(lián)網(wǎng) 腳本 評測 網(wǎng)絡

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:了解NodeJS看這一篇就夠了

下一篇:15000個Python開源項目中精選Top30,Github平均star為3707