プロフィール

Author:heartruptcy
FC2ブログへようこそ!

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

心折れ太の心折れる毎日
研究者の雑感を綴ります。プログラミングや書評など。
電王戦
●概要
電王戦について書こうと思う。理由は世の中には将棋がそこそこ強くて、かつコンピュータ将棋にもある程度詳しいという人の解説がないように思われたからである。参考までに私の棋力は将棋倶楽部24のレートで2200程度、アマ4段レベルである。コンピュータ将棋の開発に一瞬関わったことがあるが、まもなく断念し、今でも関わりたいと思って、たまにゲームプログラミングワークショップ(以下、GPWと略す)の論文集でアルゴリズムの勉強をしているレベルである。両方とも一般の方よりは経験があるがまあ中途半端だ。この記事ではコンピュータ将棋の特徴、つけいる隙について思っていることを書く。長文ですまぬ。


●両者の戦績
まず、あから2010との対戦直後のインタビューの「言いだしっぺ、やるの法則」とは言え、誰も戦いたくないコンピュータ将棋に挑んだ米長会長に拍手したい。米長会長は8年ほど前に現役を引退をしているが、全盛期は名人、現役続行していたら現在でも順位戦C1レベル程度と思われる居飛車党の強豪である。詳しくはwikipediaを参照されたし。一方、ボンクラーズは直近の世界コンピュータ将棋選手権の優勝ソフトであり、雛形は有名なボナンザである。将棋倶楽部24のレートは3364というから驚きである。かつてまだレートがそんなにインフレしていなかった頃には3000や3100超えたハンドルネームが現れた時は、アマトップレベルの間で○○は羽生だ森内だと騒がれたものだ。今でも3364と言えばトッププロレベルと判断しても差し支えない。これらの背景からややボンクラーズ有利かという下馬評ではじまった電王戦である。余談ではあるが、コンピュータ将棋選手権の棋譜は閲覧することができ、毎年アマ初段以下が戦っているかのような棋譜である。なぜハードウェアの上限を決めたガチンコ勝負をやらないのか謎である。


●コンピュータ将棋の計算内容
さて本題である。コンピュータが何をやっているか(何を計算しているか)、その結果なぜ強いのか説明を試みたい。分かりやすく言えば、コンピュータは全部の手を読んでいる。ただ、自分の手と相手の手の組み合わせは膨大で計算機がどんなに発展してもとてもではないが完全に全ては試せない。効率よく探すために色々工夫している。その工夫とは、探している途中で自分がかなり悪くなったなぁと思うような局面がでてきたら、その局面に至る過程で選んだ手(悪い手)はすぐに捨てる(読みからはずす)ということである。

ここで一番の重要ポイントがある。局面の悪さ・よさ(局面の評価, 人間は大局観とも呼ぶ)をどのように計算しているかという点である。10年ぐらい前は将棋がある程度強い人間が、「駒に点数つけて、駒得の程度を計算しようぜ」「いや、玉の堅さも重要だ」「大駒が動ける範囲なんかどう?飛車先の歩切ったりするといいしさ。」「玉が角に直接にらまれてるとよくないよね」などなど、将棋がある程度強い人が常識で考えたいくつかのモノサシで勝手に点数をつけて、その合計値で局面の評価をしていた。今の局面の評価の主流こそ、ボナンザがはじめて実装した方法である。その方法が発表されて以来、他の将棋ソフトこぞってその方法(ボナンザメソッド)を取り入れ、将棋ソフトの実力を大幅に向上させた。2006年のできごとである。

