AlphaZeroは、これまでに見たことのないポジションを評価することをどのようにして学びますか?


12

回答からフォローアップ:

AlphaZeroを理解する

私の質問は、ニューラルネットが遭遇していない位置で何をすべきかを「学習」する方法です。実際のAZが、訓練されたニューラルネットからのバイアス+重みを使用してMCTSを実行するとすると、ニューラルネットがこれらの値を計算する方法にステップを押し戻すだけです。人間の知識がなく、ランダムな自己プレイを介して行われた場合、これまでに見たことのないポジションにどのように重みを付けるかをどのように決定しますか?

回答:


6

チェスエンジンの評価関数は、ニューラルネットまたは明示的なコードとしてインスタンス化されているかどうかにかかわらず、常に任意のボード位置に値を割り当てることができます。ボードポジションを与えると、ゲームでは決して発生しない馬鹿げたポジションであっても、それが1人のプレイヤーまたは他のプレイヤーにとってどれほど有利であるかを表す数を吐き出すことができます。チェスのボードポジションの数は手に負えないほど巨大であるため、トレーニングはゲームツリーの極小サンプルでのみ実行できます。エンジンは、以前に計算されたボード位置の値を単に呼び出すだけでなく、ピースの配置に基づいて計算を実行しています。非ニューラルネットの例の場合、チェスエンジンの評価の一部は、側面の各駒の値を合計し、対戦相手の駒の合計値を減算することです。そして、

エンジンがトレーニングされていない場合、評価関数のパラメーターは(通常)ランダムな値で始まるため、位置に割り当てられる値もランダムになる可能性があります。トレーニングフェーズの目標は、エンジンのパラメーターを調整して、プレイヤーの勝利状態である可能性のあるボードポジションにハイスコアを割り当てることです。

AlphaZero(3ページ)に関する論文から:

AlphaZeroのディープニューラルネットワークのパラメーターは、ランダムに初期化されたパラメーターから始めて、自己プレイ強化学習によってトレーニングされます。MCTSが両方のプレーヤーの動きを選択してゲームをプレイします。ゲームの終了時に、端末の位置がゲームのルールに従ってスコアリングされ、ゲームの結果が計算されます。負けは-1、引き分けは0、勝利は+1です。ニューラルネットワークのパラメーターは、予測結果とゲーム結果の誤差を最小限に抑え、ポリシーベクトルと検索確率の類似性を最大限に高めるように更新されます。

[引用から削除された数学記号]

要約すると、トレーニング中、AlphaZeroは自身と対戦しました。ゲームが終了すると、ゲームの結果とゲームの進行状況における予測の精度を使用して、次のゲーム中にニューラルネットがより正確になるように調整されました。AlphaZeroは、見たすべてのポジションの記録を保持しているわけではありませんが、将来見られるボードをより正確に評価できるように調整しています。


アルゴリズムのレベルであなたの説明を完全に理解しましたが、それでもうまくいくのには驚きます。初期のゲームは非常にランダムであるため、学習する価値がないと思っていました。その段階での動きの結果を評価することは、チェックメイトのためにそれをプレイアウトすることを除いて、不可能だと思われます。しかし、そのチェックメイトは、他の多数の本質的にランダムなものが行われた後にのみ発生します。私の直感は、結論を導き出すのに十分な意味のあるデータがないということです。なぜ私は間違っているのですか?
Philip Roe、

@PhilipRoeそうですね、各ゲームはほんの少しの情報しか提供しません。私は実際に、進化的アルゴリズムで学習する独自のチェスエンジンを作成しました。ランダムに変更されたエンジンのコピーは互いに再生します。敗者は削除され、勝者は修正されたコピーをさらに作成します。駒の値(クイーン、ルーク、ビショップ/ナイト、ポーン)の適切な順序を正確に把握するには、通常10,000〜20,000ゲームかかります。そのスキルを達成するためにAlphaZeroは4400万ゲームを要しました(リンクされた論文の15ページの表)。
Mark H

ご返信いただきありがとうございます。しかし、私はまだ驚いた。評価する可能性のあるポジションの巨大なスペースがあります。しかし、質問する可能性のある膨大なスペースもあります。擬人化的には、ルールを除いて事前知識がゼロであり、ほとんど考えられないレベルの能力でプレイされているゲームの巨大なデータベースがあることを想像します(すべてが覚えられているとは限りませんが)どの時点でそれが起こりますか?ピースを数える必要があります」それから、ピースを数える前にどのくらいの時間が良い考えだと思いますか?
Philip Roe、

1
「良い質問は何ですか」についての強いヒントがあったとしても、想像するのは非常に難しいと思います。しかしそれさえなければ、Imは2万回のゲームで階層の階層を確立できることに感銘を受けました。そのため、表が本当にラサであることを受け入れるのは非常に難しいと思います。ルールの生成と修正のプロセス(いくつ、どれくらいの頻度?)についての最低限の指示は、依然として重要なようです。
Philip Roe、

1
@PhilipRoe私のプログラムでは、エンジンに部分を数えるように指示しますが、各部分の価値は示しません。だから、私は何を見るべきかをエンジンに伝えますが、見たものに重みを付ける方法は伝えません。AlphaZeroは、より多くの表形式のラサです。興味があれば:github.com/MarkZH/Genetic_Chess
Mark H
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.