前回エージェントの強化学習に対して、バトル途中でのHPの増減などに応じた補助報酬を導入し、定量的には強さが向上することを確認しました。 今回は、補助報酬の大きさなどを調整してさらに強くできないか実験します。あらかじめ結果を述べると、前回のパラメータが最善でした。
まずは、 (HPに対する報酬の係数), (瀕死に対する報酬の係数)を同じ値にする条件で、いくつかの値を試しました。
表に示す5通りの条件のモデルを学習(1つはランダム)、レーティングバトルさせ、平均レートを計算しました。
モデルID | 平均レート | |
---|---|---|
- | ランダム | 1306 |
0, 0 | 6ee | 1533 |
0.125, 0.125 | 75f | 1540 |
0.25, 0.25 | fdf | 1563 |
0.5, 0.5 | 29c | 1559 |
前回のパラメータである、が最も強いという結果でした。とは僅差です。
次に、パラメータのバランスを変えた場合で比較しました。
モデルID | 平均レート | |
---|---|---|
- | ランダム | 1308 |
0.125, 0.125 | 75f | 1538 |
0.25, 0.25 | fdf | 1566 |
0.5, 0 | c69 | 1558 |
0, 0.5 | 1da | 1527 |
この実験でも、が最も強いという結果でした。のほうがより強いことも分かります。この理由として、HPを基準にするほうがより短い期間で報酬が得られるため学習しやすいという点が考えられます。
さらに、補助報酬のアルゴリズムを変更したものを2つ試しました。1つ目は、相手に関する値だけを計算に含めるものです。すなわち、とします。自分のポケモンのHPが減っているときに、倒されて負の報酬を受けるのを回避するために無駄に交代するという挙動を避ける目的です。
アルゴリズム | モデルID | 平均レート |
---|---|---|
- | ランダム | 1334 |
変更前 | fdf | 1588 |
相手状態のみの補助報酬 | 924 | 1578 |
変更しないのが良いことがわかりました。2つ目のアルゴリズムは、ゲーム終了時に今までの補助報酬を打ち消す補助報酬を与えるものです。すなわち、バトル終了時の報酬として、勝敗によるものに過去ターンの補助報酬の総和の符号を反転させたものを加算します。目的は、僅差で勝利した場合も圧勝した場合もバトル全体での合計の報酬を同じにすることにより、被害の大きさにかかわらず勝敗に注力させることです。
アルゴリズム | モデルID | 平均レート |
---|---|---|
- | ランダム | 1335 |
変更前 | fdf | 1584 |
補助報酬の打ち消し | 412 | 1581 |
この手法は、結果にほとんど影響がないようでした。
補助報酬の調整を試みましたが、今回試した範囲ではオリジナルの手法より良い結果は得られませんでした。今後、他の側面から改善を試みます。