English
AobaZero は、AlphaZero の将棋の実験の追試を行ったユーザ参加型の将棋人工知能プロジェクトです。現在は独自路線です。


ご興味がある方は、ぜひ参加をお願いします。Google Colabを使えばどなたでも棋譜生成が可能です。

GitHub ソース、実行ファイルはこちらです。

2024-02-25 v43 WindowsでNVIDIAのドライバを更新したときのエラーとCPU内蔵のGPU(Intel Iris Xe)でもOpenCLが動作するように修正しました。
2024-01-09 先手勝ちの学習確率を減らした重みに差し替えました。w4357、6665万棋譜から。
2023-12-08 v41 更新をお願いします。学習棋譜の平均playout数を1600から3200に変更しました。w4348、6636万棋譜から。
2023-05-15 AobaZeroの学習棋譜の強さは3630 ELOぐらいです。
2021-04-27 AlphaZeroの追試を終了して40 blockに移行しました。3982万棋譜。w3459が最後の20 blockでw3460から40 blockです。ありがとうございました!
更新履歴


2024年4月27日 00時22分現在(30分毎に更新)
過去1時間のユーザ数 3人、 74棋譜
過去1日間のユーザ数 4人、 1512棋譜
合計 67785528 棋譜。現在のweight番号= w4393。次は18.2時間後。貢献ありがとうございます!
過去 7000棋譜の平均手数 92.7手, 先手勝率 0.581, 引分率 0.076
過去 100万棋譜の平均手数 91.4手, 先手勝率 0.627, 引分率 0.064

棋力の推移。縦軸がELO。横軸は棋譜数(単位は万)です。右側の縦軸がfloodgate基準です。floodgate,vs Kristallweizen 1k - 500k,水匠5 200k - 300k は右側の縦軸です。 初期は一つ前のweightとの自己対戦を元にしています(左側の縦軸)。
2024-04-19 時点です。

AobaZero 1手800playout 対 水匠5(7.50)1手300kノード。互角局面集で先後入れ替え、合計800局で計測。Kristallweizen(4.83) 1手50kを2600点と仮定。 学習棋譜の強さは1手平均3200playoutで3741 ELOです。 平均1600だと3630でした。


将棋の知識を獲得していく過程を棋譜から確認できます

ノイズを含まない自己対戦の棋譜 ページの先頭が最新のweight同士の棋譜です。

序盤の手の変遷を見ることができます。


学習用に生成された棋譜

重みにつき1局の自己対戦の棋譜 ページの先頭が最新の棋譜です。2週間おきに更新予定。

上の棋譜は自己対戦の学習中の棋譜で「序盤30手まではひどい悪手を指す」ことがあります。
また「Rootの手にノイズを加えて最善手でない手でも選びやすい」ようになっています。
序盤30手まででひどい悪手を指してる場合はコメントで確認できます。
例えば、下なら本来なら△23歩打、が最善なのですが、4/800 の確率で△31銀を指してます。
-4231GI,'800,0023FU,731,1314FU,23,5152OU,7,4231GI,4


CSA選手権のアピール文書。2019年 2020年 2021年 2022年 第3回電竜戦 2023年 2024年
古いデータや感想など

棋譜

現時点での強化学習で作成した棋譜です。
xz形式で圧縮されています。1つ50MBぐらいです。2週間ごとぐらいで最新版を追加します。
0 から 4706 まで4707- 5070- 5388- 5635- 5909- 6111- 6161- 6320- 6462- 6617- 6644- 6678-

棋譜の
no000000000000.csa から
no000000121031.csa
まではニューラルネットワークを使わずにプログラムが乱数をPolicy,Valueに与えて800playoutで作った棋譜です。
実際にニューラルネットを使った棋譜は
no000000121032.csa
以降になります。
no000001017999.csa までは 64x15block、過去10万棋譜からのサンプリングで作った棋譜です。
no000001018000.csa からは 256x20block、過去50万棋譜からのサンプリングで作ってます。
棋譜の一括ダウンロードは山岡さん水たまりさんの解説をご覧ください。棋譜のフォーマット
ネットワークの重み

w0001 から w3702 までw3703- w3809- w3890- w4006-
w448まではネットワークのサイズは 64 x 15 block です。w449から 256 x 20 block です。
w3880まではv18をお使い下さい。w3881から構成が変わり互換性はありません。

