AlphaZeroを理解する
ごく最近、AlphabetのDeepMind研究チームが機械学習エンジンを拡張して将giとチェスの両方をプレイできるというニュースが出ました。どうやら、数時間の自己学習の後、ゲームのルールを考慮して自分自身と対戦するだけで意味し、チェスでのパフォーマンスはすでにStockfish 8などの最新のエンジンのパフォーマンスを超えています。計算時間が限られている場合、エンジンのパフォーマンスは非常に低いため、Stockfishが実行するように設定された条件のように、私は個人的にはマッチがどのように設定されたかをまだ知りません。いずれにせよ、これは非常に印象的な成果です。たとえ追加のトレーニング時間をほとんど与えずにStockfishをより最適にセットアップできたとしても、AlphaZeroはプレイのレベルを再び上回るため、AlphaZeroは現在のどの製品よりも根本的に強力ですヒューリスティック評価関数に基づく標準チェスエンジン。 このニュースを踏まえて、機械学習チェスエンジンの動作の主な違いについて、誰もが慣れ親しんでいる標準エンジンと比較して詳しく説明できれば素晴らしいと思います。より具体的に: AlphaZeroが使用する評価関数は、機械学習法によって訓練されたものであり、最後には単なるヒューリスティック評価関数ではありませんか?はいの場合、2つのエンジンの評価関数の基本的な違いは、Stockfishが人間によって手動で調整された最適化された評価関数を持っているという事実です、最適化する関数の定義は固定されていますが、 AlphaZero、ターゲット評価関数は、追加のトレーニング(たとえば、セルフプレイ)によって常に再定義されていますか?後者をはるかに動的なアプローチにします。 最終的に、漠然と言えば、Stockfishのようなエンジンは、評価関数を可能な動きのツリーに適用し、保持するブランチとドロップするブランチを決定してから、より深いコンクリートを通過させます。各ブランチの分析、評価関数を介して、どのブランチが最も高い値をもたらし、それが主要な変動になるかがわかります(もちろん、この大きなツリーを効率的にプルーニングするために、このプロセスの周辺には多くの先進技術があります)。つまり、ポジションごとに、ストックフィッシュが決定を下すには、この非常に具体的なルーチンを繰り返さなければなりません。対照的に、AlphaZeroは非常に異なることを行うと思います。つまり、指定された位置で可能な動きのツリーの具体的な分析に依存せず、代わりにその評価関数は基本的にその位置に値を割り当てます(直感的にはトレーニングを受けた他のすべてのポジションと同様に、現在のポジション)、具体的に実行する必要なしストックフィッシュ、または人間のプレイヤーでさえも行う方法で分析します。これは、AlphaZeroまたは同様に訓練された機械学習エンジンの動作の健全な写真ですか? チェスの位置のスペースは十分に大きいため、その中のすべての位置をサンプリングしようとすると、原則として完全に無駄になります(EXPTIMEの複雑さ)。これは、自己プレーによるトレーニングの量が十分でないことを示唆します。すべてのポジションを探索したので、セルフプレイを介してスペースのポジションのほんの一部を潜在的に探索したにもかかわらず、最終結果はどのように良いでしょうか?ここで重要なアイデアは何ですか? 私の推測では、AlphaZeroには、たとえ新しい場合でも、トレーニングセットで以前に訪れた位置と特定の位置を比較する非常に最適な方法があり、比較が近いほど、比較から評価がより有効になります。たとえば、ゲーム5でムーブBg5をプレイしたとき、トレーニング中に同様の構造を探さなければなりません。つまり、このポジションは、トレーニングで学習した(おそらく完全に)異なるポジションと本質的に同等であることを認識できます機械学習によって顔認識がどのように達成されるかと類似しており、その結果、Bg5は他の(またはそれらの)同様の位置にあったように、最良の動きであると結論付けられます。これはまったく正しい推測ですか?私はこの比較がどのように トレーニングされたすべての位置を保存し、毎回それらを解析することは確かに不可能なので、 これは、AlphaZeroの仕組みと、ポジションが与えられた場合の決定に至るまでの洞察を得るための単なる試みです。