要約
Value分布の学習にTwo-hotエンコーディングを試してみたけど特に明確な効果はなかった。
背景
を読んでいたところ、Criticの学習でtwohotエンコーディングをすると書いてあった。
これ自体はこの論文の新規性というわけではないはずで、実際に33から36あたりの参考文献が引かれているのでそれらに明確に同じものがあるか、少なくともカテゴリカルDQNの元論文である33にある式をデルタ関数に対して適用すると自然にこうなるものでもある気がする。
今まで自分のソフトウェアでは、Valueがどこのカテゴリカル分布のうちどこのビンに入るかを計算し、そのビンに確率1の分布とするonehotエンコーディングでラベルデータを作成していたので、今回はそれをtwohotエンコーディングに変えて学習をした。
変更の概要
ある価値をカテゴリカル分布の教師ラベルとするとき、が分類される一番近い2つのビンについて、期待値がちょうどになるようにその2つへの確率を上手く割り当てるようにする。
たとえばであれば、以前のonehotエンコーディングだと青い1つのバー、twohotエンコーディングだとオレンジの2つのバーで表現されることになる。
twohotエンコーディングの方がちゃんと教師ラベルの期待値がそのものとなるので多少良いはず。
結果
学習結果
特に差はなさそう。
対局結果
水匠ver.5のNodesLimit=100000と対局させた。
エンコーディング | 対局数 | 勝数 | 引分数 | 負数 | 勝率 | 相対Eloレート |
---|---|---|---|---|---|---|
onehot | 490 | 235 | 0 | 255 | 48.0% | -14.2 |
twohot | 500 | 276 | 5 | 219 | 55.7% | +39.8 |
レート差50程度。正直有意差があるのかよくわからない。
悪化はしていなさそうなので、とりあえずmasterブランチには投入しておくことにする。