アピール文から読み解くWCSC27の見どころ(ponanza_chainer編)
コンピュータ将棋選手権(WCSC27)まであと半月。最年少棋士の躍進によってすっかり忘れられがち(当社比)なコンピュータ将棋ですが、今年も実に面白い独自性を発揮したソフトがWCSCに参加しています。そこで、久々のシリーズ物として、WCSC27に参加しているソフトのアピール文を、私、Qhapaqの開発者が読解/解説していきたいと思います。
本シリーズを通じて、皆様がコンピュータ将棋を好きになってくれれば、そして、人工知能の織りなす科学を楽しんでいただければ幸いです。
注:以下の考察はQhapaq開発者の予想です。開発者に確認をとっているわけではありません。あくまで参考として楽しんでいただけると幸いです。
・コンピュータ将棋業界の絶対王者 ponanza
ponanza_chainerのアピール文:
http://www2.computer-shogi.org/wcsc27/appeal/Ponanza_Chainer/Ponanza_Chainer.pdf
sdt、WCSCを連覇し続ける絶対王者ponanza。その後につく恐るべきchainerの文字。そう、彼らは遂にディープラーニングを将棋に取り入れてきました。ponanza開発陣、PFNの精鋭、超高火力ハード。一つだけでも即死級のヤバさですが、そんなのが3つも4つもくっついています。そこまでしなくても勝てるのに。独創賞まで狙ってこなくてもいいのに。
以下、怨嗟の声をぐっとこらえて、ponanza_chainerのアピール文を読み解いていきます。
・ディープラーニングを用いた完全情報ゲーム
ディープラーニングを使って完全情報ゲーム(将棋、チェス、囲碁etc)の盤面を評価させる際には、まず最初に、局面をネットワーク(以下DNN)に入れた時に「その局面の点数を出力する」か「指すべき手の確率分布を出力する」かに注目する必要があります。
例えば、DNNを用いたチェスの研究では、局面をinputにして評価値をoutputにする学習がなされています(web上のチェスの棋譜と勝ち負けの結果を教師に作っているようです)。
https://erikbern.com/2014/11/29/deep-learning-for-chess.html
DNN自体は悪くない精度で局面を評価できるようですが、計算コストが割に合っていないらしく、既存ソフト(sunfish。どのぐらい強いかは知りません)に勝ち越すことはできていないようです。
チェスや将棋のように駒得が勝敗に強く響くゲームでは、ある駒が別の駒を取れるという位置関係がとても重要で、逆に、それさえ抑えればある程度の精度で盤面を表せる(KPPTとかはそういった発想から来ています)ため、DNNにしたときの計算コストが割に合わないことが多いというわけです(ゲームによってはこれでも割に合うとは思いますが)。
一方、alpha goなどでは、局面をinputに評価値ではなく指すべき手の分布を出力してくれます。こうすることで、局面毎に合法手全ての分岐を扱う必要がなくなるので探索の効率がぐっと上がります。
AlphaGo の論文をざっくり紹介 - technocrat ←有志による読みやすい解説
アピール分などの言い回しから推理するに、今回、ponanza_chainerが成功させたDNNによる局面評価もalpha go型(局面をinputに指すべき手の分布を出すタイプ)であると考えられます。
注:DNNの学習方法については私個人の知識+集められる情報だけでは判断できませんでした。alpha goのような棋譜の再現率を上げる→その後にTD学習、または、ポーカーの論文のようなreinforcement learningである可能性は高いと思ってますが...
しかし、DNNが高精度な局面判定ができる(アピール文によると54%当たるらしい)としても、将棋によくある長い変化手順を静止局面判定だけで扱える見込みは低いです。故に、開発者的にはどうやってDNNを使って深く読むかが気になります。
・alpha goの方法 + ponanzaによる補正と予想
DNNを使った探索方法。私は基本的にはalpha goの方法(木探索モンテカルロ法。良さ気な手を実際に指させてみて、勝率が一番高い手を採択する)を使ってくると予想しています。
合法手の読む順番を決める(良い手を先に読んだほうが探索効率が上がる。既存ソフトでは相手の駒を取る手などが優先的に読まれる)のにDNNを使うなど、既存の探索に組み込むのもアリですが、枝狩りとDNN双方で新しいアルゴリズムを使うと、仮に強くならなかった時にその原因が枝狩りにあるのかDNNにあるのかが解らず、開発の難易度が指数関数的に上昇するからです(業界用語で次元の呪いと言います)。
また、ponanza_chainerが用意しているという高火力ハードは特にgpuが強い(知人からの又聞きですが)らしく、並列性の高い木探索モンテカルロ法と相性がよいのもポイントです。
さて、DNN+モンテカルロベースの探索には、不利を認識すると良く解らない手を指す(alpha goもセドル戦4戦目で引っかかった)などの弱点がありますが、ponanza_chainerの場合、こうした弱点をponanzaで埋めあわせてくる可能性があると思っています。
例えば、開始局面で浅く読ませることで局面の有利さを大雑把に見積もる。終局まで指させず、50手ぐらいでponanzaの評価値を参照し、有利な方を勝ちとするなどは比較的実装が容易なのではないでしょうか。
ponana_chainerはponanzaによるダブルチェックが使える分、alpha go以上に隙がない作りになっていると予想しています。
・Qhapaq的総評
今回もponanzaが優勝候補なのは間違いないでしょう。普通に戦ってきても優勝候補なのに、DNNという新しい概念を持ちだしてくれたことには尊敬の念を抱かずにはいられません。
ただ、KPPT型の評価関数と評価軸(読み筋)が変わるのであれば、その分付け入る隙もあると思っています。浮かむ瀬ややねうら王を相手にそのへんの穴も埋めてるとは思いますが、諦めずに挑戦していきたいところです。
ちなみに、Qhapaqは昨年のWCSCでもponanzaにあたっていますが、多分誰も覚えていないのではないかと思います。
対局表貰うときにおめでとうございますって言われた。赤紙かな。 pic.twitter.com/YToDre2oIW
— Qhapaq (@Qhapaq_49) 2016年5月4日