12

Googleが翻訳の問題をどのように解決するかについて読んだことで、私は考えました。数百万のゲームを分析し、統計に大部分(完全に)基づいて可能な限り最良の動きを決定することによって、強力なチェスエンジンを構築することは可能でしょうか?そのようなチェスデータベースはいくつかあり(これは450万のゲームがあるものです)、関係するプレーヤーの評価、ゲームの古さ(チェス理論の改善を考慮に入れる)など。これがチェスエンジンを構築するための実行可能なアプローチではない理由は何ですか?

4

11 に答える 11

21

このようなことはすでに行われています:それは本を開くという基本的な概念です。

ゲームの性質上、コンピューターAIは最初は悪いことで有名ですが、多くの可能性があり、最終目標はまだはるかに進んでいます。戦術的な可能性が形成され始めると、それは中間に向かって改善し始め、ほとんどの人間の能力をはるかに超える最終的なゲームで完全にプレイすることができます。

AIが最初に良い動きをするのを助けるために、多くのエンジンは代わりに本を開くことに依存しています:基本的に、統計的に導き出された動きのフローチャート。高評価のプレーヤー間の多くのゲームが分析され、推奨事項は「本」にハードコードされています。位置がまだ「本」にある間、AIは「考える」ことすらなく、単に「本」に従うだけです。 「と言います。

一部の人々はまた、オープニングの本を暗記することができます(これが主にフィッシャーが彼のランダムなチェスの変則チェスを発明した理由であり、オープニングの暗記ははるかに効果的ではなくなります)。これもあって、最初は型破りな動きが行われることがあります。これは、歴史上統計的に最良の動きであるためではなく、正反対です。「既知の」位置ではなく、対戦相手(人間またはコンピューター)を奪う可能性があります。」本から」。

スペクトルの反対側には、エンドゲームテーブルベースと呼ばれるものがあります。これは基本的に、以前に分析されたエンドゲームの位置のデータベースです。以前はポジションを徹底的に検索していたので、これを使用して完璧なプレーを可能にすることができます。どのポジションでも、勝ち、負け、引き分けのいずれであるか、そして結果を達成/回避するための最良の方法をすぐに決定できます。

チェスでは、このようなものはオープニングとエンドゲームでのみ実行可能です。ミドルゲームの複雑さは、ゲームを面白くするものです。テーブルを見上げるだけでチェスをプレイできるとしたら、ゲームはそれほどエキサイティングで、面白く、そして深くはありません。

于 2010-04-27T00:13:26.740 に答える
6

ええと、450万のゲームはまだすべての可能なゲームのごくわずかな(ごくわずかな)部分しかカバーしていません。

そして、あなたは多数の勝ち負けのポジションを持っているでしょうが、それはそれを使用可能なパラメータのセットに減らすという問題を残します。標準的なアプローチとしてニューラルネットワークを使用する非常に古い問題。しかし、NeuralNetsはチェスのトーナメントに勝っていません。

于 2010-04-26T22:59:09.577 に答える
3

この一般的な戦略は、さまざまなゲームで試されてきました。非常に多くの場合、人々はコンピュータ自体をプレイさせることによって、ゲームの適切な大規模なデータベースを生成します。インターネットですばやく検索すると、http: //www.cs.princeton.edu/courses/archive/fall06/cos402/papers/chess-RL.pdfが見つかります。これは、バックギャモンでの以前の作業に基づいています。チェスでは、ブルートフォース先読みはコンピューターにとって非常に効果的ですが、一般に、統計は、データから再学習するのではなく、問題に関する既知の情報をすべて混ぜることができる場合にはるかに効果的です。 。このリンクで、コンピューターは、プロセス全体ではなく、先読みの下部にある評価関数に相当するものを学習したことに注意してください。

于 2010-04-27T05:43:33.220 に答える
2

