個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。MCTSnets」についてです。Redditの投稿が簡潔に要約しています。ZeroのPUCTアルゴリズムは、PolicyとValueと訪問回数を使って、固定の計算式で算出した値から手を選択していますが、埋め込み、シミュレーション、バックアップ、および読み出しという4つのニューラルネットワークを使用してアクションを選択します。埋め込みベクトルとして出力します。埋め込みベクトルとは、ある次元で構成される情報の各次元の成分を異なる次元のベクトルとして分散表現したものです。(Word2Vecで単語の埋め込みベクトルとか行うやつです。入力として各ノードでアクションを選択する際の確率分布を出力します。入力は、自ノードの現在の統計情報hと、一つ下のノードの統計情報hと報酬rと、選択したアクションです。M回シミュレーションを行い、各ノードで統計情報を更新します。使ってアクションを選択します。ルートのバックアップネットワークの出力を入力として、MLPでアクションを出力します。この図がうまく表現しています。学習方法MCTSnetの学習方法は、MCTSで長時間思考した教師ありデータを使用して、MCTSnetの出力の対数尤度を最小化するように学習します。(論文の3.6の内容は理解できませんでした。実験には、「倉庫番」というゲームが使われています。MCTSnetを使うと25シミュレーションで、MCTSの500シミュレーションと同等の成功率になっています。感想PUCTの代わりにニューラルネットワークを使うことで少ないシミュレーションで高い精度を上げています。計算コストはバックアップのフェーズでニューラルネットワークの計算が増えるのでPUCTよりも高くなります。計算コストに見合う精度向上なのかは論文では特に触れられていませんでした。学習方法については、正直難しくて理解できませんでした。その5(アーキテクチャ)しばらく空きましたが、続きです。»プロフィールid:TadaoYamaokaスマホアプリ開発とディープラーニングを使った将棋ソフトの開発を行っています。)はてなブログをはじめよう!TadaoYamaokaさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。