コンピュータは長い間、「ブルートフォース」技術を使用してチェスをプレイし、特定の深さまで検索してから位置を評価することができました。ただし、AlphaGoコンピューターはANNのみを使用して位置を評価します(私が知る限り、深さ検索は行いません)。AlphaGoがGoをプレイするのと同じ方法でチェスをプレイするチェスエンジンを作成することは可能ですか?なぜ誰もこれをしなかったのですか?このプログラムは、今日のトップチェスエンジン(およびチェスプレイヤー)よりも優れたパフォーマンスを発揮しますか?
コンピュータは長い間、「ブルートフォース」技術を使用してチェスをプレイし、特定の深さまで検索してから位置を評価することができました。ただし、AlphaGoコンピューターはANNのみを使用して位置を評価します(私が知る限り、深さ検索は行いません)。AlphaGoがGoをプレイするのと同じ方法でチェスをプレイするチェスエンジンを作成することは可能ですか?なぜ誰もこれをしなかったのですか?このプログラムは、今日のトップチェスエンジン(およびチェスプレイヤー)よりも優れたパフォーマンスを発揮しますか?
回答:
編集(論文を読んだ後):
私は思慮深く論文を読みました。Googleが論文で主張したことから始めましょう。
残念ながら、私はそれが良いジャーナル論文だとは思わない。リンクで説明します(したがって、私は夢を見ていません)。
https://chess.stackexchange.com/questions/19360/how-is-alpha-zero-more-humanは、AlphaZeroが人間のようにどのようにプレーしたかについての私の答えを持っています
試合は不公平で、強く偏っていました。Stockfishの元プログラマーであるTord Romstadを引用します。
https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
時間制御とStockfishパラメーター設定のかなり奇妙な選択のため、試合自体は特に意味がありません:ゲームは1分/移動の固定時間でプレイされました、つまりStockfishは時間管理ヒューリスティックを使用しません(ストックフィッシュがゲーム内の重要なポイントを特定し、移動に余分な時間を費やす時期を決定するために多くの努力が注がれました.1回の移動ごとに一定の時間で、強さが著しく低下します)。
Stockfishは、1動きにつき1分で最高のチェスをプレーすることはできませんでした。プログラムはそのために設計されていません。
1つは通常のコンピューターで実行される従来のチェスプログラムであり、もう1つは根本的に異なる技術を使用し、購入できないカスタムデザインのハードウェアで実行されます(そして、もしあれば一般ユーザーの予算からは外れます)。
http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987
私は、テストが公正ではなかったことに同意します。SFを傷つける別の問題は、32コアマシンの64スレッドで実行されたように見えることでしたが、そのマシンで32スレッドだけを実行するとはるかに優れたパフォーマンスを発揮します。また、コスト比は私が言った以上でした。私はそれが64コアのマシンだと思っていましたが、32コアのマシンは私が推測したものの約半分のコストです。したがって、すべての30対1のすべてがそれほど悪い推定値ではない可能性があります。他方、あなたはそれがどれだけ改善できるかを過小評価していると思います。
...スレッド数に対してハッシュテーブルが小さすぎる...
1GBのハッシュテーブルは、このような一致にはまったく受け入れられません。Stockfishは頻繁にハッシュ衝突に遭遇します。古いハッシュエントリを置き換えるにはCPUサイクルが必要です。
...かなりの量のテストを受けたことのないほど多くの検索スレッドで遊んでいた...
結論
Googleはその方法がStockfishよりも優れていることを疑いなく証明していません。それらの数字は表面的であり、AlphaZeroに強く偏っています。それらの方法は、独立した第三者によって再現可能ではありません。ディープラーニングが従来のチェスプログラミングよりも優れた方法であると言うのは、まだ時期尚早です。
チェスでの深層強化学習のためのGoogle Deepmind(https://arxiv.org/pdf/1712.01815.pdf)からの新しい論文があります。要約から、世界ナンバーワンのStockfishチェスエンジンは「納得のいく」敗北を喫しました。これは1997年のディープブルーの試合以来、コンピューターチェスで最も重要な成果だと思います。論文を詳細に読んだら、回答を更新します。
オリジナル(2017年12月以前)
質問を明確にしましょう。
ANNはチェスエンジンに使用できます。
このプログラムは、今日のトップチェスエンジン(およびチェスプレイヤー)よりも優れたパフォーマンスを発揮しますか?
Giraffeは、国際マスターレベル、つまりFIDE 2400レーティングでプレイします。ただし、Stockfish、Houdini、KomodoはすべてFIDE 3000でプレーします。これは大きなギャップです。どうして?なぜモンテカルロツリー検索をしないのですか?
モンテカルロツリー検索がチェスにうまく対応できないという研究がありました。Goはチェスとは異なるゲームです。チェスは残忍な戦術に依存しているため、チェスアルゴリズムはGoでは機能しません。チェスでは戦術が間違いなく重要です。
これで、MCTSはAlphaGoでうまく機能するが、チェスではあまり機能しないことが確認されました。ディープラーニングは次の場合により便利です。
ディープラーニングが以下を達成できる場合、従来のアルゴリズムに勝ります。
指摘させてください:
いいえ。Giraffe(@Timが投稿したリンク)は、モンテカルロツリー検索を使用しません。通常のネガマックスアルゴリズムを使用します。通常の評価関数をNNに置き換えるだけで、非常に遅くなります。
もう一つ:
Kasparovは1997年の試合でDeep Blueにbeatられましたが。「人間性」は、KramnikがDeep Fritzとの勝負なしで試合に負け、Michael Adamsが一方的な試合でクラスターマシンに敗れた2003-2005年ごろに本当に失われました。その頃、Rybkaは世界の最高のプレーヤーでさえ強すぎることが判明しました。
参照:
引用:
チェスでは、エンジンがどれだけうまく処理されているかを迅速に計算できる妥当な見積もりをすでに与えている重要性の概念があります。さらに、Goで行うことができなかった静的評価関数でエンコードできるゲームの他の多くの側面があります。多くのヒューリスティックと優れた評価のため、EBF(Effective-Branching-Factor)は非常に小さいです。静的評価関数の代わりにニューラルネットワークを使用すると、エンジンの速度が大幅に低下します。
DeepBlueはすでにKasparovを打ち負かしているため、この問題ははるかに単純なアプローチで解決されます。これは、チェスの可能な動きの数がgoの場合よりもはるかに少ないために可能であったため、はるかに単純な問題です。さらに、NNとブルートフォースの両方が巨大なコンピューティングリソースを必要とすることに注意してください(AlphaGoの背後にあるコンピューターの写真を見つけることができます。囲withの大騒ぎは、ディープブルーがカスパロフを破ったとき、囲communityコミュニティは囲thisではこれが不可能だと主張したことです(多くのさまざまな理由がありますが、議論をまとめるために、ゲームの詳細な紹介をする必要があります)の)。はい、チェス、マリオをプレイするようNNに教えるか、プレイするように教えてみてくださいスタークラフト ...
その理由は、すでに解決された問題を人々が解決する場合について、主流のメディアで頻繁に耳にすることがほとんどないからだと思います。
さらに、あなたの前提は間違っています。ディープラーニングはチェスをプレイするために使用されます。たとえば、ディープラーニングマシンは72時間でチェスを教える、国際マスターレベルでプレイするなどで説明されています。対応する論文「Giraffe:Deep Reinforcement Learning to Chess」も参照してください。