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

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

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

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

只用了不到4小時(shí)。

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

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

項(xiàng)目介紹

該項(xiàng)目用到的資源主要有:

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

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

筆記

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

這個(gè)repo,由我和其他幾個(gè)小伙伴一起維護(hù),并會(huì)盡我們所能做到最好。

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

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

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

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

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

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

使用環(huán)境

Python 3.6.3

tensorflow-gpu: 1.3.0

Keras: 2.0.8

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

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

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

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

首個(gè)好成績

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

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

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

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

Modules

監(jiān)督學(xué)習(xí)

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

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

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

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

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

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

python src/chess_zero/run.py sl

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

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

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

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

強(qiáng)化學(xué)習(xí)

AlphaGo Zero實(shí)際上有三個(gè)workers:self,opt和eval。

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

opt,訓(xùn)練模型,是用來訓(xùn)練及生成下一代模型。

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

分布式訓(xùn)練

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

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

分布式訓(xùn)練時(shí),您需要像下面這樣在本地運(yùn)行三方玩家:

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啟動(dòng)通用象棋界面,用于GUI。 為ChessZero設(shè)置一個(gè)GUI,將其指向C0uci.bat(或重命名為.sh)。例如,這是用Arena的自我對弈功能的隨機(jī)模型的屏幕截圖:

數(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. 如果您想從頭開始訓(xùn)練模型,請刪除上述目錄。

使用說明

安裝

安裝庫

pip install -r requirements.txt

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

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

基本使用

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

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

自我對弈

python src/chess_zero/run.py self

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

你可以這么做

創(chuàng)建新的BestModel;

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

訓(xùn)練模型

python src/chess_zero/run.py opt

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

你可以這么做

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

用全套流程:指定整套流程的(小批量)編號(hào),不過跑完全程會(huì)影響訓(xùn)練的學(xué)習(xí)率。

評價(jià)模型

python src/chess_zero/run.py eval

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

你可以這么做

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

幾點(diǎn)小提示和內(nèi)存相關(guān)知識(shí)點(diǎn)

GPU內(nèi)存

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

如果發(fā)生錯(cuò)誤,請嘗試更改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

 

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

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

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

下一篇:15000個(gè)Python開源項(xiàng)目中精選Top30,Github平均star為3707