先日の記事に書いたが、AlphaZeroは自己対局時にノードの再利用を行っている。
dlshogiでは、先手が探索した結果を後手が利用することになるため(逆も同様)、先手と後手の探索のバランスが崩れるため、ノード再利用を行わず各手番でハッシュをクリアしていた。
しかし、先日の記事で考察した通り、ルートノードをクリアすることで、ノードを再利用しても先手、後手の偏りはそれほど問題にならないと思われる。
そこで、実際にノードを再利用しない場合とする場合で、精度を比較してみた。
測定条件
測定結果
train loss | policy一致率 | value一致率 | |
---|---|---|---|
ノード再利用なし | 3.7723558 | 0.06413719 | 0.5564077 |
ノード再利用あし | 3.214862 | 0.11954415 | 0.5857407 |
考察
ノード再利用ありの場合、policy、valueともに大幅に一致率が高くなった。
ノード再利用により、より深くまで探索できるようになったことから、より精度が高くなったと考えられる。
先手と後手の偏りが問題になるなら、valueの精度は落ちるはずだが、そのようなことは起きていない。
自己対局におけるノード再利用は精度向上に寄与することがわかった。
備考
初期モデルから学習するとlossがnanになったが、GradientClippingを追加することで学習できるようになった。