使用できる思考エンジンについて

Last-modified: 2019-06-08 (土) 13:25:47

このページでは、ShogiDroidで使用できる思考エンジンを初心者向けに分かりやすくご紹介します。

思考エンジンの仕組み

将棋の思考の3要素

将棋を指すとき、どのように指し手を決めていますか。おそらく大抵の人の指し手の決め方は、「定跡・探索・評価」の3要素に言い換えることができます。

定跡では、自分が既に知っている指し手を指します。そして定跡から外れたところからは自力で指し手を考えることになります。まず、「この手を指したら、相手はこう応じてきて、そうしたら自分はこのように返して、それに対する相手の応手はこれとこれの2種類があって、こっちの手に対しては……」などと先を読んで局面を探索し、「最終的に○手先に駒得になるからこの手は得だ」などの方法で損か得かの評価をしているのではないでしょうか。これが、「定跡・探索・評価」です。プロ棋士は3要素ともに人並外れた能力を持っているから非常に強いというわけです。

実は、コンピューターでもこの3要素は同じです。コンピューター将棋の思考エンジンは、「定跡ファイル・探索部・評価関数」の3つから成り立っています。そして、例えば、定跡ファイルは「まふ定跡」、探索部は「やねうら王」、評価関数は「tanuki-」というように組み合わせて使うこともできるのです。なお、定跡ファイルや評価関数は容易に入れ替えることができるため、単に「エンジン」と言った場合には、探索部のみを指すこともあります。

3要素ともに大切なものですが、最も強さに大きな影響を与えるのが評価の部分と言えるでしょう。人間の場合にも、プロ棋士の最も凄いところは、正確に局面の良し悪しを評価する大局観にあると言われています。そこで、評価関数の違いに着目して思考エンジンを見ていきましょう。最近のコンピューター将棋の評価関数は、大きく分けて、「2駒関係+利き型」「3駒関係型」「ニューラルネットワーク型」の3種類があります。

2駒関係+利き型

2駒関係+利き型は、コンピューター将棋にも影響を与えた著名なチェス思考エンジンのStockfishで採用されていた評価関数のタイプです。

2駒関係とは、簡単に言うと盤上の2つの駒の位置関係の組み合わせに点数を付けて、その合計点で評価を決めるというものです。コンピューターに限らず、「これは金銀の逆形だから悪形だ」みたいなことを考えますよね。それをすべての駒について考えて合計するのが2駒関係と思えばいいでしょう。2駒の位置関係に加えて駒の利きを考慮して点数を付けるのが、2駒関係+利き型です。

2駒関係+利きの評価は人間が考える「駒の効率」とほぼ同じものなので、人間の評価基準と非常に近く、人間から見て自然な手を指すのが特徴と言われています。また、評価関数自体のサイズが小さいため、メモリーの少ないスマホでも十分に力を発揮することができます。しかし、トップソフトのレベルになると、3駒関係型やニューラルネットワーク型に勝ち越すのはなかなか難しくなっています。

3駒関係型

3駒関係型は、コンピューター将棋界の先駆者であるBonanzaが発明した評価関数のタイプです。

先程説明した2駒関係だけではなく、玉を含む3駒の位置関係に点数を付けて評価を行います。現在では、3駒関係に加えて手番も考慮したKPPT型が主流となっています。また、省メモリーかつ高速な評価を実現するために手番の考慮を一部に限定したKPP_KKPT型(ただしKPPTよりもR100程度弱くなります)も存在します。

このタイプは、汎用性が高くて強いため、たくさんの思考エンジンに採用されています。しかし、KPPT型は、メモリーを大量に消費(1GB程度)するため、メモリーの少ない一部のスマホでは正常に動作しません。KPP_KKPT型はKPPT型の半分程度(512MB程度)にメモリー消費を抑えてはいますが、2駒関係+利き型やニューラルネットワーク型と比較すると依然として2倍程度のメモリー消費量です。

