AlphaGoに似た、チェス用の深層強化学習エンジンがないのはなぜですか?


32

コンピュータは長い間、「ブルートフォース」技術を使用してチェスをプレイし、特定の深さまで検索してから位置を評価することができました。ただし、AlphaGoコンピューターはANNのみを使用して位置を評価します(私が知る限り、深さ検索は行いません)。AlphaGoがGoをプレイするのと同じ方法でチェスをプレイするチェスエンジンを作成することは可能ですか?なぜ誰もこれをしなかったのですか?このプログラムは、今日のトップチェスエンジン(およびチェスプレイヤー)よりも優れたパフォーマンスを発揮しますか?


5
参照arxiv.org/abs/1509.01549や人気記事:(チェスをプレイするためにディープ強化学習を用いキリン)technologyreview.com/s/541276/...を。また、erikbern.com / 2014/11/29 / deep
amoebaは、

誰かがこれをきちんとやるのは時間の問題でした。質問を投稿してから1か月後、arxiv.org / abs / 1712.01815に進みます。
アメーバは、モニカを復活させる

回答:


49

編集(論文を読んだ後):

私は思慮深く論文を読みました。Googleが論文で主張したことから始めましょう。

  • 彼らは、Monte-Carlo-Tree-Search + DeepニューラルネットワークでStockfishを倒しました
  • 試合は完全に一方的で、AlphaZeroで多くの勝利を収めましたが、Stockfishでの勝利はありませんでした
  • 彼らはわずか4時間でそれをすることができました
  • AlphaZeroは人間のようにプレイしました

残念ながら、私それが良いジャーナル論文だと思わない。リンクで説明します(したがって、私は夢を見ていません)。

https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author

時間制御とStockfishパラメーター設定のかなり奇妙な選択のため、試合自体は特に意味がありません:ゲームは1分/移動の固定時間でプレイされました、つまりStockfishは時間管理ヒューリスティックを使用しません(ストックフィッシュがゲーム内の重要なポイントを特定し、移動に余分な時間を費やす時期を決定するために多くの努力が注がれました.1回の移動ごとに一定の時間で、強さが著しく低下します)。

Stockfishは、1動きにつき1分で最高のチェスをプレーすることはできませんでした。プログラムはそのために設計されていません。

  • Stockfishは通常の商用マシンで実行され、AlphaZeroはAlphaZero用に調整された400万以上のTPUマシンで実行されていました。これは、ハイエンドのデスクトップを安価なAndroidスマートフォンと照合するようなものです。Tordが書いた:

1つは通常のコンピューターで実行される従来のチェスプログラムであり、もう1つは根本的に異なる技術を使用し、購入できないカスタムデザインのハードウェアで実行されます(そして、もしあれば一般ユーザーの予算からは外れます)。

  • Googleは誤ってStockfishの32コアマシンに64のスレッドを与えました。GMラリーカウフマン(世界クラスのコンピューターチェスエキスパート)を引用します。

http://talkchess.com/forum/viewtopic.php?p=741987&highlight=#741987

私は、テストが公正ではなかったことに同意します。SFを傷つける別の問題は、32コアマシンの64スレッドで実行されたように見えることでしたが、そのマシンで32スレッドだけを実行するとはるかに優れたパフォーマンスを発揮します。また、コスト比は私が言った以上でした。私はそれが64コアのマシンだと思っていましたが、32コアのマシンは私が推測したものの約半分のコストです。したがって、すべての30対1のすべてがそれほど悪い推定値ではない可能性があります。他方、あなたはそれがどれだけ改善できるかを過小評価していると思います。

  • Stockfishは1 GBのハッシュテーブルのみを提供しました。これは冗談です... Stockfish iOSアプリ用の大きなハッシュテーブルがあります(免責事項:私は著者です)。Tordが書いた:

    ...スレッド数に対してハッシュテーブルが小さすぎる...

1GBのハッシュテーブルは、このような一致にはまったく受け入れられません。Stockfishは頻繁にハッシュ衝突に遭遇します。古いハッシュエントリを置き換えるにはCPUサイクルが必要です。

  • Stockfishは、その数のスレッドで実行するようには設計されていません。私のiOSチェスアプリでは、少数のスレッドのみが使用されています。Tordが書いた:

...かなりの量のテストを受けたことのないほど多くの検索スレッドで遊んでいた...

  • Stockfishは、オープニングブックまたは6ピースのSyzygyエンドゲームテーブルベースなしで実行されていました。サンプルサイズが不十分でした。Stockfishバージョンは最新ではありませんでした。ここでの議論。

