AlphaGoのポリシーネットワークとバリューネットワークの違い


25

GoogleのAlphaGoの概要(http://googleresearch.blogspot.co.uk/2016/01/alphago-mastering-ancient-game-of-go.html)を読んでいて、「ポリシーネットワーク」と「値ネットワーク」。高いレベルでは、ポリシーネットワークは移動を提案するために使用され、バリューネットワークは次の目的で使用されることを理解しています。「検索ツリーの深さを減らして[ゲームの終わり。」

これらの2つのネットワークは私にとって冗長なようです。価値ネットワークを使用してポリシーを整理していない場合、ポリシーネットワークは何をしますか?バリューネットワークがディープラーニングニューラルネットワークであることは明らかです。ポリシーネットワークは単なる理論上の抽象化であり、実際のニューラルネットワークではありませんか?値ネットワークのターゲット変数は勝ち負けのようです。ポリシーネットワークのターゲット変数はありますか?もしそうなら、それは何ですか?最適化しようとしているポリシーネットワークとは何ですか?

Natureで公開されたGoogleの論文の完全なPDFは、https//vk.com/doc-44016343_437229031?dl = 56ce06e325d42fbc72にあります。


簡単なメモ:ポリシーネットワークのターゲット変数は確率分布です。論文から:「このニューラルネットワーク(バリューネットワーク)は、ポリシーネットワークと同様のアーキテクチャを備えていますが、確率分布ではなく単一の予測を出力します」
Zimano

3
私のように他の誰かがこの古い質問に出くわした場合、AlphaGoの後継である「AlphaGo Zero」とその後継である「AlphaZero」は、結果が1つのネットワークのみをトレーニングすることで実際に冗長性を取り除くことができます。ポリシーネットワーク(可能な動きに対する確率分布を与える)とバリューネットワーク(ボードが与えられた場合に勝つ確率を与える)の両方の機能を果たします。こちらのブログ投稿:deepmind.com/blog/alphago-zero-learning-scratchと論文がリンクされています。
ケビン王

回答:


11

簡単に言えば、各ネットには、あなたが述べたように異なる目的があります。

  • バリューノードは、ツリー検索の深さを減らすためにリーフノードで使用されました。
  • ポリシーネットワークは、ノードからの検索の幅を減らすために使用されました(有望な即時アクションに向けて)。

一般に、値関数メソッドを使用して最適なポリシーを見つけるか、ポリシー空間で直接検索してパラメーター化されたポリシー関数を最適化できます(もちろん長所と短所があります)。それぞれの場合に関数近似器(ディープネットなど)を使用できます。私は主にあなたが政策ネットについて混乱していると思うので、これに私の答えを集中します。

ポリシーネットが最初でした:

人間がボード状態を与えられる可能性が高い動きを実行するように訓練されています(したがって、入力はボード状態であり、出力はその状態が与えられた各アクションの確率を示すヒストグラムです)。ネットは、状態からアクションへのマッピングの基礎となる確率関数を近似できます。結局のところ、利用可能なデータからポリシーを構築し始めると考えるのは理にかなっています。専門家の動きを使用した監督下のトレーニングの後、ポリシーネットはゲームを十分にプレイできます(ただし、マスターレベルからはほど遠い)。簡単に言えば、プロ選手の行動選択の一般的なパターンをキャプチャしようとしました。

次に、

以前に学習したポリシーを最適化するために、対戦相手自身とのゲームでトレーニングされました。今回は、その重みがREINFORCEアルゴリズムを使用して更新されました。これにより、予想される報酬の最大化に向けて、ネットパラメーターを更新します。最終的には、プロプレイヤーのようなアクションを選択するだけでなく、ゲームに勝つためのネットもあります(ただし、計画することはできません!)。

このステップの後、学習したポリシーのもう少しノイズの多いバージョンの値関数を回帰により近似しました(入力は州委員会であり、ゲームの結果を対象としています)。このネットワークを使用して、リーフノードの評価に影響を与えることができます。

概念的に言えば、ポリシーネットはアクションに対して確率を提供しますが、これは、ゲームに勝つために、良い状態になることを示すものではありません。AlphaGoにはいくつかの「ブラインドスポット」があり、トーナメント中にいくつかの本当に悪い動きだけでなく、人間が考えられなかった1つの例外的な動きも行いました。

最後に、これらのネットと組み合わせて計画アルゴリズム(MCTS)を使用できます。なぜこれらすべてのステップを踏んだのですか?簡単に言えば、「直感」のない単純なMCTSは失敗したでしょう。


Actor-Criticについて学び、純粋な価値ベースの手法とポリシーベースの手法との間のコスト/利益をどのように相殺するかについて、私はちょうどこの質問に戻りました。この答えは、この詳細を説明するのに最も近いと思いますが、David Silverの講義(www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/pg.pdf(lecture 7、it YouTubeでも利用可能です-youtube.com/…)。
ニールスレーター

しかし、純粋なMCTSベースのアプローチは成功していることが示されているため、より広いコンテキストでは、失敗したとは言いません。
ジマノ

1
私は囲gameのゲームの場合と、ゲームプレイのマスターレベルに到達することについてのみ言及しています。実際、David Silverは(他の研究者として)PhD以来、MCTSでGoのゲームの解決に取り組んでいました。しかし、上記の方法を組み合わせるまで、最高レベルで競うことはできませんでした。
コンスタンティノス

9

2つの異なるネットワークを理解するための私の簡潔な思考プロセスを以下に示します。

まず第一に、徹底的な検索を使用せずに最適なソリューション(または非常に最適に近い)を見つけることが目標であり、これは間違いなく困難です。

位置または状態ごとに、N回の移動が可能です。各移動では、完全な検索ツリーに独自の深さDがあります。理論的または数学的にすべてのパスを調べて、最適なソリューションを見つけることができます。ただし、完全な検索は行いたくありません。

ここで、近似アプローチを開発するための2つの質問がありました。

Q1。ポジションごとにNからいくつかの動きをスキップまたは無視するにはどうすればよいですか?(つまり、呼吸の減少)

Q2。最適なソリューションを見つけることなく、ゲームの最後まで歩くのではなく、検索ツリーの中間の深さで停止する方法はありますか?(つまり、深さの減少)

ポリシーネットワークは、主にNから不要な動きを除外するために設計されていますが、最適なソリューションを見つけることができます。ここで、このネットワークは最初は人間の専門家の動き、つまりSLに依存し、後でRLによって改善されます。

バリューネットワークは主に、完全な検索を行わずに勝率を見つけるために設計されています。

これらの2つのネットワークには、最適なソリューションを見つけるという共通の目標がありますが、移動の戦略的な選択ごとに、各ネットワークは異なる役割を果たします。

これが役立つことを願っています。まだ高いレベルにあると思います。


あなたの2つの方法の説明は非常に簡潔です。
ティム

6

OPはAlphaGoとalpha-betaを混同していたと思います。アルファベータ版では、実際にはポリシーネットワークを使用してプルーニングを支援しますが、ここでは使用しません。ここでも、アルゴリズムはモンテカルロツリー検索(MCTS)に依存しているため、枝刈りはありません。

私の答えが長すぎると思う人はだれでも要約セクションに飛ぶかもしれません。そこではなぜ2つのネットワークが冗長でないのかを述べています。

次の例では、アイデアをわかりやすくするためにいくつかの単純化を行います。

例:

あなたが2つの法的動きがある立場にあると想像してください。最初の動きはあなたにとって完全に失われますが、2番目の動きはあなたに勝利の利点を与えます。

  • 最初の動き:あなたのための強制的な損失
  • 2番目の移動:強制的な勝利

評価ネットワーク

Googleが提供する評価ネットワークが完璧だとしましょう。この例では、葉の位置を完全に評価できます。この例では、バリューネットワークを変更しません。

この例を単純化するために、バリューネットワークが以下を提供すると仮定します。

  • あなたにとって損失である葉の位置については-1000
  • あなたのための勝利である葉の位置のための+1000

ポリシーネットワーク

Googleが2つのポリシーネットワークを提供すると仮定しましょう。ポジションに対して生成される確率は次のとおりです。

  • ポリシー1:移動1で0.9、移動2で0.1
  • ポリシー2:移動1で0.2、移動2で0.8

この例では、最初のポリシーネットワークが誤った事前確率を与えいることに注意してください。移動1に対して0.9を与えますが、これは負けです。Googleでさえ完璧なポリシーネットワークをトレーニングできないため、これは問題ありません。

最初のポリシーネットワークで遊ぶ

AlphaGoは、Monte-Carloを使用してシミュレーションを生成する必要があり、移動1または2を選択する必要があります。AlphaGoは、一様分布のランダム変数を描画し、選択します。

  • 乱数が0.9以下の場合は1を移動します
  • 乱数が0.9より大きい場合は2を移動します

そのため、AlphaGoは(最初のシミュレーションで)負けた動きを選んでシミュレートします。最初のシミュレーションでは、値ネットワークを使用してシミュレーションのスコアを取得します。論文では、次のとおりです。

ここに画像の説明を入力してください

このシミュレーションは損失につながるため、この値は-1000になります。

ここで、AlphaGoは2番目のシミュレーションを生成する必要があります。繰り返しになりますが、最初の動きは選択する可能性がはるかに高いでしょう。しかし、最終的に、2番目の動きは次の理由から選択されます。

  • 2番目の動きの事前確率は0ではなく0.1です。
  • AlphaGoは、あまり調査されていない動きを試すことをお勧めします。論文では、これは次の方程式によって行われます。

ここに画像の説明を入力してください

Nは、その移動で検索された移動の数であり、分母にあることに注意してください。最初の動きが検索される可能性が高いほど、u関数は小さくなります。したがって、AlphaGoは実際に次の式で移動を選択するため、2番目の移動を選択する確率が向上します。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

これが重要な方程式です。注意深く見てください:

  • P事前確率の用語があります(ポリシーネットワークによって与えられます)
  • Q評価スコア(バリューネットワークによって与えられる)の用語があります。

これで、2番目の動きが最終的に選択されることがわかりました。それが起こると、値ネットワークは+1000を与えます。これは増加しQ、2番目の動きが後のシミュレーションで選択される可能性が非常に高くなります。

十分なシミュレーションを考えると、シミュレーションのために2番目の動きが選択される回数は、最初の動きが選択される回数よりも多くなければなりません。

最後に、AlphaGoが決定した動きは次のとおりです(論文から引用)。

検索が完了すると、アルゴリズムはルート位置から最も訪問された動きを選択します。

2番目のポリシーネットワークで遊ぶ

2番目のポリシーネットワークは、最初にポリシーネットワークによって与えられる事前確率が正しいため、移動2を選択するのに必要な反復回数が少なくなります。

備考

ここでのすべてはBayesian分析に非常に似ています。事前の確率(ポリシーネットワークによって与えられる)で開始し、その後、確率分散(値ネットワークによって与えられる)を移動するためのデータを生成します。

まとめ

  • ポリシーネットワークを使用して事前確率を生成し、モンテカルロ検索で選択すべき動きを導きます
  • 値ネットワークは、ポリシーネットワークを検証するためのデータを生成するために使用されます。ポリシーネットワークが悪い場合、AlphaGoは収束するためにより多くのコンピューティングリソースを必要とします(もしあれば)。
  • ベイジアン分析のように考えることができます

これにより、内部メカニズムのより深い洞察が得られると思います。2つのネットワークがなぜ説明されているのか、まだわかりません。私が抱えている問題は、「評価ネットワークが完璧であると仮定する」ことです。その場合、実際にはポリシーネットワークは冗長です。(考えられるすべての動きについて)1つの動きを先に見て、最も価値の高いネットワーク評価を持つものを選びます。もちろん、バリューネットワークは完全ではありません。ゲームがさらに進むにつれて、より正確になると思います。。。しかし、それがどれほど真実/有用であるか、またはそれがこの答えを完了するかどうかはわかりません。
ニールスレーター

@NeilSlater OK。ネットワークは完璧ではありませんが、ここにある理由はまだ良いです。MCシミュレーションがもっと必要だからです。
SmallChess

@StudentT主要な方程式のいくつかの素晴らしい説明。ちょっとした変更を1つ行います。モンテカルロツリー検索での位置を理解するために、「10の動きを見る必要がある」と言うのはあまり意味がありません。MCTSは深さ優先の証明番号検索であり、チェスを反復的に深める場合のように、固定の深さに達することはありません。でも、私たちにゲームが終了する前に、ノードの評価を可能バリューネットワークで、など、我々はまだ幅優先方法でこれらに到達していない、とノードのない最小-最大評価はありません
イムラン

@Imran投稿を自由に編集してください。
-SmallChess

3

ポリシーネットワーク:ゲームに特定の入力を与えることにより明確な出力を与えることを学習するネットワークは、ポリシーネットワークとして知られています。

バリューネットワークバリューネットワークは、現在の状態の予想累積スコアを計算することにより、ゲームの状態に値/スコアを割り当てますs。すべての州はバリューネットワークを通過します。より多くの報酬を得る州は、明らかにネットワークでより多くの価値を得る。

アニメーションの理解を深めるここに行く:強化学習におけるポリシーネットワークとバリューネットワーク

ここに画像の説明を入力してください


0

私が理解していることから、違いは出力にあります。ポリシーネットワークが可能な動きにわたって確率分布を出力する場合、バリューネットワークは実際の値を返します。この値は、このボード構成で勝つ確率として解釈できます。そこから、モンテカルロツリー検索は、上位K値のネットワーク出力を取得することにより、上位Kの移動を取得し、検索ツリーを再度絞り込むことで実行されます。

私が間違っている場合、私を修正する義務を感じます。


2
あなたは間違ってはいませんが、これが質問に答えるとは思いません。OPは、RLの値ベースモデルとポリシーベースモデルの違いを認識しているようです。実際、2つのアプローチの出力は異なります。ただし、両方ではなくどちらか一方を見る方が一般的であり、2つのモデルは通常「Value_maxarg(S ')== Policy_maxarg(S、A)」で冗長です。ここで、Sは現在の状態、Aは取り、S 'は結果の状態です。つまり、出力が異なっていても、より一般的なRLセットアップの2つのネットワークは同じ結果を生成するだけです。
ニールスレーター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.