現在、将棋AIは人間のトッププロに匹敵するほど強くなりましたが、実はチェスの世界では1997年時点ですでにAIが人間の世界チャンピオンを破っています。一見似たような将棋とチェスですが、なぜこのような差が開いてしまったのでしょうか。

新刊『人工知能はどのようにして「名人」を超えたのか?』では、将棋や囲碁を例に、AIにおいて最も重要な技術「機械学習」「深層学習」「強化学習」の本質を解説しています。今回はそのなかから特別に一部を公開します。

「チェスよりも将棋のほうが難しい」は本当か?

「ゲームに現れる局面の数」と
「トッププロに勝てるかどうか」は関係がない

 将棋AIがチェスのAIに遅れること20年、ようやく人間のトッププロに渡り合えるようになりました。この時間差の理由について、多くの人が「チェスよりも将棋のほうが難しいから」と答えるでしょう。それはある意味、正しいです。

 ただし、その文脈でよく聞かれる言説に、「将棋はチェスよりも存在可能な局面が多いから難しい」というのがあります。人工知能の専門家ですら、こういったことを言う人が多くいます。

 この説は高い確率で誤解を含んでいますし、オブラートに包まずに言うと、間違っています。どこが間違っているのでしょうか。

 将棋がチェスに比べて、存在できる可能性のある局面の数が多いのは間違いありません。

 想定される数には研究者によってバラツキがあるので明言は避けますが、とてつもなく大きい数だと思っていただいて大丈夫です。

 どれくらい大きな数かといえば、まずチェスですら、1秒間に2億局面読めるプログラムが、宇宙開闢(かいびゃく)から現在までの100億年のあいだ探索を続けても読みきれません。そして将棋はさらにその上を行くのです。

 私は仕事柄、「ポナンザが将棋の名人を倒したら、次は将棋の完全解析に進むのですか?」とよく聞かれるのですが、ちょっと返事に困ります。

 完全解析というのは文字どおり、すべての答えがわかっているという状態です。ある局面でどんな手を指せばベストなのかがわかるだけでなく、ゲームのスタート前に、先手が勝つか、後手が勝つか、引き分けになるのかがわかっているということになります。

 しかし将棋というゲームは、皆さんの想像をはるかに超えて奥が深いのです。現在のコンピュータでは、宇宙の年齢の10の100乗倍の時間があったとしても、とうてい読みきれるものではありません。これはアルゴリズムがどれほど進化しても解決しないでしょう。

 先ほどの言葉、「将棋はチェスよりも存在可能な局面が多いから難しい」というのが、「(完全解析するのが)難しい」という意味なら正しいのですが、この質問の意味は「(人間のトップに勝つのは)難しい」という意味ですよね。まずはここまで皆さんと前提を共有できればと思います。

 ちなみに、現在のところ、まだオセロですら完全解析はできていません。あのシンプルなゲームですらそうなのですから、完全解析というのがいかに難しいのか、想像してもらえると思います。

「チェスよりも将棋のほうが難しい」は本当か? 図2 各ゲームの局面の数(諸説ありますが通常言われる数字です)

コンピュータにとって将棋が難しい理由

 ではなぜコンピュータにとっては、チェスよりも将棋のほうが、人間に勝つのが難しいのでしょうか。

 その理由は、コンピュータにとって、チェスよりも将棋の局面のほうが「何をどのように計算すればいいのか」がわからないからです。言い方を変えれば、コンピュータにとって、将棋のほうがチェスよりも扱いにくいということです。

 考えてみてください、計算すればいいだけの問題だったら、コンピュータは人間には決して負けません。そもそも将棋の何を、どのように計算すればいいのかわからないから、コンピュータは人間に勝てなかったのです。

 普通に考えたら、将棋を指すことが計算問題になったりしませんよね。そこを頑張って、将棋という問題を計算問題に落としこむことがプログラマの仕事であり、私が今までやってきたことなのです。

 いままで計算不可能だった問題を計算可能にするのが、人工知能における課題なのだとも言えます。コンピュータと人間がその性能を争っている分野というのは、つい最近まで計算不可能と思われていた問題が計算可能な問題になっている途中なのです。

 コンピュータにとって計算可能な問題は簡単で、そうでない問題は難しいことは、将棋の例からもよくわかります。

 通常、コンピュータは終盤のほうが得意です。なぜなら、王様を攻めるという目的がある程度しっかりしているからです。相手の守りの駒を取っていき、王様を目指していけばいいのです。将棋の終盤は、コンピュータにとって計算しやすい問題と言えます。

 一方、将棋の序盤はコンピュータにとって計算困難な問題です。駒のわずかな配置の違いで局面の良し悪しが大きく変化します。これらの微小な違いによる良し悪しを、人間のプログラマが書ききることは困難です。当時のプログラマとしては、誰よりも将棋を理解していたつもりの私も、その試みに失敗しました。