w001  ...  64x15b,minibatch   64, 学習率 0.01,     wd 0.00005,   120000棋譜
w156  ...  64x15b,minibatch   64, 学習率 0.001,    wd 0.00005,   430000棋譜 
w449  ... 256x20b,minibatch   64, 学習率 0.01,     wd 0.0002,   1018000棋譜
w465  ... 256x20b,minibatch   64, 学習率 0.001,    wd 0.0002,   1180000棋譜
w775  ... 256x20b,minibatch 4096, 学習率 0.02,     wd 0.0002,   4220000棋譜 minibatchと学習率の変更
w787  ... 256x20b,minibatch  128, 学習率 0.0002,   wd 0.0002,   4340000棋譜 minibatchを128に
w1450 ... 256x20b,minibatch  128, 学習率 0.00002,  wd 0.0002,  10980000棋譜 学習率を下げる
w2047 ... 256x20b,minibatch  128, 学習率 0.000002, wd 0.0002,  16948000棋譜 学習率を下げる
w2250 ... 256x20b,minibatch  128, 学習率 0.000002, wd 0.0002,  18950000棋譜 勝率10%で投了するように
w2564 ... 256x20b,minibatch  128, 学習率 0.000002, wd 0.0002,  22120000棋譜 棋譜に勝率を追加
w2579 ... 256x20b,minibatch  128, 学習率 0.000002, wd 0.0002,  22272000棋譜 投了閾値の自動調節
w2750 ... 256x20b,minibatch  128, 学習率 0.000002, wd 0.00004, 23982000棋譜 weight_decayを変更
w3022 ... 256x20b,minibatch  128, 学習率 0.000002, wd 0.00004, 26706447棋譜 34285棋譜ごとにweight更新
w3077 ... 256x20b,minibatch  128, 学習率 0.000002, wd 0.00004, 28352543棋譜 過去100万棋譜
w3148 ... 256x20b,minibatch  128, 学習率 0.0000002,wd 0.00004, 30474874棋譜
w3299 ... 256x20b,minibatch  128, 学習率 0.0000002,wd 0.0002,  34987582棋譜
w3460 ... 256x40b,minibatch   64, 学習率 0.000001, wd 0.0002,  39825686棋譜 (AlphaZero追試終了)
w3616 ... 256x40b,minibatch   64, 学習率 0.0000005,wd 0.0002,  44461876棋譜
w3703 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  47075522棋譜 30手目までの着手選択の温度を1から1.3に変更
w3770 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  49046722棋譜 探索勝率と実際の勝敗の平均を学習
w3806 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  50130343棋譜 kldgain 0.0000013
w3881 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  52390111棋譜 NN構造をdlshogi風に。30手までの乱数性をValueで
w3933 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  53934959棋譜 policy出力温度を1.8。30手までの乱数性をAlphaZero方式に戻す。kldgain 0.000006
w3954 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  54545373棋譜 勝率の初期値を親ノードの勝率を元に。すべてのノードで訪問回数が10^nごとにdfpnで詰を。
w4062 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  57783603棋譜 歩角飛の不成を読まない。王手での素抜きや空き王手を強制補正。kldgainを0.000005
w4103 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  59029880棋譜 kldgainを0.00000075に。平均playout数が772から1568に。
w4177 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  61229235棋譜 序盤30手、40手までの投了、の棋譜の学習確率を下げ再学習した+64 ELO強い重みに差し替え。
w4201 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  61940158棋譜 cPUCTを動的に変更、王逃げ1手だけ延長で +25 Elo強く。棋譜にNNの生のValueとPolicyを記録。
w4254 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  63536791棋譜 互角の局面の学習確率を減らして +28 Elo強く。
w4348 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  66362880棋譜 1手の平均playout数を倍の3200に。
w4357 ... 256x20b,minibatch  128, 学習率 0.000002 ,wd 0.0002,  66658222棋譜 先手勝ち局面の学習確率を減らしました。先手勝率が0.72から0.63に。
 momentum 0.9 はすべて共通
 w448までは 2000棋譜ごと( 4000回学習ごと)にweightを更新。
 w449からは10000棋譜ごと(20000回学習ごと)にweightを更新。
 w787からは10000棋譜ごと(10000回学習ごと)にweightを更新。
w3022からは34285棋譜ごと(32000回学習ごと)にweightを更新。
w4177からは30000棋譜ごと(14145回学習ごと)にweightを更新。
w3077からは過去100万棋譜からサンプリング(今までは過去50万棋譜)。