厳密な正確さを犠牲にしてボナンザメソッドを分かりやすく説明したい。一言で言えば、将棋強くなりたい人が誰もが通る道である「プロの棋譜並べ」である。人間はプロの棋譜を並べて「なぜこの手を選んだか」「自分が考えた手との差はどこか」などを考えに考えて強くなる。ボナンザも根本では一緒である。ただ、何を学んでいるかというと、「プロの選んだ手は最も自分の点数がアップするように選んだ手である」すなわち「プロの手は正解である」という仮定のもと、駒と駒の位置関係できまる点数をあれこれ調節しているのである。駒と駒の位置関係とは、例えば、自玉と自陣の金銀であったり、自玉と敵飛車であったり、敵玉と敵陣に打ち込んだ銀だったりする。もちろんこれも全ての位置関係は時間がとてもかかって計算できないので、効率的に選ぶ(主要なものを計算したりする)。

点数の調節のイメージは、例えば、ある棋譜の中で将棋ソフトが敵陣に飛車を打ち込む手(71飛)と自陣の金を移動させて自玉を固める手(68金)で迷っているとしよう。今までの学習だと敵陣に飛車を打ち込む手の方が点数が高いと思っていたが、プロはその棋譜の中で自陣を固める手を選んだとする。すると、少しだけ41の飛車と敵玉の位置関係できまる点数を少しダウンさせて、自玉から見た68の金の点数を少しだけアップさせるという具合である。並べる棋譜は例えば30万局, 1局100手としたら3000万手である。しかも1局面ごとに位置関係を計算しているので、学習だけで3ヶ月とかかかっている。まあ人間が学習するよりはるかに早いけれども。最近では駒の位置関係だけでなく、先ほどの常識的そうなモノサシをいっぱい考えて、その点数を自動的に学習しているようだ。たとえばGPS将棋などではここを参照。

結果、プロの棋譜によく出現する手、よく出現する位置関係ほど点数が高くなる。矢倉相手に41に銀をひっかけるだとか、手筋のようなものは全て学ぶ。ポカも出現割合が少ないので学習過程で無視できる。逆に言うと棋譜にあまり残っていないものは学習できていない。すなわち苦手である。例えば、相入玉の将棋である。片方が入玉している局面も苦手である。これらは将棋倶楽部24の相入玉の将棋だけ選んで学習させたり、いま研究されている最中である。

以下余談であるが、コンピュータ将棋の局面評価は過去のプロの総多数決みたいなものである。コンピュータ将棋に勝つには、見たこともないような手が必要かもしれない。よくタイトル戦では、「控え室で検討されるような普通の手では勝てない。びっくりするような手でないとタイトルがとれない」というが、これはまさに対コンピュータ戦でも成り立つのではなかろうか。


●コンピュータ将棋の序中終盤別の実力
次にコンピュータ将棋の特徴を序盤、中盤、終盤(この区切りは人間による分かりやすさのための勝手な線引きであるが)ごとに説明したい。コンピュータ将棋の得意なもの順に説明をする。

・終盤
詰将棋は10年ぐらい前にdf-pnというアルゴリズムがでてきて以来かなり研究が進んでおり、もはやトッププロを完全に超えている。個人的な感覚としては研究の完成度は99%ぐらいであり、もはや研究しても実際上の大きな改善はないと思われる。必死に関しても2011年11月のGPWで発表されたように、かの有名な「来条克由必死名作集」を完全に解いて、さらに余詰ならぬ「余必死」を発見している。これもまたトッププロを超えている。研究の完成度も90%を超えているだろう。コンピュータ将棋と戦う場合、ほぼ均衡がとれた状況で終盤を迎えたら、まず勝つのは厳しい。一手のぬるい手も許されない。逆にコンピュータが劣勢の場合にはチャンスがある。コンピュータはあくまでも最善の手を指し続けるが、「人間が気づきにくい詰めろ」など、そういう実践的な逆転は目指さない。今のところそういうものは計算がしづらい(学習しづらい)からだ。あくまでも計算した点数がアップするように、である。

