コンピュータ将棋や囲碁の掲示板
TOP > 過去ログ > 記事閲覧
fld_nor.gif dlshogiのモデルをAobaZeroの棋譜で作ってみました
投稿日 : 2024/03/08(Fri) 18:03
投稿者 山下
AobaZeroと同じ20ブロック256filterのResNetでNPSは3倍ほど速いです。
学習速度は5.7倍!も速いです。
またミニバッチもAobaZeroが256なのに対して2048で動くのもすごいです(3090で)。
Caffeを使ってるのもあり色々時代遅れな感じですね。

1手1playoutだとAobaZeroより186 ELO弱いです。
1手100playoutだと100 ELO弱い、で差は小さくなります(双方minibatch=1で)。
1手1秒だと3倍のNPS差もあり +37 強くなります(mb=7 と mb=256)。

w4357 vs dlshogiのAobaZeroモデル
 勝 分 敗 局数 (宣 千 宣)      先手勝率    勝率   95%   ELO
559-74-167 800 (0-74-0)(s=374-352,0.515), 0.745(0.028)( 186) 1手1playout
505-16-279 800 (0-16-2)(s=390-394,0.497), 0.641(0.033)( 100) 1手100playout
230-24-288 542 (0-24-1)(s=251-267,0.485), 0.446(0.041)( -37) 1手1秒

floodgateで1手100kだとdlshogiのdr2より160弱いです。
棋譜生成と同じ棋力の AobaZero_w4357_kld_avg_3200p よりは+120強いですが
探索ノード数が30倍を考えると微妙な感じです。
setoption name Random_Ply value 16
で16手までで勝率1%未満なら手を変えるオプションを入れてます。

                                 ELO
dlshogi_dr2_randply16_100k      4080
AobaZero_dlshogi_r16_0301_100k  3917
AobaZero_w4357_kld_avg_3200p    3799
http://wdoor.c.u-tokyo.ac.jp/shogi/view/show-player.cgi?event=LATEST&filter=floodgate&show_self_play=1&user=AobaZero_dlshogi_r16_0301_100k&range=365

floodgateの3500以上のテスト局面(floodgate_test_2017-2018_r3500_eval5000.hcpe)の正解率は
ValueはそれなりですがPolicyは低いです。

モデル           モデルサイズ        Policy正解率 Value正解率
dlshogi dr2_exhi 15ブロック224フィルタ  0.523    0.761
dlshogi pre28    20ブロック256フィルタ  0.538    0.768
dlshogi pre38    20ブロック256フィルタ  0.541    0.769
dlshogi pre33    30ブロック384フィルタ  0.560    0.776   2022年
dlshogi          30ブロック384フィルタ  0.559    0.777   WCSC 33,2023年
dlshogi dr1      10ブロック192フィルタ? 0.472    0.749
GCT              10ブロック192フィルタ? 0.473    0.750
dlshogi          10ブロック192フィルタ  0.469    0.724  WCSC31,2021年
PAL              20ブロック256フィルタ  0.508    0.765  WCSC31,2021年
AobaZero         20ブロック256フィルタ  0.489    0.765

1手1playoutでかなり弱いので、多分学習をどこか間違えてる気がします。
「--temperature 0」で分布でなく最善の指し手のみを学習させてみてもほぼ同じでした。

学習は4000万から6690万までの2690万棋譜から5億7000万局面を抽出して
ミニバッチ2048で学習率0.1から0.001までCosine Annealing で学習させました。
通常のAobaZeroの学習と同じように学習される局面を選択し(先手勝率を5割に
なるように先手勝ち局面の選択割合を減らす、序盤の学習確率を減らす、
勝率が80%程度の手が8倍程度で学習されやすく、など。全局面の50%ほどが
選択されるぐらいで)、それをcsa形式に変換した後、
aoba_to_hcpe3.py を改造してhcpe3形式に変換しています。
「強い将棋ソフトの創りかた」のcolabのページの train.sh を利用しています。

第7章のノートブック モデルの学習
https://colab.research.google.com/github/TadaoYamaoka/ShogiAIBook2/blob/main/notebook/train.ipynb

学習モデルはこちらです。resnetの20ブロック、256フィルターでほぼAobaZeroと同じです。
20240306_081646_model_resnet20x256_swish_012.onnx
https://drive.google.com/file/d/1E_7tYTWvI56yaXCCn1cmbMJPpO0oKHdj/view?usp=sharing
件名 Re: dlshogiのモデルをAobaZeroの棋譜で作ってみました
投稿日 : 2024/03/14(Thu) 19:04
投稿者 山下
参照先
局面選択なしで学習させてみました
棋力は1手1playoutではほぼ同じ弱さで、1手100playoutでは151差と明らかに弱いです。
学習が上手く行ってる、とすると学習局面の選択はvalueの精度に影響を与えてるのかもしれません。

w4357 vs dlshogiのAobaZeroモデル
 勝 分 敗 局数 (宣 千 宣)      先手勝率    勝率   95%   ELO
559-74-167 800 (0-74-0)(s=374-352,0.515), 0.745(0.028)( 186) 1手1playout   hcpe3
505-16-279 800 (0-16-2)(s=390-394,0.497), 0.641(0.033)( 100) 1手100playout,hcpe3
230-24-288 542 (0-24-1)(s=251-267,0.485), 0.446(0.041)( -37) 1手1秒        hcpe3
528-83-189 800 (0-83-0)(s=367-350,0.512), 0.712(0.029)( 157) 1手1playout   局面選択なし,hcpe
640-16-144 800 (0-16-0)(s=408-376,0.520), 0.810(0.027)( 251) 1手100playout 局面選択なし,hcpe

学習は4000万から6690万までの2690万棋譜を100万棋譜単位でhcpeに変換して
変換後の2111万棋譜(15億2712万局面)を
ミニバッチ2048で学習率0.1から0.001までCosine Annealing で学習させました。
局面の選択はなく、そのままです。5手詰での判定、は aoba_to_hcpe.py で行われ
dlshogiの学習で同一局面を1局面の圧縮してるので実際の学習局面数は11億9904万局面です。
22%ほどが同一で消えています。
件名 Re: dlshogiのモデルをAobaZeroの棋譜で作ってみました
投稿日 : 2024/03/10(Sun) 23:14
投稿者 山下
参照先
use evalfixで学習させていました。
現在、局面選択なしでhcpe3でなくhcpeに変換して学習させていますが
それだとevalfixが動作しない表示が出ています。
aoba_hcpe/40000000_all.hcpe, skip evalfix
学習後に確認してみます。棋譜は1万棋譜単位だと小さいので100万棋譜単位で変換しています。
件名 Re: dlshogiのモデルをAobaZeroの棋譜で作ってみました
投稿日 : 2024/03/10(Sun) 16:06
投稿者 tns
参照先
evalfixも有効ですかね?
以前1エポックごとに読み込むファイルの数を増やすと精度が少し上がったので、evalfixの効果なのかなと予想しています。
局面選択の有無、evalfixの有無で比較しても面白いかもしれません。

- WEB PATIO -