チェスについて。そしてだけでなく

今日、コンピューター業界の現在と未来について難しい考えはありません。今日は私の趣味の一つについてお話したいと思います。サッカー、ホッケー、テニス(大小)、ポーカー、好み、証券取引所など、さまざまなゲームをプレイしています。しかし、私の「プロフィール」スポーツはチェスです。この分野での私のキャリアはマスター候補よりも進んでいませんでしたが、私は40年間古代のゲームへの愛を保ち続けてきました。興味深いことに、彼女は別の趣味であるプログラミングにかなり「乗り込み」、人工知能とゲーム理論への関心を引き起こしました。そしてもちろん、AlphaZeroプロジェクトの驚異的な成功関連するこの分野の最新のブレークスルーは私を通り過ぎることができませんでした。



画像






それから私はただ座ってAlphaZero対Stockfishを賞賛しましたそして今、私はニューラルネットワークを最適化するタスクに関連するトピックに戻りました。これは時々仕事で行われなければなりません(ああ、私たちが望むよりも少ないです)。私のように、これらのタスクは密接に関連している可能性があるので、どういうわけか私のアイデアを体系化したいと思いました。



Chessは、オプション(およびチェッカー、移動など)の列挙に基づいた、完全な情報を備えたゲームです。



画像






ただし、問題は、チェスのバリエーションツリーが非常に速く成長することです(ただし、Goよりも大幅に遅くなります)。たとえば、一杯のピースが静かな位置にある場合、各サイドには約10の妥当な継続があります。したがって、白黒のわずか3回の移動(6回の半分の移動)で、これから100万の位置を取得できます。また、人々の間の平均的なゲームは40-50の動き(コンピューター間-80-100)続くことを考慮に入れましょう。したがって、バリアントのツリーを完全に計算することはほとんどの位置で不可能であるという結論に達します。つまり、幅と深さの両方で検索ツリーの部分的な切断に焦点を当てる必要があります。それでは、人間と機械がこの問題にどのように対処してきたかを見てみましょう。少し歴史的な概要から始めましょう。



「プロテインチェス」。



チェスは約1400年前から知られていますが、最初の大規模なトーナメントは19世紀半ばに開催され始めました。それはオープンでロマンチックな戦いの時でした。対戦相手は素早く駒を戦闘に投入し、ポジションを広げて王への攻撃を開始しようとしました。物質的および位置的譲歩を特に考慮した人は誰もいませんでした。しかし、驚くべきことに、ロマンチックなチェスの敵であるウィルヘルム・シュタイニッツが最初の公式世界チャンピオンになりました



画像






彼はポジショナルプレイの基礎を築きました。シュタイニッツのおかげで、「ポーン構造」、「強い正方形と弱い正方形」、「良い部分と悪い部分」などの概念で運用を開始しました。これは、長期的な利点に基づく戦略の要素をチェスに導入したものです。シュタイニッツは位置的アプローチを開発し、物質的な犠牲と位置的欠陥のために敵を執拗に罰しました。エマニュエル・ラスカーのチェスの王位に彼を成功し、最初のチャンピオンの非常によく話を聞いた:「彼は偉大な思想家だったので、実用的なプレーヤーとしてSteinitzの才能は、彼はそれにもかかわらず敗北ブラックバーンまたはZukertortの才能、より低かったが、彼らはありませんでした。」Steinitzは、位置評価の基本原則とその結果のゲームプランを高レベルの言語(この場合はドイツ語)で策定しました。

したがって、彼はそれらを他の人々が研究できるようにしました
。これは、私たちがチェスへの人間のアプローチと呼ぶものを形作っています。私たちは、位置の原則に基づいてチェスのバリエーションツリーを剪定することに真剣に取り組んでいます。一部の移動は、計算された範囲の悪い位置につながるため、破棄されます。長期的な譲歩につながるためのものもあれば、目的がないためのものもあります。その結果、可能なオプションのごく一部を計算します。



チェスをさらに理解することは、本質的に最初のチャンピオンによって提示されたアイデアの発展でした。封鎖、予防、支配などの概念が現れました。チェスプレイヤーは、さまざまな開口部(閉じたチェーン、孤立したポーンなど)から生じる典型的なポジションをプレイする原則を研究し始めました。どういうわけか、物質的なバランスに近い位置が研究されました。しかし、例外もありました。たとえば、若いミハイル・タルは別のスタイルで演奏しました。彼は材料比率に違反して鋭い不均衡な位置を作成しました(後のギャリー・カスパロフも同様のゲームを示しました)。そのようなゲームに慣れていないので、対戦相手は次々と追い越しました。タルは1960年に世界チャンピオンになりましたが、1年後に再戦に敗れました。 20世紀の後半に、研究の焦点はゲームの始まり、つまりオープニングに移りました。ミハイル・ボトヴィニク(6番目の世界チャンピオン)とギャリー・カスパロフ(13番目)の軽い手で、チェスプレーヤーは特定のオープニングオプションを考え出すことに彼らの時間の大部分を捧げ始めました。このプロセスでますますコンピュータを使用しています。その結果、人気のあるオープニングの多くのバリエーションが、ゲームの結果が事前に決定される位置まで開発されます。これは、チェスの特定のエマキュレーションにつながるだけでなく、オープニングですでに敗北しないようにするために、膨大な数のバリエーションを記憶する必要があります。当然のことながら、振り子は最近反対方向に揺れています。現在の世界チャンピオンマグナス・カールセンは、オープニングの終わりにアドバンテージを得るためではなく、コンピューターエンジンによって「ハックニー」されないプレーポジションを得るために努力しています。闘争の厳しさは、ゲームの後の段階(ミドルゲーム、エンドゲーム)に引き継がれます。