結論

Googleはその方法がStockfishよりも優れていることを疑いなく証明していません。それらの数字は表面的であり、AlphaZeroに強く偏っています。それらの方法は、独立した第三者によって再現可能ではありません。ディープラーニングが従来のチェスプログラミングよりも優れた方法であると言うのは、まだ時期尚早です。


編集(2017年12月):

チェスでの深層強化学習のためのGoogle Deepmind(https://arxiv.org/pdf/1712.01815.pdf)からの新しい論文があります。要約から、世界ナンバーワンのStockfishチェスエンジンは「納得のいく」敗北を喫しました。これは1997年のディープブルーの試合以来、コンピューターチェスで最も重要な成果だと思います。論文を詳細に読んだら、回答を更新します。


オリジナル(2017年12月以前)

質問を明確にしましょう。

  • いいえ、チェスエンジンブルートフォースを使用しません
  • AlphaGo ツリー検索を使用し、モンテカルロツリー検索を使用します。納得したい場合は、Google「Monte Carlo Tree search alphaGo」。

ANNはチェスエンジンに使用できます。

このプログラムは、今日のトップチェスエンジン(およびチェスプレイヤー)よりも優れたパフォーマンスを発揮しますか?

Giraffeは、国際マスターレベル、つまりFIDE 2400レーティングでプレイします。ただし、Stockfish、Houdini、KomodoはすべてFIDE 3000でプレーします。これは大きなギャップです。どうして?なぜモンテカルロツリー検索をしないのですか?

  • チェスのヒューリスティックな材料は単純です。ほとんどの場合、チェスのポジションはボード上の素材を数えるだけで勝ち負けになります。Goでは素材のカウントが機能しないことを思い出してください。マテリアルカウントは、ニューラルネットワークの実行よりも桁違いに高速です。これは、64ビット整数で表されるビットボードによって実行できます。64ビットシステムでは、いくつかのマシン命令のみで実行できます。従来のアルゴリズムを使用した検索は、機械学習よりはるかに高速です。1秒あたりのノード数が多いほど、深い検索に変換されます。
  • 同様に、ヌルムーブプルーニング、レイトムーブリダクション、キラームーブなどの非常に便利で安価なテクニックがあります。これらは実行コストが安く、AlphaGoで使用されるアプローチに対して非常に効率的です。
  • チェスの静的評価は高速で便利です
  • 機械学習はパラメーターの最適化に役立ちますが、チェス用のSPSAとCLOPもあります。
  • チェスのツリー削減に役立つ多くのメトリックがあります。Goの場合はそれほど多くありません。

モンテカルロツリー検索がチェスにうまく対応できないという研究がありました。Goはチェスとは異なるゲームです。チェスは残忍な戦術に依存しているため、チェスアルゴリズムはGoでは機能しません。チェスでは戦術が間違いなく重要です。

これで、MCTSはAlphaGoでうまく機能するが、チェスではあまり機能しないことが確認されました。ディープラーニングは次の場合により便利です。

  • 調整されたNN評価は、従来のアルゴリズムよりも優れています。ただし...ディープラーニングは魔法ではありません。プログラマーはプログラミングを行う必要があります。前述のように、チェスのパラメーターチューニングを自動再生するSPSAのようなものがあります。
  • 投資、お金!チェスの機械学習にはあまりお金がありません。Stockfishは無料でオープンソースですが、すべての人間プレイヤーを倒すのに十分な強さです。Stockfishを無料でダウンロードできる人がいるとしたら、なぜGoogleは何百万ドルも使うのでしょうか?CPUクラスターの費用を支払うのはなぜですか?誰が才能の代価を払うのですか?チェスは「解決された」ゲームと見なされるため、誰もそれを望んでいません。

ディープラーニングが以下を達成できる場合、従来のアルゴリズムに勝ります。

  • チェスの位置を考えると、それを人間のグランドマスターのように「感じる」。たとえば、人間のグランドマスターは、経験上、悪い行には入らないでしょう。従来のアルゴリズムもディープラーニングもそれを達成できません。あなたのNNモデルはあなたの位置の確率[0..1]を与えるかもしれませんが、それは十分ではありません。

指摘させてください:

いいえ。Giraffe(@Timが投稿したリンク)は、モンテカルロツリー検索を使用しません。通常のネガマックスアルゴリズムを使用します。通常の評価関数をNNに置き換えるだけで、非常に遅くなります。

もう一つ:

Kasparovは1997年の試合でDeep Blueにbeatられましたが。「人間性」は、KramnikがDeep Fritzとの勝負なしで試合に負け、Michael Adamsが一方的な試合でクラスターマシンに敗れた2003-2005年ごろに本当に失われました。その頃、Rybkaは世界の最高のプレーヤーでさえ強すぎることが判明しました。

参照:

http://www.talkchess.com/forum/viewtopic.php?t=64096&postdays=0&postorder=asc&highlight=alphago+chess&topic_view=flat&start=0

引用:

チェスでは、エンジンがどれだけうまく処理されているかを迅速に計算できる妥当な見積もりをすでに与えている重要性の概念があります。さらに、Goで行うことができなかった静的評価関数でエンコードできるゲームの他の多くの側面があります。多くのヒューリスティックと優れた評価のため、EBF(Effective-Branching-Factor)は非常に小さいです。静的評価関数の代わりにニューラルネットワークを使用すると、エンジンの速度が大幅に低下します。


1
ありがとうございました。いくつかの質問:チェスエンジンはアルファベータアルゴリズムを使用しますが、これは「ブルートフォース」アルゴリズムではありませんか?「モンテカルロツリー検索」とは、現在の位置よりも先に多くの動きがあることを意味しますか?
リハ

1
@lijas "brute-force"は、一般的にすべての可能性を検索することと定義されています。チェスエンジンはそれをしません。
-SmallChess

7
@lijas質問に答えました。行列の乗算は遅い操作です。
SmallChess

3
アルファベータ検索は、確かに「強引な」です。Hans BerlinerのAIトレンド:「最も重要なトレンドは、この50年でコンピューターがかなり高速化したことだと思います。人間の方法の本当の要点は、満足のいく解決策が見つかるまで単に列挙されたもっと強引な方法によって行うことができます。これが異端なら、そうしてください。(ieeexplore.ieee.org/document/820322/?reload=trueを参照)
ダニエル

1
@smallchessアルファベータは事実上の検索アルゴリズムであり、たとえnegascoutのような亜種であっても、漸進的な改善にすぎません。彼は他に何を参照できますか?これは、ディープラーニングシステムが登場するかなり前に書かれました。
ダニエルリドストローム

6

DeepBlueはすでにKasparovを打ち負かしているため、この問題ははるかに単純なアプローチで解決されます。これは、チェスの可能な動き数がgoの場合よりもはるかに少ないために可能であったため、はるかに単純な問題です。さらに、NNとブルートフォースの両方が巨大なコンピューティングリソースを必要とすることに注意してください(AlphaGoの背後にあるコンピューターの写真見つけることができます。囲withの大騒ぎは、ディープブルーがカスパロフを破ったとき、囲communityコミュニティは囲thisではこれが不可能だと主張したことです(多くのさまざまな理由がありますが、議論をまとめるために、ゲームの詳細な紹介をする必要があります)の)。はい、チェス、マリオをプレイするようNNに教えるか、プレイするように教えてみてくださいスタークラフト ...

その理由は、すでに解決された問題を人々が解決する場合について、主流のメディアで頻繁に耳にすることがほとんどないからだと思います。

さらに、あなたの前提は間違っています。ディープラーニングチェスをプレイするために使用されます。たとえば、ディープラーニングマシンは72時間でチェスを教える、国際マスターレベルでプレイするなどで説明されています。対応する論文「Giraffe:Deep Reinforcement Learning to Chess」も参照してください。


3
そこにもかかわらず、明らかにされて、いくつかの深い強化学習で訓練チェスプログラム、誰もが「伝統的」チェスエンジンを打つだろう1を内蔵していないという事実が残ります。これは、この問題(従来のエンジンに打ち勝つ)が、AlphaGoレベルの何かを開発するために必要な多くの努力を投資するのに十分に興味/動機付けられていないからだと思います。
アメーバは、モニカを復活させる

1
@amoebaの広く利用可能なゴープレイソフトウェアもディープラーニングを使用せず、通常はアマチュアの1ダンプレーヤーよりも弱く、AlphaGoよりもはるかに劣っています。AlphaGoは概念実証です。
ティム

1
@ rus9384それは簡単ではありませんが、すでに「解決」しました。DeepBluieはKasparovを打ち負かしました。チェスチューリングテストに合格したブラックスワンがいます。
ティム

5
解決されたゲームは別のことです:完璧なプレイが黒/白の勝利を保証するか、引き分けで終わるかはわかりません。
rus9384

1
@ rus9384:完璧なチェスAIを相手にゲームを開始し、「白の勝ち。97の動きでチェックメイト」を見るのは楽しいでしょう。
エリックドゥミニル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.