ニューラルネットワーク型

ニューラルネットワーク型は、Google社のAlphaZero、日本ではtanuki-によって将棋界に持ち込まれた新手法です。

ニューラルネットワークとは、人間の脳の構造を参考にして開発されたシステムです。人間の脳は、神経細胞(ニューロン)同士がシナプスと呼ばれる結合部でやり取りをし、繰り返しやり取りをする部分のシナプスの結合を強化していきます。これが「学習」です。プロ棋士の脳は、何度も将棋を指す中で、良い将棋に共通する駒の位置関係についてシナプスの結合を強化し、無意識のうちに正確な局面評価ができるように発達したのではないかと考えられています。そして、これと同じことをコンピューターで再現したのが、ニューラルネットワークです。ニューラルネットワークを使って深層の機械学習を行うことをディープラーニングと言います。

AlphaZeroは公開されていないため恐ろしく強いということしか分かっていませんが、tanuki-が生み出したNNUE型は急速に普及し、従来の主流であったKPPT型に対して高い勝率を残しています。また、メモリー消費量も少なく、ほとんどのスマホで正常に動作します。一方で、他の評価関数と比べてバッテリー消費量が多く、またスマホの場合は発熱によるバッテリー寿命低下の原因となりえるため、注意が必要です。

まとめ

将棋の思考エンジンは定跡ファイル、探索部、評価関数の3つから成り立っており、このうち評価関数には異なる特徴を持つ「2駒関係+利き型」「3駒関係型」「ニューラルネットワーク型」の3種類があるということをご理解いただけたでしょうか。

以下では、これら3種類の評価関数タイプごとに、ShogiDroidで使用できる思考エンジンを紹介していきます。

なお、SDTやWCSCという記号が頻繁に出てきますが、これはそれぞれ「将棋電王トーナメント」と「世界コンピュータ将棋選手権」というコンピューター将棋の大会の略称で、その大会で使われたバージョンを意味しています。例えば、SDT5ならば「2017年11月の第5回将棋電王トーナメントで使用されたバージョン」、WCSC28ならば「2018年5月の第28回世界コンピュータ将棋選手権で使用されたバージョン」という意味です。

また、Rという数値を記載していますが、これはコンピュータ将棋 まとめサイトというウェブサイトが調査しているイロレーティングと呼ばれる指標です。イロレーティングが200異なる相手と対戦した場合、イロレーティングが高い側が76%程度の勝率を残すことが期待されます。

2駒関係+利き型

GPSFish

  • R3035 (GPSFish minimal)

東京大学が開発した思考エンジンです。評価関数はコンピューター将棋ソフト「GPS将棋」、探索部はコンピューターチェスソフト「Stockfish」を将棋用に改造したものです。定跡ファイルはGPSFishオリジナルのものが搭載されています。

GPS将棋は、世界コンピュータ将棋選手権で2009年と2012年に優勝しています。また、2013年の将棋電王戦では、A級棋士の三浦弘行九段に勝利しました。しかし、現在では他の強豪ソフトに押され気味です。

消費メモリが最も少なく、あらゆるスマホで快適に動作することから、ShogiDroidでは別途ダウンロードしなくても標準で同梱されています。また、GPSFishの無駄な部分を削ってわずかに強くした「GPSFish minimal」をインストールすることもできます。

技巧

  • R3795 (Gikou 2)

コンピューター将棋界に彗星のごとく現れた革命的な思考エンジンです。評価関数はオリジナル、探索部はコンピューターチェスソフト「Stockfish」に似たオリジナル、標準で世界最大の定跡ファイル「まふ定跡」が搭載されています。

2駒関係+利きをベースにし、人間の棋士が形成判断に使用する「駒の損得」「駒の効率」「玉の堅さ」「手番」の全てを評価関数に盛り込んでいることが最大の特徴で、コンピューターらしからぬ自然な指し手とされています。トップランナーのほとんどが3駒関係型となっている中で、もう通用しないと思われていた2駒関係+利き型を独自に進化させた評価関数を開発し、2016年の世界コンピュータ将棋選手権で準優勝して衝撃をもたらしました。