コンピューターGoで非常にうまく機能する同様の何かがあります-UCTメソッド。既知のゲームセットを使用しませんが、代わりに統計を保持しながら大量のランダムゲームをプレイし、勝率を高めます。現在の位置から開始します。

統計は移動のツリーに保持され(ミニマックスで使用されるものと同様)、次にプレイするランダムゲームの選択に影響を与えます-勝率の高い移動がより頻繁に選択されます。ツリーの成長もゲームによって導かれます-通常、各ゲームはツリーに葉を追加します。これは、有望な道をより深く探求することにつながります。

于 2010-04-27T11:12:06.807 に答える
1

私はそのアイデアが好きですが、自然言語の文の文脈がチェス盤の位置の文脈よりもはるかに少ない要素を必要とすることを考えると、[テキスト翻訳を使用した]類推は不十分であるようです(そのような文の要素、すなわちつまり、チェスゲームの要素、つまりゲームピース、ナイト、ポーンなどよりも大きなセットに由来する場合があります。
さらに、多言語コーパス(さまざまな言語のさまざまな性質のドキュメント)の可用性は、デジタル形式で見つけることができるチェスゲームの数。特に、チェス分析にはゲーム全体が必要であり、翻訳の目的で、残りのテキストから独立してすべての文を使用できることを考慮すると。

その結果、ゲームの開始部分(取締役会のポジションが他のゲームと比較して発散する機会があまりなかった場合)を除いて、統計的有意性を導入するために必要なチェスゲームの数は次のようになります。天文...

実行する必要がありますが、可能なチェスゲームの数(絶対的およびもっともらしいゲームのサブセット)の具体的な見積もりに戻り、450万ゲームが比較的小さなサンプルであることを効果的に証明する必要があります。

于 2010-04-26T23:13:51.557 に答える
1

チェスには約10123のゲーム木があり、そのうち約4.5×106データベースにあります。ゲームツリーは無視して、 1043から1050の合法的な状態の間にある状態空間の複雑さのみを考慮することができます。そのデータベース内のすべてのゲームに固有の動きがあり、ゲームごとに平均1000の動きがあり、4.5×109の状態が得られると仮定します。可能な状態の推定下限1043を取ると、4.5 ×10-34のみをカバーしますすべての州の。回転や反射を除いたボードのユニークな位置の総数はわかりませんが、2分の1程度しか減らないため、あまり役に立ちません。

一致するボード位置(反射と回転を含む)が見つからない可能性10分の1であるため、統計エンジンにドメイン知識を追加し、2つの特定のボード位置間の類似性のレベルを調べる必要があります。ここでの最大の鍵は、与えられた2つのボードの位置がどのように似ているかを見つけることだと思います。これには、単なる変換よりもはるかに多くのドメイン知識が組み込まれます。

チェスの複雑さとその周りの関心を考えると、以前に試されたことがあると思いますが、それでもさらに調査する価値のある素晴らしいアイデアです。

于 2010-04-26T23:55:45.213 に答える
1

はい、うまくいくと思います。まだ実際に成功した人は誰もいませんが、統計的アプローチを使用して「パターン」を探してみませんか。保管するボードの位置が天文学的に多いため、ボード全体を保管することは検討していませんが、特定のパターンを探すだけです。

パターンを探しています

典型的なチェスプログラムは、優れた防御ポーンやオープンルークラインなどの認識されたパターンに対して評価し、ボーナスを提供します。一方、2倍のポーンなどに対してはペナルティを与えます。

このようなパターンは、64ビットマスクで効率的にプログラムできます。重要な位置のビットマスクと、それらの位置で予想されるピースのビットマスクがあります。それぞれのパターンは一致するのに時間がかかるので、違いを生むものを見つけることが重要です。そこで、Googleの統計的アプローチが使用されます。「歴史的な」ゲームを実行し、パターンを探すことができます。パターンが見つかったら、パターンの重みを計算し、改善された評価がオーバーヘッドを上回っているかどうかを確認する必要があります。

これは、PHDの論文には多すぎるとしても、試してみるにはかなり巨大なプロジェクトになると思います。

于 2016-02-15T12:18:15.917 に答える
0

機械学習は最近、特にGoogleチームがMLを使用してGOチャンピオンを打ち負かした後、大きな進歩を遂げました。今ではチェスでもデモンストレーションされています。MITテクノロジーレビューの記事をご覧ください。https://www.technologyreview.com/s/541276/deep-learning-machine-teaches-itself-chess-in-72-hours-plays-at-international-master //

MLのディープラーニングは、古いニューラルネットワークのセルフチューニングAIアルゴリズムを拡張したものです。ライのデモンストレーションは、マシンにチェスの基本的なルールを教えたり、ゲームの結果を気にしたりしませんでした。彼はちょうどマシンにゲームの大規模なデータベースを供給し、マシンは残りを理解し、合理的な「人間」レベルでプレイしました。

2つの大きな機能強化は、ルールを教えて効率を高め、ゲームの実際の結果をフィードしてガイドすることだと思います。その後、現在のチェスチャンピオン、Stockfishのようなエンジンでトレーニングに行きましょう!:-)

