将棋AIからチェスAIに持っていけそうな技術3選

※ この記事の英語版はこちらです。

NNUE評価関数がStockfishに移植され、顕著にその効果を発揮しました。

https://github.com/glinscott/fishtest/wiki/Regression-Tests

私が昨年に「NNUE評価関数はStockfishに逆輸入すれば、おそらくStockfishの棋力もR100~200ぐらい上がるはずの技術です。」とどんぶり勘定で言った言葉が図らずも実現してしまいました。

※ http://yaneuraou.yaneu.com/2019/05/31/leela-zero%e3%81%8cstockfish%e3%82%92%e8%b6%85%e3%81%88%e3%81%9f%e4%bb%b6/

その結果、「いまや、お前の言っていたことは完璧証明された!他の将棋ソフトのテクニックも教えてくれ!」みたいな問い合わせが私の元にちょくちょく来るようになりました。

そこで、とりあえず、将棋AIの技術で、Stockfishに持っていけば効果あるだろうと思われる技術を3つ選んで書いてみたいと思います。

1. 確率的最適化(Stochastic optimization)

たぬきさん(@nodchip)がWCSC27で利用したHyperoptによる探索パラメーターの自動最適化技術があります。

※ WCSC27 tanuki-チームのPR文書 : http://www2.computer-shogi.org/wcsc27/appeal/tanuki-/appeal.pdf

いまならPFNの開発したOptunaを使うべきところでしょうか。

※ Optuna : https://github.com/optuna/optuna

探索パラメーターを一つ一つ調整するのではなく、各種枝刈りのオン/オフ、評価関数のnetworkサイズ等も含めて、確率的な最適化でまとめて調整してしまいたいところです。

2. 評価関数の切り替え

評価関数の雑巾絞り(iterative reinforcement approach)では教師生成時のdepthを上げなければならないのですが、指数関数的に必要な計算資源が増えていくわりにはわずかしかレーティングが向上しなくなってきて、すぐに限界を迎えます。

AlphaZeroのようなDeep Learning系の評価関数に比べると、NNUE評価関数の表現力は、乏しいので、あらゆる局面で妥当な評価値を返すことを目指しても失敗します。

序盤・中盤・終盤ごとに異なる評価関数を用意するだとか、戦型別に評価関数を用意するだとか、評価値の差ごとに評価関数を用意するだとか、何らかの方法で評価関数によりカバーできる守備範囲を分担することが大切だと思います。

3. 定跡の自動生成

やねうら王(WCSC29優勝ソフト)では、テラショック定跡という、定跡自体を自動生成する技術を採用しています。

テラショック定跡の生成手法 : http://yaneuraou.yaneu.com/2019/04/19/%e3%83%86%e3%83%a9%e3%82%b7%e3%83%a7%e3%83%83%e3%82%af%e5%ae%9a%e8%b7%a1%e3%81%ae%e7%94%9f%e6%88%90%e6%89%8b%e6%b3%95/
やねうら王 WCSC30 PR文書 : http://yaneuraou.yaneu.com/2020/03/28/%e3%82%84%e3%81%ad%e3%81%86%e3%82%89%e7%8e%8b-wcsc30-pr%e6%96%87%e6%9b%b8/

これは、大雑把に言うと、
1) 与えた棋譜の各局面で長い時間かけて思考した結果を定跡DBに書き出す
2) 定跡DBに登録されている各局面をゲーム木のleaf nodeとして、平手の初期局面からmin-max探索を行い、定跡木を生成しなおす
というものです。

まとめ

とりあえず、即効性がありそうなものを3つ選んでみました。チェスのほうで本当に使えるかどうかは、私にはわかりません😅

6 thoughts on “将棋AIからチェスAIに持っていけそうな技術3選

  1. nnueになってから3回パワーアップしてますね。フリーザみたいに。そのテクニックは将棋に輸入できるのかな。後半は読み負けるのでnnue止めるんでしたっけか?

    • チェスに持っていけそうな
      ・視聴者のpcパワーで元気玉。くじら将棋でしたっけ?
      ・スレッド128だしLazy SMPもこれ以上工夫できないなら64スレ&64スレで楽観的合議
      というかLazy SMPってやねさん独自の工夫してなかったっけか

  2. ものすごく関係ない話になるけど、翻訳サイトで英語に変換することが前提の文章って、独特な雰囲気を帯びてしまってアレですよねw
    これは英語のあの文法で文章を作らせるため、これは英語のあの言い回しを使って文章を作らせるため、みたいなw

    • 機械翻訳しやすい日本語を書こうとしますので、主語、目的語を省略せずに書いたり、まあ、日本語として不自然な文体にはなりますね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です