edaxで学習させる方法(沼への入り口)

edaxで学習させる方法

edaxを入手

今は、バージョン4.6がここにあります。

GitHub - abulmo/edax-reversi: Edax reversi version 4.6
Edax reversi version 4.6. Contribute to abulmo/edax-reversi development by creating an account on GitHub.

edax入手

右側の赤い丸のところからダウンロードできます。

windows

Windowsでやるならwindows版をダウンロードします。

学習のさせ方

edaxを適当なフォルダの中に解凍します。

展開

wEdax-x86-64.exe
wEdax-x86-64-v2.exe
wEdax-x86-64-v3.exe

という3つの実行ファイルがあります。まずv3を起動して見て下さい。それで動かない人はv2、それも動かない人はvなしのを起動します。

起動

b info

と入力してみて下さい。

b info

初期状態では、レベル21、深さ37のbookで、空っぽです。このままでも良いのですが、深さ37というのは今ちょっと深すぎると思うので、浅くします。それに合わせてレベルも変えます。

b new 27 34

※これは全部消して最初から学習し直すコマンドなので、次回からは投入しません。

b new 27 34

bookの設定が、レベル27、深さ34になりました。これは、学習を進めた後に(特にレベルを)変更するのは、難しいです。

とりあえず、金魚定石を学習させてみましょう。

play f5d6c3d3c4f4c5b3c2e6c6b4b5

金魚

いよいよ学習です。

b deviate 0 0

おや?何も動きませんね。金魚定石がないbookでいきなり学習させようとしたからです。まず、金魚定石を登録しましょう。

b store

b store

これで金魚定石が登録されました。今度こそ学習させましょう。

b deviate 0 0

(沢山表示されます。時間がかかります。)

途中暇なので、ちょっとedaxのフォルダを見てみましょう。dataフォルダーの中を見て下さい。

book.dat.dev

book.dat.dev というファイルができています。これは、deviateでの学習の途中の状態がセーブされているファイルです。

edaxを途中で止めるときは、Ctrl+Cで止めますが、book.dat.devにセーブされていて、再開するときは、book.dat.devをbook.datに名前を変えてからedaxを起動すると、続きからできます(edaxは起動時にbook.datを読み込みます)。

ただ、edaxがbook.dat.devに書き込んでいるタイミングで止めるとファイルが壊れてしまうので、タイミングを見計らうって止めるか、book.dat.devを時々コピーするか(それもタイミングが悪いとedaxがファイルを書き出せなくて終了してしまう)。

※stopというコマンドもあるようなのですが、良く分かりません。

終了

終わったら、以下の2つのコマンドを投入します。

b fix

b fix

q

qコマンドで、dataフォルダの中にbook.datが書き出され、edaxが終了します。

book.dat

book.datが、目的のファイル(bookファイル)です。11KBありますね。

続きをやるときは、edaxを起動して(book.datが読み込まれます)、目的の定石をplayで入力して、b deviate 0 0みたいな感じです。b storeが必要になる場合もあります。

さて、b deviate 0 0の数字についてですが、最初は0 0で良いですが、それだとちょっと悪そうな手を全く調べないので、

b deviate 1 1

b deviate 2 2

b deviate 3 3

みたいに、数字を大きくすると、沢山学習します。沢山すぎて何日とか何ヵ月とかなっちゃいます(1時間に1回くらい、dook.dat.devにセーブされます。学習が進むと、巨大なファイルを書き込むことになります)。

bookを見る

bookを見るソフトは色々ありますが、私は最近はEgaroucidで見ているので、Egaroucidを紹介します。

Egaroucid オセロAI
オセロAI Egaroucid 世界最強レベルのオセロAI Egaroucid を搭載したフリーソフトウェアです。搭載AIはコンテストで世界1位になった自作AIをベースに改良したものです。

Egaroucidのbook(documentフォルダの中のbook.egbk3)を削除してから起動します(元のbookが必要ならどこかにセーブしておいて下さい)

Book→ファイル操作→Book読み込みで、さっき作ったedaxのbook(book.dat)を読み込みます。

book読み込み

初期盤面

金魚定石を学習させた結果、オセロは引分けと判明しました(え?)

f5d6c3d3c4f4c5b3c2e6c6b4b5(Egaroucidにコピペできます)

金魚

d2がbookに登録されていて引分けですね。

d2

次の黒はe3に打てば引き分けみたいですね。

という感じです。0 0しかしてないので「たまたま」ですかね。

b deviate 2 2くらいを通すと、そこそこ正しい値になることが…多い…ような気がします。

edaxのマニュアル

公式のマニュアル的なものがあるのかないのかすら知らないのですが(githubにドキュメントはある)、誰かが書いて下さった、日本語の解説サイトがあります。

リファレンス(基本コマンド編) [キロキティア]

edax.ini

edaxのフォルダ(~.exeがあるのと同じフォルダ)にedax.ini(設定ファイル、edaxが起動時に参照する)を置いて、細かい指定をすることができます。

私が普段学習させている環境のedax.iniは、

-n 12
book on
auto-start on
auto-store on

これしか書いてありません。「-n 12」だけでも良いかも知れません。

「-n 12」は、学習させるときのスレッド数で、私のPCのCPUは「6コア12スレッド」の仕様なので、12と書いています。「同じPCで他のことするのに重い」という場合は、「-n 10」くらいにします。

これを書かないと、edaxが勝手に判断して12スレッドで動いてくれる…ような気がします(さっきそんな感じだった)。

タイトルとURLをコピーしました