・中盤
これも前述の学習によって大幅に強くなった。中堅のプロ以上と思う。研究の完成度は80%ぐらいに思う。局面評価が独特であるが高性能で、プロでも優劣不明と迷う局面でもかなり形勢が傾いていると判断できていることが多い。以前のあから2010 vs. 清水女流王将 戦では、人間側から、桂馬のふんどしで金桂交換できる局面があったが、それをすると、コンピュータ将棋はさらに局面がよくなると計算していた。これには米長会長も驚いていた。コンピュータ将棋側から見ると、あまり働いていない41の金を0手で手駒の桂にできることが、金桂交換のいわゆる駒損よりずっとメリットがあることなのである。

・序盤
唯一の苦手なフェーズ。コンピュータ将棋は基本的には、定跡をまねる以上のことはしていない。局面評価もあまり駒が動いていないのでしにくいのである。研究の完成度は20%ぐらいに思う。端の評価が甘く、簡単に玉側の端歩を突き越されたりする。戦形は人間が選んでいるのでチャンスがある。例えば、四間飛車ならオーソドックスな駒組みしかしない。藤井システムなどは基本的にやらない。なので、オーソドックスな駒組みを決めうちして、一気に優位を築くようなことができるかもしれない。ここで人間がリードをある程度奪えなければ戦いは厳しい。


●今回の電王戦の棋譜について
電王戦ではボナンザの開発者が入れ知恵したとかどうとかで米長会長が2手目62玉を選んだ。序盤はうまくさしているように見えたが、結局一部食い破られて、気合の切り合いをしてあっさり悪くなって終わってしまった。コンピュータが序盤手待ちばかりをしていて、変に思えたがなんのことはない。高美濃→銀冠のメリット(金銀が玉側に近くなる、玉頭が厚くなる)よりも、飛車が2筋,3筋にいけなくなることで、32の金をいい位置に移動されること、そして58の金が攻めに使えなくなることの方がずっとデメリットが大きかっただけである。一番いい状態で待ち続けて、仕掛ける隙を伺っていたのだ。


●人間側から見た対策
考えられる人間側の作戦について述べたい。たしかに米長会長が選択した作戦(押さえ込み)はあまり棋譜に残っていない価値判断が必要となるという意味において、コンピュータは苦手である。また入玉を甘く見ているため、桂馬をただで捨てて、入玉の可能性をぐっと高めるような手を代わりに指すということもできる。しかし、食い破るまで完璧に指さないと、一手でもぬるい手をさした瞬間に大幅に形勢を損ねる可能性のある作戦だ。人間にはオススメできない。他に勝てそうな戦形としては、相矢倉でお互いが盛り上がって相入玉になるという将棋や、お互いに手詰まりになって、何を指したらいいのか分からないという将棋である。ただ、コンピュータ側の戦形は人間が決めているので、相矢倉にはなりにくい。居飛車 vs. 振り飛車の対抗形が多く、それが得意であることをうかがわせる。得意というより、序盤でボロがでにくいのであろう。また穴熊もあまりしない。穴熊の局面評価が独特でまだ研究が十分でないからである。また、コンピュータ将棋というと、切り合いのような直線的な将棋が強そうに思えるがそうではない。人間側も最善を尽くしやすいような一直線な切り合いなら勝機は十分にある。個人的には真っ向勝負の居飛車穴熊でよいのではと思う。欲を言えば、プロのタイトル戦のような一般的な戦形(相矢倉、角換わり、横歩取り、ゴキゲン中飛車、石田流などの最新形)で挑んで戦って欲しい。そして、あまり研究しないで、相手を人間だと思って戦って欲しい。トッププロでも奨励会に入る前には、中学大会や高校大会やアマ棋戦で、はじめて聞くような県代表とわくわくして戦ったのを思い出して欲しい。そんな時に毎回相手のデータはあったろうか?自分がもっとも自信のある戦形で戦ったのではあるまいか。
コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://heartruptcy.blog.fc2.com/tb.php/29-49343127
この記事にトラックバックする(FC2ブログユーザー)