コンピュータの頭脳は人間に勝てるのか。「記憶と脳科学」のテーマで今回紹介するのは、コンピュータ将棋だ。2013年に行われた第2回 電王戦でコンピュータは3勝1敗1分けで初めて現役プロに勝利した。将棋は盤面も広く、持ち駒を再利用するなど複雑なゲームだ。長らく人間に匹敵するような知識をコンピュータに持たせることは難しかったという。それなのになぜ、プロ棋士に勝つほど強くなったのか。

佐藤佳州さん(パナソニック研究員)が第17回自然科学研究機構シンポジウム「記憶の脳科学~私たちはどのようにして覚え忘れていくのか」(9月23日開催)で行った講演では、コンピュータ将棋の歴史から、どのようにコンピュータ将棋が強くなったか、その理由や未来について、非常に興味深いお話しがあった。

2000年代中盤から急速に発達した理由

コンピュータ将棋について講演する佐藤佳州(よしくに)さん。パナソニック 先端技術研究所研究員

コンピュータ将棋の歴史は1970年代に遡る。急速に発達したのは2000年代中頃からだ。理由は「現在のプログラムの強さを支える重要な技術が、急速に発達したから」と佐藤さんは説明する。具体的には評価関数の機械学習や全幅探索などがそれに当たる(図参照)。これらの技術を駆使し、コンピュータ将棋はアマチュアレベルから一気にプロレベルに達する強さに到達したという。

コンピュータの計算性能が向上したから人間に勝てるようになった、と思うかもしれないが、それだけではない。1997年にコンピュータがチェスの人間のチャンピオンを上回ったが、チェスの複雑さが10の120乗であるのに対して将棋は10の220乗とかなり複雑。コンピュータの速度向上だけで人間に勝つことは無理であり、「ソフト面の進歩が非常に大きい」と佐藤さんは強調する。

コンピュータ将棋の歴史(左)。オセロやチェスと比べて将棋や囲碁は格段に難しい(右)

読みと大局観に相当するのが「探索」と「評価関数」

ではコンピュータは具体的にどのように将棋の指し手を決めているのだろうか。

通常、人間が将棋をする場合、「読み」と「大局観(形勢判断)」で指し手を決めていく。コンピュータの場合、「読み」にあたるのが「探索」、「大局観」にあたるのが「評価関数」だ。

コンピュータ将棋では、基本的に人間が考えないような手も含めてすべての手を探索する。一段ずつ探索を深めていくが、時間制限もあり終局までは探索できないので一定の深さで探索を打ち切る。打ち切ったときの局面の優劣を、評価関数で点数化する。評価関数とは、局面の優劣をコンピュータが判断できるよう数値化するための関数であり、コンピュータはもっとも評価の高い(つまり数値の高い)手順を選択して指す、という仕組みになっている。

コンピュータ将棋の思考方法。探索を深めていき、一定の時間が経ったときの局面の優劣を評価関数で数値化。もっとも数字が高い手を指す

コンピュータ将棋の特徴であり問題点は、すべての手を探索するため「読み抜けが少ない反面、無駄が多い点」だという。「そのため1秒間に数百万局面も読むにもかかわらず、人間に読み負けることがある」(佐藤さん)。また、評価関数ではすべての局面を数値化するが、その数値化の作成は人間が行っていた。人間は通常、局面を点数化して考えたりしないのに関わらず、正確な評価関数を作るのは非常に困難だったという。

プロ棋士を破る原動力となった「機械学習」

強いコンピュータ将棋を作る上での課題は、「無駄な手は探索せず、よさそうな手を深く探索すること」、また「局面の優劣を正確に数値化する評価関数を作ること」の2つに集約される。

後者について、評価関数の数値化作業に大きく貢献したのが、2006年に登場した「BONANZA(ボナンザ)」というプログラムだ。従来人間が行っていた数値化作業を、「機械学習」によって自動的にパラメーターを調整させることに成功したのだ。この成功が将棋プログラムの飛躍的な性能向上につながったという。

そして近年では、プロの棋譜を利用した機械学習が大きな成功をおさめている。といっても、棋譜をそのまま覚えるわけではない。単に記憶しただけでは、完全に一致する局面でしかその知識を活用できない。目指すのは「指し手の意味を獲得する」ことだ。

具体的にはプロの指し手からどのような局面が良い局面であり、どのような指し手を深く探索するべきなのかという、知識を学習する。

たとえば現在行われているのは、指し手の比較による学習だ。ある局面でプロが選択した指し手(正解手)と指さなかった手(不正解手)がある。正解手のほうが不正解手より点数が高くなるように評価関数を調整する。

棋譜を用いた学習の例。局面Aはプロが指した手(正解手)でBは指さなかった手(不正解手)の一つ。Aの数値がBの数値より高くなるようにする

さらに、プロが指し手を選択する場合は、数手先まで「読み」が入っているのに対し、コンピュータは一手先までしか見えていない。この課題に対応するため学習課程に探索(読み)を導入し、数手先まで進めてから正解手と比較する。このようにして、プロが実際に思考した評価とコンピュータが実際に思考した評価を対応づけていく。

未来 - コンピュータから将棋を教わる?

佐藤さんによると、「コンピュータ将棋が近いうちに人間のトッププレイヤーに勝つのはほぼ確実」。ただ、人間に勝つこと=人間の思考を上回る知識を獲得しているわけではないそうだ。現在のコンピュータ将棋はミスの少なさ、読みの深さで人間を上回るが「そもそも現在の機械学習は人間の差し手の真似であり、人間の大局観に達しているとは言い難い。さらなる改良の余地が大きい」という。

改良点は色々あるが、たとえばどのような棋譜を学習すれば強いプログラムができるか、さらにどういった戦術を重視して学習すれば強いプログラムができるかという点がある。

戦術については穴熊、銀冠、矢倉などしっかりとした囲いを作る戦術が上位にあがっているそうだ。実際に重要度を使って学習させたプログラムと、使わずに単純に学習したプログラムで対局を行い戦術の違いを比較すると、重要度を使って学習した方が、コンピュータにとって勝ちやすい戦術を選択し、結果的にかなり強いことがわかった。

強いプログラムを作るためには、どんな戦術の棋譜を学習するかの選択も大事(左)。実際に重要度の高い戦術を学習すると、コンピュータにとって勝ちやすい戦術を選択して勝率があがる(右)

このように、コンピュータ将棋が人間に勝利するという目標が達成されようとしている今、コンピュータ将棋は大きな変換点を迎えているそうだ。

佐藤さんは「さらに強さを追い求める方向性と、人間との関わりを重視する方向性」という2つの方向性があると説明する。強さを求める方向性では、人間の棋譜によらず強いプログラムを学習できないか。そして人間との関わりを求める方向性では、人間に将棋を教えたり、詰め将棋などの問題を作ったりすることも考えられるという。

コンピュータ将棋は人間の真似をして強くなってきたというが、コンピュータに将棋を教えてもらって強くなるという時代がすぐそこまで来ているようだ。

なお、第17回自然科学研究機構シンポジウム「記憶の脳科学~私たちはどのようにして覚え忘れていくのか」に参加した高校生記者によるシンポジウム取材記事が掲載されている。そちらもぜひご覧いただきたい