コンピューターチェスで人工知能を使用する方法


19

一部の(歴史的)論文では、チェスは人工知能のショウジョウバエと呼ばれています。現在の研究では、検索アルゴリズムの単なる適用はせいぜい高度なコンピューターサイエンスであると思われますが、AI技術を適用(および実践)できる分野はまだあると思います。

簡単な例は、プログラムが特定の種類のポジションに適していないため、特定の動きを使用するかどうかをプログラムに教えることができるオープンブック学習です。強化学習の形式を使用して、これを自動化できます。プログラムを自分自身と対戦して、勝ちのラインの確率を上げ、ラインを失う確率を下げることができると思います。

より複雑な例は、学習評価関数を使用することです(たとえば、正方形のテーブルの値を調整できます)。しかし、私は考えています:

  • (現実的な開始線の量とは対照的に)膨大な量の現実的な位置があるためにすべてのノイズが与えられた
  • コンピューターチェスゲームのコスト(期間)と負荷をプレイする必要性。

どのようにこれを効果的に行うことができますか?(または、ニューラルネットワークなどの他の手法を検討する必要があります。)


3
標準的なアプローチは、アルファベータプルーニングミニマックスです。ヒューリスティックで。これは、機械学習ファミリではなく、AIの検索ファミリからのものです。
リンドンホワイト14

2
実際のチェスマスターは基本的に、以前にプレイしたすべてのゲームを覚えているだけです。したがって、彼らは強力なメモを持っています。

2
反論もあります。誰が言ったのか思い出せませんが、こんな感じです。生物学者は、ショウジョウバエの実験を使用して、生理学、遺伝学などのより深い理解を獲得します。AIの人々は、チェスをより上手に行うためにチェスコンピューターを作成します。これは、コンピューターサイエンスについてはあまり教えません。生物学者が超高速で超強力なショウジョウバエを繁殖させ、互いに戦わせるようなものです。
デビッドリチャービー

比phorについては、それは「人工知能のショウジョウバエ」よりも多分、特に1997年までトップの人間を決定的に打ち
負かさなかった

回答:


16

チェスの状態空間全体は膨大であり、おおよそ10 43(シャノン番号(シャノン、1950)、(ウィキペディア))と概算できます。

あなたが提示するアイデア-ゲームを学習するために互いに遊んでいる強化学習エージェント-は、バックギャモン-TD-ギャモン(テサウロ、1995)にうまく適用されました(Sutton&Bartoによる強化学習の章)。また、ニューラルネットワークを使用して、ゲームの価値関数を推定しました。ただし、バックギャモンの状態の数はチェスよりもかなり少ないため、この問題ははるかに単純です。つまり、18,528,584,051,601,162,496(バックギャモンフォーラムアーカイブスレッド)です。

ただし、最初の数回の動きでゲームを終了し、「良いオープニング」を学ぶことだけを目的とする場合、同様のアプローチで成功することができます。主な問題は、開幕戦の後にゲームを評価することです。対戦相手が愚かな動きをすると位置が遠くなる可能性があるため、よく知られている開始後の確立された位置との類似性の尺度は十分ではありません(したがって、学習エージェントの間違いのためではなく、 「良い結果として評価されるべきです」。

参照:


1
実際、最も難しい部分は、オープニングの結果を記録する経験的な方法を考え出すことです。さまざまな方法でさまざまな開口部が優れているため、おそらく多数の許容可能な開口部があります。
JDong

3

教科書のAIまたはMLの可能な(または奇妙な)方法が試行され、単純なブルートフォースと比較してほとんど失敗したと確信しています。

私の個人的な見方では、チェス自体は現代のAIにはもはや関心がないということです。だから、より効率的に解決するために「インテリジェント」システムを作成する必要があるとは感じていません(私の携帯電話でうまく機能します)。存在する「インテリジェントな」アプローチ。


1
これがなぜ投票されたのかはわかりません。チェスが「解決」されるという議論は少し不正確です。コンピュータは考えられる位置を見て、それを完全に評価できないからです。とは言っても、iliasflは、チェスがAI研究に対する魅力のほとんどを失っていることに注目しています。まず、最高のコンピューターチェスプログラムは、十分な処理能力と時間を考えると、最高の人間よりもはるかに強力です。これにより、プログラマーがアルゴリズムがどれだけうまく機能しているかを評価することさえ難しくなります。
エリキシニド14

1
おかげで、ブルートフォースが解決策であるという意味で解決したと言った。もちろん、AIコミュニティ(一般にここだけではありません)はその「解決策」に満足していません。ただし、このタスクを解決するための「インテリジェントな」動作を提供する計算システムがすでにあり、最高の人間の期間さえ獲得しています。個人的には、チェスはAIを攻撃するためにキャリアを尽くした現在の大勢の研究者が退職する数年後にAIの話題から外れると信じています。

現在のコンピューターチェスの実装を「ブルートフォースによる解決」とは呼びません。彼らはまだ膨大な量のゲームステートを検索していますが、そこには非ブルートフォースの多くのコンポーネントがあります。もちろん、それらは他の問題にうまく当てはまる「人間スタイル」のソリューションではありませんが、「人間スタイル」のチェスAIがあれば、それは何桁も少ないことに驚かないでしょう現在の特殊なソリューションよりも効率的で、単純に劣っています。
ペトロス14

私はこの答えは、そのコメントがはっきりGoogleのAlphaZeroによって論駁されたと思う:en.wikipedia.org/wiki/AlphaZeroあなたがStockfishのセットアップについての批判を受け入れ、彼らはすべての一致を描かれていた場合であっても、そのレベルになったシステム数時間のトレーニングで明らかに優れています。
カマル

2

AIの問題に取り組む方法を決定するには、それを定義する必要があることに注意する価値があると思います。それがあるかどうかを完全に観察可能なまたは部分観測、そしてそれがあるかどうかを決定論確率的 /チャンス。

チェスはまた、(チェッカーのような、例えばゴー)決定論的である(バックギャモン、モノポリーまたは例えばポーカーとは違って)最後に、敵が存在すると、完全に観察可能であるための次の最高の動きを決定する際には、使用すると便利であることを敵対検索の種類をMiniMaxなどのアルゴリズム。問題を分類すると、どの種類の検索アルゴリズムを適用するかを判断するのに役立ちます。チェスの場合、敵対的検索が適しています。

特にミニマックスには

O(bn)

O(bm)

したがって、チェスの場合、bは35、mは100になります。それを回避する方法や、アルファベータカットオフなど、より効率的な方法があります。


また、この文脈で注目に値するのは、最大数個のチェスのエンドゲームがすでに表形式化されていることです-さらなる最適化。
BartoszKP 14

これは通常のアプローチですが、機械学習のアプローチではありません。質問では、機械学習タグを使用しています。
リンドンホワイト

@Oxinaboxは以前はそうでしたが、質問者はタイトルや本文のどこに機械学習アプローチに興味があるかについて言及していませんでした。最後に、彼が念頭に置いたアプローチの例を共有していました。問題を機械学習や単一の学習アルゴリズム(NN)に制限する必要はありません。
Iancovici

確かに、これは良いです
リンドンホワイト14

正確に言うと、チェスは完全な観測可能ではありません。たとえば、キングやルークがすでに移動しているかどうかわからない位置を考えると、移動生成には重要ですが(キャスティングは可能ですか?)、しかし、プログラマーは、位置の表現を変更することで完全に観察可能にすることができます。動かないキング/ルークと移動するキング/ルークを異なる数字として区別しますが、いくつかの困難が追加されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.