コンピュータにとっての
将棋とチェスの本質的な違い

 話をまとめます。コンピュータにとって、チェスは将棋に比べて、人間に勝ちやすいゲームでした。それは、コンピュータがチェスを完全に解析できるからではなく、局面の良し悪しを測る基準がチェスは将棋よりも明確で、コンピュータに計算しやすいものだったからなのです。

 なぜでしょうか。ここで少しチェスのゲーム性を紹介していきましょう。

 チェスは将棋に比べて機動力が高い駒がほとんどです。一方将棋は足が遅い駒がほとんどです。

 これが、盤面のどこかで緊急事態が生じたときに大きな差になります。チェスの駒は緊急事態が生じても、すぐに現場に駆けつけられますが、将棋の駒はなかなか駆けつけられません。

 そのためチェスでは駒をどれだけ盤面に残存させているかが局面の良し悪しに直結する一方、将棋は駒がよい配置にあることが、局面の良し悪しに直結するのです。

 駒の残存量を計算することは、コンピュータにはとても簡単なことです。もちろんチェスにはそれ以外にも大事な要素がたくさんありますが、チェスというゲームがどういうものであったかを人間は論理的に言うことができました。

 これこそが、コンピュータにとって将棋とチェスが区別される理由だったのです。

「チェスよりも将棋のほうが難しい」は本当か? 図3 チェスと将棋を分ける壁

 チェスについては、昔からさまざまな人が、どのように局面の良し悪しを測ればいいのか、教科書的なものを作っていました。

 チェスのプログラムは、こういったチェスの教科書から局面の判断基準をどんどん輸入しました。チェスを万人が理解できるようにしようとした試みが、結果的にコンピュータすらも理解できる形になったのだと思います。

 これは決して、将棋にかかわる人たちが教科書を作ることに不真面目だったというわけではありません。

 将棋は論理的に局面の良し悪しを述べることが難しいのです。将棋の指し手を評する言葉には、「味がいい」「手厚い」「重い」といった難解なニュアンスのものが多数あります。

 これらの用語の意味を理解し、自由に使えるようになるには、アマチュア初段程度の実力が必要でしょう。

 そして、こういった専門用語があるのは、なんとかして局面を言葉でとらえようとした将棋指しの歴史を物語るものなのです。

 ちなみに本線から脱線しますが、さらに専門用語の意味をとらえるのが難しいのが囲碁です。普通の初心者の人にとっては、囲碁の教科書を読めるようになることですら難しいのです(教科書なのに!)。そのため、一昔前の人工知能の技術では、囲碁を扱うのはほとんど不可能に近いレベルでした。

 チェスの世界チャンピオンを破ってから20年がたち、コンピュータは今ようやく将棋の名人を倒せるレベルに到達してようとしています。しかしプログラマたちは将棋がどういうものであるか、うまくコンピュータには伝えられませんでしたし、それは今後も永遠に成功しないでしょう。

 ではプログラマたちは、どのようにコンピュータを強くしたのでしょうか?

 もうおわかりですね。コンピュータが自分自身で将棋の知識を獲得しない限り、決して将棋の名人を打ち破ることはできないのです。