Closed burokoron closed 1 year ago
爆裂駒拾太郎で使用している評価関数を強化学習を用いて調整する。学習棋譜数が十分な量であるかを再度調べる。
方法は一つ前の実験と同様とする。
棋譜を一つ前の実験の4000局分に加えて新たに4000局、合計8000局分作成した。そのうち、学習棋譜を10、30、50、70、90%の5パターン、検証棋譜を10%として学習を行い、MSEと爆裂転生太郎V1.0.1、爆裂転生太郎V2.0.1および爆裂転生太郎V2.0.2と探索深さ4での対局勝率を比較した。また、局面の重複は除外した。結果は以下の通りである。
学習棋譜数 | 学習局面数(データ拡張含む) | 検証棋譜数 | 検証局面数(データ拡張含む) | MSE | 勝率(V1.0.1)[%] | 勝率(V2.0.1)[%] | 勝率(V2.0.2)[%] |
---|---|---|---|---|---|---|---|
800 | (計測忘れ) | 800 | 117722 | 578866 | 27.8 | 18.1 | 11.7 |
2400 | 309288 | 800 | 117722 | 433534 | 67.8 | 54.8 | 36.8 |
4000 | 506228 | 800 | 117722 | 376308 | 75.2 | 51.1 | 49.5 |
5600 | 663130 | 800 | 117722 | 357643 | 73.2 | 51.5 | 36.6 |
7200 | 823740 | 800 | 117722 | 346292 | 74.4 | 56.8 | 38.9 |
学習棋譜数を増やすと、MSEおよび勝率が改善することがわかった。学習棋譜数7200局でもまだMSEが収束しきっていないので、棋譜を2倍以上の20000局分作成し、もう一度調査する。
爆裂駒拾太郎で使用している評価関数を強化学習を用いて調整する。学習棋譜数が十分な量であるかを再度調べる。
方法は二つ前の実験と同様とする。
棋譜を一つ前の実験の8000局分に加えて新たに12000局、合計20000局分作成した。そのうち、学習棋譜を10、30、50、70、90%の5パターン、検証棋譜を10%として学習を行い、MSEと爆裂転生太郎V1.0.1、爆裂転生太郎V2.0.1および爆裂転生太郎V2.0.2と探索深さ4での対局勝率を比較した。また、局面の重複は除外した。結果は以下の通りである。
学習棋譜数 | 学習局面数(データ拡張含む) | 検証棋譜数 | 検証局面数(データ拡張含む) | MSE | 勝率(V1.0.1)[%] | 勝率(V2.0.1)[%] | 勝率(V2.0.2)[%] |
---|---|---|---|---|---|---|---|
2000 | 259404 | 2000 | 281032 | 494404 | 67.5 | 47.5 | 39.1 |
6000 | 734474 | 2000 | 281032 | 369597 | 74.7 | 57.0 | 46.9 |
10000 | 1195810 | 2000 | 281032 | 347393 | 76.8 | 64.4 | 46.0 |
14000 | 1650730 | 2000 | 281032 | 339712 | 79.2 | 58.2 | 48.3 |
18000 | 2035434 | 2000 | 281032 | 335597 | 78.9 | 65.7 | 53.2 |
学習棋譜数を増やすと、MSEおよび勝率が改善することがわかった。ただし、MSEの減少や勝率の上昇が鈍化しているためこれ以上棋譜を増やしても効果は薄いこともわかった。今回の棋譜は爆裂訓練太郎V1.0.2を学習対象としているため、同一条件で棋譜生成した実験で比較する。爆裂転生太郎V1.0.1に対する勝率は80.9%から78.9%へ低下し、爆裂転生太郎V2.0.1に対する勝率は61.9%から65.7%へ上昇している。平均すると0.9%の上昇であるため、弱くはなっていないことがわかる。また、同一条件で生成された棋譜で学習された爆裂転生太郎V2.0.2に対しては勝率53.2%であり、こちらも同様に弱くなっていないことがわかる。K/27K/27PT/2型評価関数で問題なく学習ができたといえるため、この評価関数を採用したものを爆裂駒拾太郎V0.2.0(K/27K/27PT/2型第0世代評価関数)とする。
目的
爆裂駒拾太郎で使用している評価関数を強化学習を用いて調整する。まずは学習に必要な棋譜数を調べる。
方法
仮想敵を爆裂転生太郎V1.0.1と爆裂転生太郎V2.0.1、学習対象は入玉宣言勝ちを強制された爆裂訓練太郎V1.0.2とする。Thompson Samplingを用いた定跡作成と学習用教師データ作成を同時に行い、爆裂訓練太郎が思考した局面および評価値を学習データとする。対局はそれぞれの仮想敵との勝率に基づき選択率を決定する。各仮想敵(総数 $n$ )との勝率を $w_i$ とするとき、選択率 $R_i$ は以下の計算式で決定する。
$$ R_i =\cfrac{ \displaystyle \cfrac{1}{0.01wi} }{ \displaystyle \sum{i=1}^{n} \cfrac{1}{0.01w_i} } $$
学習はTensorFlowを用いて行う。勝ち(負け)読み切り局面における評価値は以下の局面における評価値6842に置換して学習する。
また、P型評価関数とKKPT型評価関数は単純計算で表現力が13122倍となるため、学習の収束に必要な棋譜が相対的に非常に多くなる可能性が高い。したがって、今回は先後の玉の位置をそれぞれ81パターンで表現するのではなく、盤面を自陣・敵陣・その他の3パターンに分割し、先後の玉の位置をそれぞれ3パターンで表現する。さらに手番は考慮しないこととする。この評価関数型はK/27K/27PT/2となるため、P型評価関数が表現できる情報を内包しつつ、表現力は13122倍から9倍まで抑えられる。これにより学習の収束に必要な棋譜がそこまで多くならないと想定できる。
まとめると学習条件は以下の通りである。
結果
棋譜を4000局分作成し、学習棋譜を10、30、50、70、90%の5パターン、検証棋譜を10%とし、MSEと爆裂転生太郎V1.0.1、爆裂転生太郎V2.0.1および爆裂転生太郎V2.0.2と探索深さ4での対局勝率を比較した。また、局面の重複は除外した。結果は以下の通りである。
結論
学習棋譜数を増やすと、MSEおよび勝率が改善することがわかった。学習棋譜数3600局でもまだMSEが収束しきっていないので、棋譜を2倍の8000局分作成し、もう一度調査する。