木探索についての考察2

 以下の続き。

 木探索がそもそもどういうものであるかと考えると、状態をノード、行動をエッジとして構築されるグラフ上を遷移しつつ、ノード上の価値を更新していく作業だと思われる。モンテカルロ木探索の選択ステップに「一個親のノードへ戻る」という選択肢を加えれば、理論上は木の自由な遷移ができるので、たとえば以下のようなことができる。

 ステップ1

 ステップ2

 ステップ3

 ステップ4

 結局各ステップで解きたい問題は「木の遷移履歴が与えられるので、現ノードを適切に評価し次に遷移するエッジを決定する問題」としてまとめられそうだ。ここで、木の遷移履歴は状態を訪問順に並べた単なる時系列入力として扱える。(無茶かなぁ……)。状態の分散表現取得や、状態価値の評価にはAlphaZero的なモデルの分岐直前までの部分などを使うとして、次のようなやり方を今のところ想定している。

f:id:tokumini:20200704173449p:plain

 木のような句構造を持つことが多い自然言語文の処理ができることから、LSTMなどには時系列入力から木構造的なものを読み取る力があることが示唆される。

 なので多少はこういう無茶なことをやっても効果があるのではないかという気はする。少なくとも探索なしよりは強くなるんじゃないかと願望込みで。いや、実際のところはあまり上手くいく気はしないが……。とりあえず致命的な勘違いがなければこの方針で実装をしてみる予定。

 あれ、しかしこれどうやって学習させるんだ? 学習方法の問題を完全に見落としていた。各ステップで取るべき正解はわからないのでラベルは作れなくて、方策勾配法すら適用できない気はする。MCTSnetと同じトリックを使えばなんとかなる? ちゃんとMCTSnetの論文を読み返してみないとな……。

 というところまで。