昨日の記事
未来の将棋の普通/羽生三冠の挑戦
の中で、究極棋譜について触れました。具体的にどうやったらできるのかさらに踏み込んで、「未来の将棋の普通」をより克明にしようと思います。
まずわかっていることは、それは今すぐにでも金さえあればできてしまうだろうということです。
囲碁の世界ではグーグルの人工知能がプロを破りましたが、そのために30億円くらいかかったのではないかと試算されています。
AlphaGoの運用料金は30億円以上? - ITmedia ニュース
将棋でもこれくらいかければ、究極棋譜の一つや二つ出てくるに違いありません。
でも、せっかくですから、どかっとどっかから予算を持ってくるのではなく、今将棋界でやっているように、ちまちまとやって経済効果を生み出しながら、その利益でさらに開発を進めていくのが、はるかに筋のいいやり方です。
まったくグーグルはいつも景気を悪くするやり方で困ります。
お金のことはこれくらいにして、具体的にどうするか。
まずは、コンピュータ同士で将棋を指して指して指しまくります。別に相手を変える必要なくて、 Ponanza なら Ponanza 同士で指せばいいです。
とりあえずおおまかな戦型を決めて、角換わりの主流な序盤20局面位を起点に。
将棋DB2には、現在18万くらいの棋譜があるようですが、この際人間の棋譜は無視。間違いだらけですから。
必要なだけサーバ用意して、一時間に100局くらい指すことにしましょう。このときコンピュータは中盤であまり深く読む必要はありません。一方終盤は、ある程度読んで、ある程度評価値に差が出たら、そこで対局終了。終盤は間違いが少なくなってきていますから、最後までやる必要はありません。打ち切りは段階制でもいいでしょう。1秒読んで差が1000とか2秒読んで差が800というような。
これで100日くらいぶっ通しに指し続けると、24万局くらいの棋譜データが作れます。優劣がはっきりした場面を終盤と考えれば、終盤データベースができたことになります。ポイントは、これも完全でなくていいということです。評価点で読みを打ち切った以上、ごくわずかな確率で間違いは入っているかもしれません。でもとりあえずそれでも構いません。
その中で、棋譜の樹形図を作って、先手の勝ちの密度が高いところをとっかかりにします。もちろん後手勝ちで探しても構いません。これは100日待つ必要なくて、何万局と棋譜が増える中で、有望そうなのを見つけたらそこからとっかかればいいです。
とっかかりができたら、後ろから遡って先手必勝の中盤の棋譜を構築していきます。終盤データベースから勝ちの固まってるところをとっかかりに2手遡って、そこを起点にまたコンピュータ同士で戦わせ、どうやら相変わらず先手必勝であることを確認していきます。ここも完璧に読み切る必要はありません。確率的に確からしいというところまでこなせばオッケーです。
これを繰り返すことによって、プロでも知ってるような中盤の局面まで遡れれば、まずは究極棋譜と呼べる棋譜の完成です。それが今の定跡でたどりつけるとこだとすると、先手必勝という一つの形ができます。
ここからは3つの作業が始まります。
その究極棋譜が本当に先手必勝なのか。いままである確率で確からしいとして打ち切っている読みを、さらに深めて確認していく作業。
もう一つは、さらに2手ずつ遡る作業です。さらに2手前でも先手必勝なのか。もし1手前に後手妙手があって、その後形勢不明(形勢を判断するにはここまでの作業と同じくらいの手間がかかるので簡単ではない)となれば、その究極棋譜は残念ながらそこまでであり、以降、その手順に飛び込む後手コンピュータはいなくなります。
もう一つは、さらに別の究極棋譜を探すことです。
これが全国の将棋ソフトによって行われます。Ponanza だけでなく、浮かむ瀬、真やねうら王、読み太といったそれぞれのソフトが究極棋譜の探索を始めます。またそのソフトは配布され、誰でも探索ができるようにもなるでしょう。そして指された棋譜は各陣営ごとか、あるいはすべての陣営まとめてデータベースに集約されるでしょう。その時は私も自前のコンピュータでその探索に参加することでしょう。上には3つの作業を書きましたが、各ユーザーは自分の好きな作業を選んでデータベースの充実に貢献すればいいのです。
こうなってくると、棋譜の増加は爆発的になります。さっき1時間に100局としましたが、何千という棋譜が生まれることになるでしょう。
30億円かけなくたって、こうやって将棋の究極棋譜は探索されていきます。
たとえば1億局くらいの棋譜が揃ったとしましょう。1時間に2000局指されると、6年弱で集まる計算です。
ちなみに1億局の棋譜、1つの棋譜が1KBとしても、容量にしてたった100GBです。誰でも手元に置けてしまうサイズです。棋譜サーバを作るのはわけない話です。せっかくですから、手順だけでなく1手ごとの局面も記録すると合流する棋譜の探索が楽になるかもしれません。容量増加は大したことありません。
そうなると探索方法も変わってきます。Ponanza の中で新たに1局指すとします。序盤のある局面で、その局面は今まで何百万指され、そのうち先手が何勝したかといった情報が、データベースから届きます。対人間であれば、そのデータベースだけ見て指しても勝てることでしょう。もちろんある局面からの勝率だけでは、そこから針の糸を通すような逆転手順を見逃すこともありますが、それは勝率を重み付き勝率にするとか工夫すればいいだけです。1億ってたったの100M、普通に手に入るCPUが3GHz。勝率の再評価とか好きなだけできます。
探索では、そのデータベースの統計情報を元にしつつ指し進め、どこかチャンスがありそうなところで、データベースにない手を打ちます。そこからは、従来の今ある方法で指し手を進め、優劣がはっきりするところまで戦って終わり。その棋譜を新たにデータベースに加えます。データベースはさらに強化されます。
究極の棋譜を作る作業はプロ棋士ではなく、日本中、世界中に広がる私たちのコンピュータによって不眠不休で進められることになるのです。
プロの戦いはどうなるでしょう。今でも序盤では、この局面は過去何局さされ、先手の何勝というデータが指し示されますが、今後は、その局面が何万局探索され先手の何千勝、つまり勝率何%というデータになっていきます。
それが、中盤くらいで先手の勝率95%ほぼ勝ちなんて数字が出るようになります。
今は、Ponanzaでは評価値何点と表示され、中盤だとまだまだ評価が揺れたりするわけですが、近い将来、ここからの勝率何%とデータベースに基づいた統計情報になるのです。
そして次の1手は、その%の高い方から順番にいくつか並べて、さあここで先手は何%の手を指すでしょうかというアンケートに変わるわけです。そこでデータベースにもない新手が登場することもあるかもしれませんが、それはおそらく悪手になることでしょう。
その先、将棋はどう結論されるのでしょうか。双方が統計情報に基づきベストを尽くしてしまうと先手が勝つのか、後手が勝つのか、あるいは引き分けてしまうのか。
この記事などにもあるように、Ponanza は参考にするプロの棋譜が足らなくてすでに自分で棋譜を作っているようです。
棋士VS5万局の棋譜を覚えるコンピュータ、互角に戦えるのはなぜ? 人間という貧弱なハードウェアのおもしろさ
プロの対局の中継が評価値から、探索データベースでの統計情報になるのに、5年もかからないことでしょう。
《ワンポイントミライ》(?)
ミライ: 将棋が事実上解けるのに、もう秒読みですね・・・。
フツクロウ: ホウじゃな。
ミライ: 主要戦型はあっという間に解析が進むでしょうから、今後はコンピュータによって示唆される新しい戦型を試していくことになるんでしょうね。