ShogiDroidでは、2017年にリリースされた「技巧 2」をインストールして使うことができます。

3駒関係型

Apery(大樹の枝、浮かむ瀬)

  • R4006 (Apery SDT5)

現在のコンピューター将棋ソフト興隆のきっかけを作った定番の思考エンジンです。評価関数、探索部、定跡ファイルは全てオリジナルです。なお、「大樹の枝」や「浮かむ瀬」などの別名があります。将棋ウォーズでもAperyのBOT(通称「猿」)が活躍しています。

2014年の世界コンピュータ将棋選手権で優勝。その後も世界コンピュータ将棋選手権、将棋電王トーナメントで毎年のように上位入賞を続けています。Aperyが全てのソースコードを公開したことで、「やねうら王」「読み太」「elmo」などApery互換の思考エンジンが数多く作られています。

ShogiDroidでは、「Apery SDT5」「やねうら王 4.79 KPP_KKPT + Apery SDT5」をインストールすることができます。Apery SDT5は、評価関数、探索部、定跡ファイルの全てがAperyオリジナルのものです。やねうら王 4.79 KPP_KKPT + Apery SDT5は、やねうら王の探索部と定跡ファイルにAperyの評価関数を搭載したものです。KPP_KKPTは、手番の考慮をKKP(先手玉と後手玉の両方を含む3駒関係)に限定したもので、高速・省メモリーで動作します。やねうら王の探索部を使うことで棋力がR100程度上がる一方、KPP_KKPTにすることで棋力がR100程度落ちるため、Apery SDT5とやねうら王 4.79 KPP_KKPT + Apery SDT5の棋力はほぼ同等です。

やねうら王

日本史上最高の天才プログラマーと呼ばれている「やねうらお」氏が開発した思考エンジンです。やねうら王の探索部には、Apery互換の評価関数や定跡ファイルを自在に組み合わせて使うことができます。やねうら王の探索部は非常に優秀なため、多くの思考エンジンがやねうら王の探索部に別の評価関数を搭載することで動作しています。

2014年の将棋電王戦では佐藤紳哉六段(当時)、2015年の将棋電王戦では稲葉陽七段(当時)に勝利しました。やねうら王には、KPPT版(通常版)、KPP_KKPT版、NNUE版の3つがあります。KPP_KKPTは、手番の考慮をKKP(先手玉と後手玉の両方を含む3駒関係)に限定したもので、棋力が若干(R100程度)落ちる代わりに、高速・省メモリーで動作します。NNUEは後述のニューラルネットワーク型の評価関数をやねうら王で使用できるようにしたもので、消費電力が増える代わりに棋力が上がります。

ShogiDroidでは、「やねうら王 4.74 + relmo」「やねうら王 4.79 KPP_KKPT + Apery SDT5」「やねうら王 4.83 NNUE + tanuki- WCSC28 (SkillLevel、OwnBook対応版)」などを使うことができます。どれもやねうら王の探索部と定跡ファイルに他の評価関数を搭載したもので、評価関数によって棋力は大きく変わります。この他、公開された評価関数や定跡ファイルなどを自分で探してきて、入れ替えることもできます。

読み太

  • R3657 (Yomita WCSC27)

やねうら王を改造した思考エンジンです。一時期は本家のやねうら王を凌ぐ実力を誇っていました。

ShogiDroidでは「読み太 WCSC27」を使用することができます。

elmo

  • R3984 (YaneuraOu 4.73 + elmo WCSC27)

2017年の世界コンピュータ将棋選手権で優勝した強豪評価関数です。探索部はやねうら王で評価関数と定跡ファイルはオリジナルです。