于 2016-06-27T11:26:23.573 に答える
0

マスターヒューマンプレイヤーを倒したGOプログラムに似たディープラーニングアルゴリズムはキラーかもしれません。ただし、高額な費用が必要になります。ただし、GOから学習した深層学習パターンを使用して、それをチェスに適用することもできます。

于 2016-10-03T17:20:22.007 に答える
0

私が言及していないことの1つは、データベース内のゲームのプレーヤーの評価に関する考慮事項です。良好なdbパーセンテージのいくつかのオープニングは、より良いプレーヤーが勝ち、オープニングの価値についてほとんど語らない傾向がある結果です。

実際、私はデータベースが1つのことだけに適していると判断しました。それは、どの動きが人気があるかを示しています。それを超えて、あなたは実際にデータの解釈をそれが価値があるものを超えて伸ばしています。

同様に、コンピューター分析は、コンピューター対コンピューターゲームの最良の結果のみを示します。人間同士のゲームは異なり、コンピューター分析に過度に依存するべきではありません。

データベースとコンピューターの分析はどちらも興味深いものですが、簡単に誤解される可能性があります。注意してください。

于 2018-11-12T10:53:09.060 に答える
-1

チンメイ、

これは古いスレッドですが、最近調べているトピックです。上で答えた人のほとんどは本当にあなたの質問をしませんでした。はい、提案された動きを開発するために過去の多くのゲームを分析することは価値があると思います。それはすべての可能な動きをカバーしますか?いいえ、明らかにそうではありません。しかし、それは実際のゲームからのすべての現実的な動きをカバーしています。人間(または別のコンピューターアルゴリズム)は、物事を捨てるために非常に奇妙な動きをし始めなければならないでしょう。したがって、常に勝つ「完璧な」アルゴリズムを構築することはできませんが、それが多く勝つ場合、たとえば2200を超えるFIDEレーティングであれば、悪くはありませんか?また、過去の動きの分析だけでなく、オープニングとエンドゲームを組み込むと、さらに優れたエンジンになります。

可能なボード位置の数は天文学的に多いですが、それは有限であり、愚かな位置を削除すると、その数はかなり減少します。1人のプレーヤーのポーンのうち4つ、5つ、または6つを同じファイルに並べることは可能ですか?はい、それは実際のゲームで起こりますか?疑わしい。対戦相手が「オフブック」になる状況のために、基本的なチェスの頭脳をロジックに含めます。たとえば、 MicroMaxはわずか数百行のコードです。対戦相手があなたの動きを阻止するために愚かなプレーをした場合、彼らはおそらく単純なエンジンで打ち負かすことができます。

于 2011-03-07T14:38:55.290 に答える