「シリコンチェス」。アレクサンダークロンロッドの



適切な表現によると、チェスは人工知能の「フルーツフライ」です。彼らの研究では、最初のコンピュータの出現で始まり、などのパイオニア集めアラン・チューリングクロード・シャノンが。..。チェスピースの価値の最初の見積もりを提唱したのはシャノンでした。「キング= 200、クイーン= 9、ルーク= 5、ビショップ= 3、ナイト= 3、ポーン= 1」。奇妙なことに、次の70年間のチェスプログラミングの開発を決定したのは、この単純な評価でした。シャノンはまた、チェスプログラムが「速い」(ブルートフォース)と「スマート」(賢い)に分割されることを予測しました。 「高速」プログラムは、すべての可能なオプションを特定の深さまで完全に通過し、単純な評価関数(材料比など)を使用して位置を評価し、ミニマックスの原理を使用し最適な動きを選択します..。 「スマート」プログラムは、より複雑なアルゴリズムを使用し、人間とほぼ同じ方法で検索深度を変更します。 6番目の世界チャンピオンであるMikhailBotvinnikは、彼の人生の最後の数年間にそのようなアルゴリズムの作成に関与しました。しかし、他の多くの「スマート」プログラムの作成者のように、あまり成功していません。彼の3番目の予測では、シャノンは間違っていました。「スマート」プログラムは、「高速」プログラムとの戦いで常に失敗していました。その理由は、ブルートフォースが非常によく並列化および最適化されているためです。そして、シャノンの単純な見積もりは、非常に安定していて堅牢であることがわかりました。チェスプレイヤーが知っているように、位置的な利点は遅かれ早かれ物質的なものに変わります。位置評価の原則は形式化に非常に役立ちますが。



それらは面倒な順次計算を必要とし、最適化が不十分です。その結果、コンピューターのパフォーマンスが向上するにつれて、「高速」プログラムが主流になり始めました。これがコンピューターチェスの主流が形成された方法であり、人間のものとは著しく異なります-シャノンによるアルファベータクリッピング(および他のいくつかのヒューリスティック)と位置推定を使用して特定の深さまでバストします。また、プログラムは、オープニング(ゲームがまだ初期位置から遠く離れていないとき)とエンドゲーム(ピースの数が少なく、バリエーションのツリーが完全に計算できるとき)ベースを積極的に開発して使用し始めました。また、コンピューターのパフォーマンスは常に向上し、プログラマーもアイドル状態にならず、常にエンジンを最適化しました。 1997年5月11日、画期的なイベントが発生しましたディープブルーのコンピューターは、6ゲームの試合で世界チャンピオンのギャリーカスパロフを破った。



画像






その直後、IBMはこの決して安いプロジェクトをシャットダウンしました。チェスの計算を高速化するチップは、特にディープブルーに作成されました。しかし、それらがなくても、人に対するコンピューターの優位性はすでに明らかでした。Deep FritzDeep JuniorRybkaKomodo、Stockfishは、一流のグランドマスターを容赦なく粉砕し始め、先に資料を提供しました...しかし、彼らはさまざまな成功を収めました-プログラム間の世界選手権の結果はここにあります



AlphaZeroの作成者が、Li Sedolでのプレイゲームで世界チャンピオンを破った後、ついにチェスを始めたとき、すべてが変わりました。結果は驚異的でした-4時間自分で遊んだ後AlphaZeroは28ゲームに勝って72を引き、StockFishを打ち負かしました。1年後、DeepMindはよりクリーンな実験を行い、Stockfishがオープニングブックとエンドゲームブックを使用できるようにしました。それでも、結果+155 -6 = 839は、現時点で世界で最も強いプレーヤーが誰であるかについて疑いを残しません。この新しい奇跡が



どのようにアレンジされたかを理解しましょう。 (Pythonスクリプトをさらに深く掘り下げたい人のためのはすでにあります)。主なアルゴリズムはモンテカルロツリー検索です..。もちろん、これはやり過ぎであり、AlphaZeroは他のチェスプログラムと同様になります。しかし、モンテカルロという言葉は誤解を招くものであってはなりません。検索はニューラルネットワークによって制御され(Goの場合は80層でしたが、ここではどれかわかりません)、対象を絞り込んでいます。 AlphaZeroは、人間と同じように、位置を考慮してブルートフォースツリーをトリミングします。 Stockfishと比較して、Alphazeroはほぼ1000分の1のオプションを通過します..。彼女は「ゴミ」をはるかに少なくシャベルしますが、最も可能性の高い最も強力なオプションをより深く、より正確に計算します。したがって、より短い時間やより弱いハードウェアでも勝ちます。そして最も重要なことは、AlphaZeroが「彼女自身の経験」だけでチェスを「研究」したことです。彼女は先験的な情報を持っていませんでした。彼女の「理解」は「シャノン評価」によって汚染されていません。彼女はチェスのビジョンと遊びのスタイルについて独自の理解を持っており、それはしばしば物質的なバランスを無視します(若いタルのように!)。



この素晴らしい実験からどのような結論を導き出すことができますか?



  1. 彼は、チェスのエマキュレーションに関するすべての考慮事項に断固として反論します。これまでにないスタイルでプレーし、競合他社よりも完全に優れているプレーヤーの姿は、ゲームの可能性が尽きることがないことを示しています。
  2. . 4 (« ») ! – ( -) . . . AlphaZero () .
  3. – ? – , , .. , . AlphaZero – – –. ? , , . , . . . . SkyNet 少し離れて、もう少し不吉になります...それまでの間、この問題へのアプローチ方法に関するリンク、記事、アイデアに感謝します。


PS。しかし、あなたはゲームを見るでしょう私は比類のない喜びを得ました。



All Articles