将棋ソフトに見る「フルオート」と「セミオート」の違い

将棋電王戦が「コンピュータソフトは人間を超えたのか?」と話題となっている。これは「全自動」と「半自動」を区別して考えればわかりやすいと思う。

つまり、アマ高段者がソフトの弱点を補いつつ、要所でソフトの計算能力を効果的に使えば、現時点でもプロを凌駕することは確実だと思う。しかし、人間の介入を一切許さない完全自動モードでコンピュータが上位プロに勝てるかどうかについては、勝ったり負けたりの微妙な状態がしばらく続くと思う。

そして、これは、「プログラムが人間より強い」と考えるよりは、「数学の力をうまく使うとコンピュータはよく働く」と考えるべきではないだろうか。

ソフトが飛躍的に強くなったのは、機械学習という手法が一般化してからだ。つまり、多種多様な駒の配置を、評価点という一元的な数値として一般化する(基準を過去の棋譜から計算で作り出す)数学的手法によって将棋ソフトは急に強くなった。もし、中盤の細かい手筋を「もしこうならこうする」というルールの集積として強くなったとしたら、それは「プログラムの力」と言ってよいと思うが、そういうやり方では、ルールとそのルールを適用するためのルールが増え過ぎて、プログラムが複雑すぎて管理しきれなくなってしまう。

ちょうど検索エンジンの表示順位を決めるのに、「有力ブログは一般人のブログより上にする。企業サイトはさらにその上で、最上位にニュースサイト。ただし、ニッチな話題では例外的にブログを重視する。たとえばこの話題に強いのはこことここで....」などとルールで決めていったら追いつかないと同じことだ。複雑なプログラムは適用範囲を絞りこまないとうまく動かないことが多い。

検索エンジンも「ページランク」という数学の力で飛躍的に実用性を高めた。今では、ほとんどの場合、探したいサイトは、検索結果の1ページ目か2ページ目に入っているだろう。

しかし、結果を最初の一件だけに絞りこむ「I'm feeling lucky」というボタンは、グーグルの登場当時からあったが、今でも「I'm feeling lucky」のままで、完全自動の検索はまだ実現されていない。

コンピュータの計算パワーを、適切な数学と組み合せて使うと、今までになかったような便利なものが生まれてくることがある。しかし、コンピュータに全てをまかせるには、実世界は人間が普通に考えるよりずっと複雑で、人間はみかけより複雑なことをしているのだ。コンピュータはあくまで「半自動モード」で人間が主体となって使うべきだ。

フルオートの将棋ソフトは、今後いびつな形で進化していく可能性がある。

つまり、ソフト特有の強みはどんどん強さを増していくが、ソフト特有の弱点を完全に消すまでの道は遠い。プロが目の色を変えて研究したら、入玉模様の将棋以外にもソフト特有の弱点はこれからも見つかると思う。これに対して、勝負だけにこだわるソフト開発者が出て来たら、意図的に弱点のある古いバージョンを貸して、本番でそこに狭い対策をしたバージョンをぶつける、という騙し合いのような見世物になっていく懸念があると私は考える。塚田泰明九段 VS Puella αの対戦で見られたような極端な強さと弱さの交互に見られる、将棋として不自然な対局になる可能性も高い。

私は、将棋ソフトは「セミオート」での応用を中心に活用していくべきではないかと思う。今思いつく応用としては、

  1. プロによる定跡研究の補助ツール
  2. 将棋自習支援ツール
  3. F1形式の「人間(ドライバー)+機械」による対戦
  4. 対局観戦支援ツール

特に「対局観戦支援ツール」としてうまく使っていけば、将棋ファンの裾野を広げることに活用できると思う。

電王戦の船江五段対ツツカナの対局をニコ生で見ていたら、終局間際に「将棋ってこんなに過酷なゲームだったのか!」というような趣旨のコメントが流れた。たぶん、これまでプロの将棋を見たことの無い人だったのだと思うが、プロが頭脳を極限まで酷使して戦う将棋のタイトル戦は、それはそれは苛烈なもので、格闘技のような凄絶さがある人間ドラマだ。

ただ、それがわかるには、ある程度将棋のことを知らなくてはいけなくて、だから、将棋観戦というのはこれまで非常に限られた人にしかその面白さが理解されないものだった。

電王戦では、将棋ソフトによる評価値が中継画面に重なって表示されていて、将棋のことを知らずにこれだけを手掛かりに見ていた人も多かったと思う。しかし、そういう人にも船江五段の対局姿勢は、大きな感銘を与えたのではないだろうか。

もし、将棋ソフトの評価値と読み筋をを表示して、プロや高段アマも含めた観戦者がそれにリアルタイムにツッコミを入れて、指摘された読み筋をソフトが取り込みつつ再表示するような仕組みがあれば、将棋対局の中継を、初心者から上級者まで誰もがそれぞれに楽しめるようになるだろう。

もちろん、ツッコミ(表示されてない手の指摘)の大半は、どうしようもない手なので、そういうのはソフトが容赦なく切り落として、ある程度ソフトが価値を認める手だけ取り込むようにすればいい。そして、その指摘そのものをユーザアカウントと一緒に記録しておけば、検討に値する指摘のできるユーザが誰なのか、自動的にソフトが判定できるようになる。

現状では、トップ同士のタイトル戦のレベルでは、ソフトがフルオートで状況を把握できないケースも出て来ると思うが、それを補えるレベル、匹敵するレベルの観戦者は誰なのかということは、数回分の記録を解析すれば容易に把握できる。そういうユーザの指摘をもとにソフト単独の評価を微調整したり複合的に読み筋を見せたりすれば、かなり難しい場面で時間が限られていても、「今この対局で何が起きているか」を多くの観戦者が理解できるようになるだろう。

そういうセミオートでの応用には、多くの可能性がある。また、こういう分野では、純粋な思考アルゴリズムではなくて、ユーザインターフェース(見せ方)やインセンティブの設計(強い人にツッコミを入れさせる、入れやすくすること)が重要であり、これまでとは違うタイプのプログラマーの力も必要になる。それによって、予想外の応用が広がる範囲はかなり高いと思う。

このような、人力、フルオート、セミオートの適切な配置と役割分担は、将棋以外にもいろいろな分野でこれから求められていくことになると思う。


一日一チベットリンクチベット人遊牧民が焼身抗議に身を投じるわけ=人々を苦しめる定住プロジェクト(tonbani) : 中国・新興国・海外ニュース&コラム KINBRICKS NOW(キンブリックス・ナウ)