ShogiDroidでは、「やねうら王 4.74 + relmo」などが利用できます。これは、やねうら王の探索部に評価関数relmoを搭載した思考エンジンです。relmoは、rezero epoch8とelmo WCSC27という2つの評価関数のキメラ(合成)で、elmoよりもわずかに強いです。

ニューラルネットワーク型

tanuki-(平成将棋合戦ぽんぽこ、T.N.K.)

  • R4152 (tanuki- WCSC28)

現在、コンピューター将棋界で最も注目を集めている思考エンジンです。探索部にはやねうら王が使用されています。なお、平成将棋合戦ぽんぽこ、T.N.K.など様々な別名があり、大会ごとにタヌキにまつわる新しい名前に変更されています。

これまで、古参の思考エンジンの代表格であるBonanzaやPonanza、さらには現在の主流派であるApery系列・やねうら王系列の思考エンジンはいずれも3駒関係型の評価関数を採用していました。2駒関係+利きという構成で結果を残した技巧という例外的な存在はいたものの、3駒関係型がトップソフトの大半を占めていたと言えます。tanuki-も当初は3駒関係型の評価関数で活躍し、2017年の将棋電王トーナメントで優勝しました。しかし、それに飽き足らず、2018年には人間の脳の構造を再現したニューラルネットワークによる将棋の学習という新境地を開拓し、一躍注目を集めています。

ShogiDroidでは、「やねうら王 4.83 NNUE + tanuki- WCSC28 (SkillLevel、OwnBook対応版)」を使用することができます。現時点では最強の思考エンジンと言えるでしょう。ただし、バッテリーの消費が多いので注意が必要です。

終わりに

以上でShogiDroidで使用できる思考エンジンの紹介を終わります。気になる思考エンジンがあれば、さっそく思考エンジンのインストール方法を参考にインストールしてみましょう。

説明を読んでもよく分からなかった方には、比較的多くのスマホで動作する最強クラスの思考エンジンとして、以下の3つをおすすめします。

  • 指し手が自然で人間に近い(2駒関係+利き型) 技巧 2
  • 電力消費や発熱が少ない(3駒関係型) やねうら王 4.79 KPP_KKPT + Apery SDT5
  • 棋力が最も高い(ニューラルネットワーク型) やねうら王 4.83 NNUE + tanuki- WCSC28 (SkillLevel、OwnBook対応版)

お気に入りの思考エンジンを見つけて対局・検討を楽しみましょう。


「上手くできた!」「上手くできない…」などの感想は以下のコメント欄からご自由にどうぞ。

  • 藤井くんは昔はパソコンでAperyを使用している場面がテレビに映っていました。今もApery系を使っているかも? https://i.imgur.com/B40FzC2.jpg -- 2019-01-07 (月) 22:40:15
  • 記事の作成お疲れ様です。tanuki-について詳しく解説いただきありがとうございます。一点だけ訂正させていただきたいと思います。2017年の第5回電王トーナメントの「平成将棋合戦ぽんぽこ」はKPPT型評価関数を使用しておりました。お手すきの際に修正いただければ幸いです。よろしくお願いいたします。 -- nodchip? 2019-01-22 (火) 19:09:10
    • 記事作成者じゃないけど修正してみました! -- 2019-01-22 (火) 19:44:17
      • 修正確認いたしました。ありがとうございました! -- nodchip? 2019-01-23 (水) 08:50:26
      • nodchipさんってtanuki-の開発者の方!?いつもShogiDroidでtanuki-使ってます!大会応援してます! -- 名無しの棋士? 2019-01-24 (木) 00:40:27
  • いつもありがとうございます。思考エンジンに脊尾詰は利用できますでしょうか?余詰めの確認などに使えれば…などと考えています。スマホで使えたら最高です。 -- cotanuki? 2019-03-04 (月) 15:37:56
    • 使えなさそう -- 2019-03-04 (月) 22:14:20
  • 応用できるようになるとこの間のWCSC29の評価関数が使えるようになるよ -- クソネミ? 2019-06-08 (土) 13:25:47