【コンピュータオセロ1】指し手選択の温度について

背景1

 手法の有効性がゲーム依存ではないことを主張するため、そして実験サイクルを高速に回せるという利点があるため、オセロでも実験をしていく。

 オセロは将棋より簡単だろうと勝手に判断してやや小さめのネットワークで学習をさせている。具体的にはチャンネル数を128→64、ブロック数を10→5にしている。さらに盤面の拡張も左右反転だけでなく盤面の回転も導入しているため、生成速度が非常に速い。0.5Mステップの学習が18時間ちょいで終わる。対戦による評価も含めておおよそ1回の実験が1日で終わるため、様々な条件を探索しやすい。

背景2

 将棋の方では、そこそこ強いパラメータが得られているものの、穴熊を学習できず弱いという問題が発生している。

 実際、学習データ生成における自己対局で穴熊のような局面は一切現れていない。

 これは強化学習における探索が不足している問題だと思われる。もっと実践的に言えば、指し手のランダム性が低すぎるということになる。

 ランダム性の入れ方として、AlphaZeroでは30手までについて探索回数を正規化した割合で行動選択をしている。しかし、この方法では何度か探索した結果悪いと判明した手についてもある程度の確率が生じてしまう点が気になる。

 Miacisでは、ターン数の制限は入れず、探索した結果得られた各行動の価値にソフトマックス関数をかけた値を確率として行動選択をしている。このとき、ソフトマックス関数には温度を導入している。

 ある局面を(800回)探索し、行動 iの価値が Q_iであるとする。このとき行動 iを選ぶ確率を、温度 tを用いて


p_i = \frac{\exp{(Q_i / t)}}{\sum_{j} \exp{(Q_j / t)}}

とする。 tは大きくすればランダム性が上がり、小さくすれば最大価値を持つ行動を選ぶ確率が高くなる。今まで将棋では t = 0.01で行っていたが、今回はこれについて調査してみる。

背景:補足

 将棋における調査

学習

 AlphaZeroと同様の強化学習を行う。学習のコードはほぼ将棋と共通となっている。温度を t = 0.01, 0.025, 0.05, 0.1の4通りで試した。

対戦相手

 オセロでの対戦相手としてはEdaxを用いる。

 対局条件を揃えるためにMiacis側でダウンロードスクリプト対局スクリプトを書いている。

学習結果

f:id:tokumini:20200430145233p:plain

 オセロと将棋では事情が違うかもしれないが、温度が t = 0.025, 0.5の方が今までの t = 0.01より良い結果となった。将棋でももう少し大きい温度で実験し直してみるべきかもしれない。