回答からフォローアップ:
私の質問は、ニューラルネットが遭遇していない位置で何をすべきかを「学習」する方法です。実際のAZが、訓練されたニューラルネットからのバイアス+重みを使用してMCTSを実行するとすると、ニューラルネットがこれらの値を計算する方法にステップを押し戻すだけです。人間の知識がなく、ランダムな自己プレイを介して行われた場合、これまでに見たことのないポジションにどのように重みを付けるかをどのように決定しますか?
回答からフォローアップ:
私の質問は、ニューラルネットが遭遇していない位置で何をすべきかを「学習」する方法です。実際のAZが、訓練されたニューラルネットからのバイアス+重みを使用してMCTSを実行するとすると、ニューラルネットがこれらの値を計算する方法にステップを押し戻すだけです。人間の知識がなく、ランダムな自己プレイを介して行われた場合、これまでに見たことのないポジションにどのように重みを付けるかをどのように決定しますか?
回答:
チェスエンジンの評価関数は、ニューラルネットまたは明示的なコードとしてインスタンス化されているかどうかにかかわらず、常に任意のボード位置に値を割り当てることができます。ボードポジションを与えると、ゲームでは決して発生しない馬鹿げたポジションであっても、それが1人のプレイヤーまたは他のプレイヤーにとってどれほど有利であるかを表す数を吐き出すことができます。チェスのボードポジションの数は手に負えないほど巨大であるため、トレーニングはゲームツリーの極小サンプルでのみ実行できます。エンジンは、以前に計算されたボード位置の値を単に呼び出すだけでなく、ピースの配置に基づいて計算を実行しています。非ニューラルネットの例の場合、チェスエンジンの評価の一部は、側面の各駒の値を合計し、対戦相手の駒の合計値を減算することです。そして、
エンジンがトレーニングされていない場合、評価関数のパラメーターは(通常)ランダムな値で始まるため、位置に割り当てられる値もランダムになる可能性があります。トレーニングフェーズの目標は、エンジンのパラメーターを調整して、プレイヤーの勝利状態である可能性のあるボードポジションにハイスコアを割り当てることです。
AlphaZeroのディープニューラルネットワークのパラメーターは、ランダムに初期化されたパラメーターから始めて、自己プレイ強化学習によってトレーニングされます。MCTSが両方のプレーヤーの動きを選択してゲームをプレイします。ゲームの終了時に、端末の位置がゲームのルールに従ってスコアリングされ、ゲームの結果が計算されます。負けは-1、引き分けは0、勝利は+1です。ニューラルネットワークのパラメーターは、予測結果とゲーム結果の誤差を最小限に抑え、ポリシーベクトルと検索確率の類似性を最大限に高めるように更新されます。
[引用から削除された数学記号]
要約すると、トレーニング中、AlphaZeroは自身と対戦しました。ゲームが終了すると、ゲームの結果とゲームの進行状況における予測の精度を使用して、次のゲーム中にニューラルネットがより正確になるように調整されました。AlphaZeroは、見たすべてのポジションの記録を保持しているわけではありませんが、将来見られるボードをより正確に評価できるように調整しています。