先手勝率が5割になるように調整した重みのほうが +60 ELO ほど強い?
| 投稿日 | : 2023/12/11(Mon) 15:57 |
| 投稿者 | : 山下 |
| 件名 | : Re: 先手勝率が5割になるように調整した重みのほうが +60 ELO ほど強い? |
| 投稿日 | : 2023/12/25(Mon) 19:33 |
| 投稿者 | : 山下 |
| 参照先 | : |
その後、追試したのですが、先手勝ちの局面を減らして勝率5割の評価関数を作っても明確に強い、
という結果は得られませんでした。
前回の結果はKLDの計算で一部の値がINT_MAXを超えてたのが原因でした。
対水匠5(7.50,1手4k)と1手100playoutの勝率。互角局面(24手目まで)利用。192x10block。
Raw勝率 勝 分 敗 局数(宣 千 宣) 先手勝率 勝率 95% ELO 先手勝ちの局面の選択倍率
58.8% 1048-17-1335 2400 (10-14-3)(s=1173-1210,0.492), 0.440(0.020)( -41) 1.0
40.1% 909-14-1477 2400 ( 6-14-4)(s=1187-1199,0.497), 0.382(0.019)( -83) 0.1
47.0% 961-15-1424 2400 ( 5-15-9)(s=1183-1202,0.496), 0.404(0.020)( -67) 0.2
46.8% 1010-15-1375 2400 (11-15-4)(s=1178-1207,0.494), 0.424(0.020)( -53) 0.3
50.2% 1076-18-1306 2400 (10-17-1)(s=1251-1131,0.525), 0.452(0.020)( -33) 0.41
56.9% 1025-15-1360 2400 (12-14-8)(s=1172-1213,0.491), 0.430(0.020)( -48) 0.6
64.9% 1035-18-1347 2400 (11-18-6)(s=1174-1208,0.493), 0.435(0.020)( -45) 0.9
という結果は得られませんでした。
前回の結果はKLDの計算で一部の値がINT_MAXを超えてたのが原因でした。
対水匠5(7.50,1手4k)と1手100playoutの勝率。互角局面(24手目まで)利用。192x10block。
Raw勝率 勝 分 敗 局数(宣 千 宣) 先手勝率 勝率 95% ELO 先手勝ちの局面の選択倍率
58.8% 1048-17-1335 2400 (10-14-3)(s=1173-1210,0.492), 0.440(0.020)( -41) 1.0
40.1% 909-14-1477 2400 ( 6-14-4)(s=1187-1199,0.497), 0.382(0.019)( -83) 0.1
47.0% 961-15-1424 2400 ( 5-15-9)(s=1183-1202,0.496), 0.404(0.020)( -67) 0.2
46.8% 1010-15-1375 2400 (11-15-4)(s=1178-1207,0.494), 0.424(0.020)( -53) 0.3
50.2% 1076-18-1306 2400 (10-17-1)(s=1251-1131,0.525), 0.452(0.020)( -33) 0.41
56.9% 1025-15-1360 2400 (12-14-8)(s=1172-1213,0.491), 0.430(0.020)( -48) 0.6
64.9% 1035-18-1347 2400 (11-18-6)(s=1174-1208,0.493), 0.435(0.020)( -45) 0.9
先手が勝った局面の学習割合を減らして先手勝率が5割程度になる重みの方が+60 ELOほど強い?かもしれません。
下は先手が勝った局面の学習割合を変えた場合のELOです。
先手の勝ち局面を0.2から0.3倍と下げた場合に、+57,+56と一番強く、初期局面の勝率も50%程度になっています。
0.9倍から1.1倍とほぼそのままだと-6、-7と60 ELO近く弱くなってます。
対水匠5(7.50,1手4k)と1手100playoutの勝率。互角局面(24手目まで)利用。192x10block。50万棋譜(4447万局面)をミニバッチ256で10万回(2560万局面)学習。
Raw勝率 勝 分 敗 局数(宣 千 宣) 先手勝率 勝率 95% ELO 先手勝ちの局面の選択倍率
75.0% 278- 6-516 800 (2- 6-1)(s=410-384,0.516), 0.351(0.033)(-106) (1.0) この重みから10万回追加学習
40.3% 414- 8-378 800 (2- 8-0)(s=383-409,0.484), 0.522(0.034)( 15) 0.1
50.5% 463- 6-331 800 (7- 6-1)(s=388-406,0.489), 0.583(0.034)( 57) 0.2
51.8% 461- 7-332 800 (5- 7-1)(s=411-382,0.518), 0.581(0.034)( 56) 0.3
54.7% 444-10-346 800 (4-10-3)(s=395-395,0.500), 0.561(0.034)( 42) 0.5
61.0% 421-12-367 800 (4-11-3)(s=389-399,0.494), 0.534(0.034)( 23) 0.6
64.7% 427- 8-365 800 (6- 8-1)(s=382-410,0.482), 0.539(0.034)( 26) 0.7
65.5% 389- 7-404 800 (2- 7-2)(s=395-398,0.498), 0.491(0.035)( -6) 0.9
68.2% 387- 9-404 800 (2- 9-1)(s=396-395,0.501), 0.489(0.034)( -7) 1.1
63.1% 353- 7-440 800 (3- 7-1)(s=382-411,0.482), 0.446(0.034)( -37) 1.3
Raw勝率、は平手の初期局面でNetworkのValueの先手勝率です。
ちょっと高めなのは先手勝率75.0%のweightから追加学習させたせいと、初期局面の学習割合が低いためと思われます。
ただ、これは学習回数が少ない、4分の1の小さい重み、なので実際の差はもっと小さくなるか逆効果かもしれません。
学習は192x10blockで65860万棋譜からの50万棋譜をミニバッチ256で10万回学習させた重み、から
先手勝ちの局面の割合を変えて追加学習させた結果です。
学習率は最初が0.01から0.001、追加が0.001から0.0001のcos annealingです。
追加学習させてるのは、この方が学習ごとの変動が小さいためです。
局面の選択はKLD(Policyの分布と探索回数の分布の違いが大きい局面を学習しやすく)や
局面の勝率が0,80付近のものを選択確率を上げ、40手以下での投了した棋譜の確率を下げ、
40手前までの手数が少ない序盤ほど確率を下げてます。
これらにさらに追加で先手勝ちの割合を変化させています。
AobaZeroで互角の局面の学習を減らして+28 ELO
http://www.yss-aya.com/bbs/patio.cgi?read=48&ukey=1
勝率が偏ってると弱くなるのは以下の理由が考えられそうです。
・MCTSは勝率が高すぎる、低すぎる場合は2つの手を区別できない
・PUCTは勝率が低すぎる場合は全部の手を調べてしまい、効率が悪い
・自己対戦なので、後手が実際以上に局面を悲観してる(簡単な手の読み抜けがあっても、どちらも読み抜けてそのまま)。
試したきっかけは48さんとの会話でした。
> 再稼働しました。先手勝率が上がってきていますね。
https://twitter.com/bleu48/status/1733305158619299904
ただ先手勝ちの割合を減らすと先手勝ちの棋譜が有効に使われないので
後手のplayout数を増やすか、Aoba駒落ちのようにRootの温度を調節して勝率5割の棋譜を作るようにした方がいいのかもしれません。