「人間の未来AIの未来」を読んだ

将棋ソフトが名人に勝つ時代になりましたが、まだ、この本が出た時点では将棋ソフトが指し手全てを読んで最善手を指しているわけではありません。羽生さんは指し手を直感で2、3手に絞りますが10手先までは読めないそうです。今やAI同士の対局が24時間365日行われ、棋譜が蓄積しています。強すぎてオープンソースになった将棋ソフトはどこまで進化するのでしょう?

人工知能

人間の未来AIの未来を読みました。

この本は、羽生さんと山中教授が、将棋や医学についてAI(人工知能)をキーワードにして語り合う内容です。面白かったです。

ただ、読みながら私は将棋ソフトと機械学習と羽生さんの指し方に特に興味があり、そこを念入りに読みました。

スポンサーリンク
レクタングル大

将棋ソフトが名人に勝つ時代

私は子供の頃以外、将棋にはほとんど興味がなく過ごして来ましたが、昨年、TBSの情熱大陸の”若き天才プログラマーが若き天才プログラマーが生んだ最強将棋AI” VS. ”将棋界の現役名人”果たして最後の勝負の行方は?を見て、これはすごい時代になっているんだなと思いました。

毎日放送(MBS)がお送りする「情熱大陸」は、様々な分野で活躍する人たちをひとりひとり密着取材して取り上げ、紹介していくドキュメンタリー番組です。無料見逃し配信実施中!

パソコンは毎日使っていますが、人工知能の「今」を全く知らなかったのです。人工知能って確か1980年代の中頃からことば自体を聞くようになりました。

しかし、ずーっとそれは夢みたいなことだろうといわれて、私もそんなものだろうと思っていました。

しかし、情熱大陸で見た電王戦では「PONANZA」が佐藤天彦名人に二戦二勝していたのです。なんと、こんなことが起こる時代になったのかと思いました。

本でもその話題が出て来ます。

羽生 (前略)将棋ソフトも創造をはるかに超えるスピードで強くなっています。二〇一七年四月、五月の電王戦(でんおうせん)では、将棋ソフト「PONANZA」(ポナンザ)が佐藤天彦(あまひこ)名人に二戦二勝しました。

最近は対局中継で将棋ソフトがすべて同時に解析(かいせき)しているんですよ。たとえば、今の局面がプラス三百点とかマイナス二百点などと評価されます。

山中 へー、そうなんですか。

羽生 私がソフトと同じ手を指すと、「それは正解」と一手ごとに添削(てんさく)されちゃっていますから恐ろしい世界です。

コンピュータは、2010年以降、ここ数年の高性能化が著しく、特に保存することについてはコストが激減し、ほとんどタダみたいなものになりました。

過去の記録をデータとして入れるならいくらでも入れられる時代です。

ところで、将棋のソフトとはどのようなものなのでしょう?私は1カ月だけ毎日詰め将棋をやったことがあります。コンピューターにとっては一手目から詰め将棋が始まり、全ての手を読んでいるのでしょうか?

評価関数

羽生 (前略)将棋ソフトは、二〇〇五年に保木邦仁(くにひと)さんが開発・公開した当時の最強ソフト「Bonanza」(ボナンザ)がオープンソースになり、それを土台にして個人プログラマーが改良、修正を加えて進化させてきました。

山中 改良、修正とは、具体的にどういう作業なんでしょう。

羽生 プログラムを洗練させて強くするに際して一番難しいのは、正確に局面を評価させることなんです。「評価関数」と言って、一つの局面を見た時に、先手と後手どちらが有利か、数値化するわけです。

ここでプログラマーが切磋琢磨(せっさたくま)して細かい修正を重ね、ソフトは強くなっていきます。

評価関数という聞いたこともないようなことばが出てきました。早速調べてみました。ウイキペディアにありました。

評価関数(ひょうかかんすう、英: evaluation function)とは、コンピュータにゲームをプレーさせるソフトウェアを開発する際に使われるプログラミング技術のひとつで、ゲームの局面の状態を静的に評価し数値に変換する関数のこと。

評価関数を用いるプログラムは、局面の良し悪しを数値化し、それをもとにして着手を決定する。

将棋やチェスでは駒の損得、オセロでは打つことができる場所の多さ、囲碁では陣地の大きさで評価関数を作る。

しかし、現実のゲームでは、単純なアルゴリズムでは測れない要素が複雑に関係し合うため、正確な局面の評価はできない。

そのため、着手ごとに枝分かれしていくゲーム木を作り、数手先の局面で評価関数を使用すること(探索)により、着手を決定する方法が用いられる。

原理的には、ゲーム開始から終了までの完全なゲーム木を再現できれば最善手を見つけることができる。しかし、完全なゲーム木は巨大であり、実際には扱うことはできない。(出典

読んでも正確なところが分からないのですが、最後の方で書かれているように、将棋で最初から確定した最善手は分からないので、短い数手先の局面での最善手を決めるということのようです。

素人考えでは、棋士が一手を指した時、コンピュータが次の手として膨大な何通りもの手を全て終わりまで読んで、最短で勝つための一手を選択できる時代が来てしまうのではないかと思います。

将棋ソフトはオープンソース

私が自分用のパソコンを買ったのはwin3.1からですが、win95の時代には普通に将棋ソフトが販売されていました。パソコンオタクはみんなゲーム好きだったから当たり前かもしれません。

しかし、現在の高度な将棋ソフトは、オープンソースなのだそうです。

山中 ここ数年、将棋のソフトが急激に強くなっているのは何か理由があるんですか。

羽生 「ギットハブ」(GitHub)というサイトがあるんです。ギットハブはソフト開発プロジェクトのための共有ウェブサービスです。

将棋ソフトはほとんどがギットハブに載っており、オープンソースなので、誰でも自由にそれを使って分析や研究ができるようになっています。

アクセスして「このプログラムのここはおかしいよ」とか「ここは直したほうがいいよ」とチェックできます。

それも最新版をどんどん載せてくれます。すると、開発者はそれを見て「自分も将棋のプログラムを作ってみよう」と思う。

棋士もアマ、プロを問わず「それを使って分析してみよう」となる。それで飛躍的にレベルが上がっているんです。

ギットハブ

「ギットハブ」(GitHub)って何だろうと思って調べました。

GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェブサービスであり、Gitバージョン管理システムを使用する。 Ruby on RailsおよびErlangで記述されており、GitHub社によって保守されている。(出典

サイトはこちらです。最初に登録画面が出ますが、それを無視しても多少中を見ることはできます。

GitHubはソフトウェア開発のプラットフォームです。GitHubには8000万件以上ものプロジェクトがホスティングされており、2700万人以上のユーザーがプロジェクトを探したり、フォークしたり、コントリビュートしたりしています。

将棋ソフトは強すぎる

なぜ将棋ソフトがオープンソースになってフリーで手に入るかというと、理由がありました。

山中 そこはチェスや囲碁のソフトとは違うところですね。

羽生 それが可能だったのは、実は「将棋ソフトを売る」マーケットが十年くらい前になくなったからなんです。強すぎて誰も買わなくなりました。マーケットがないので利害関係がない。

だったら、いっそのことオープンソースにして、みんなで自由にどんどん進化させようという流れになったんです。

市販されていた将棋ソフトが強くなりすぎて誰も買わなくなったからオープンソースになったという話がすごいですね。

しかも、さらに完成度をあげようとしている。趣味なら採算度外視で取り組む。

チェスと囲碁のソフト

チェスは1990年代にコンピュータが世界チャンピオンに勝っていました。これはニュースを覚えています。チェスは相手の駒を取っても、それを自分の手駒として使えないので、将棋に比べると次の一手の選択肢は減ります。

山中 チェスに関していえば、僕がアメリカに行っていた一九九〇年代の中ごろに、IBMコンピュータの「ディープ・ブルー」が初めて世界チャンピオンに勝ちましたね。

羽生 一九九七年にディープ・ブルーは当時の世界チャンピオン、ロシアのガルリ・カスパロフを破りました。ディープ・ブルーが強くなったのは、過去の膨大なデータの力と、ハードウエアの計算処理能力の組み合わせによってです。

ディープ・ブルーには当時でも百万局以上という大量の棋譜がデータベースに搭載(とうさい)されていました。それに加えて一秒間に二億局面を考えられるハードです。二十年ほど前ですから、ソフトはそれほど進んでいませんでしたが、データとハードの力で人間に勝ったわけです。

この部分を読むと、将棋ソフトもデータとハードが揃うともっと前からプロに勝っていたかもしれないと思います。人ではとても読み切れない膨大な数の場合分けができればよいのです。

さらに、2016年3月人口知能の「AlphaGo」(アルファ碁)が世界トップクラスの囲碁棋士イ・セドルさん(韓国)に四勝一敗で圧勝したことにもふれられています。

羽生 アルファ碁で使われたのが、機械に学習させることで強くしていく「ディープラーニング」(深層学習、DL)という手法です。

学習には二段階あって、基礎となるのは人間同士の十五万局の対局の棋譜です。囲碁サイトのデータを使い、プロと同じような手が打てるように学習させました。プロと同じような手が打てるということは、プロと同じように強くなるということです。

そして次は、機械同士の対戦で強くしていきます。機械同士なら二十四時間フル稼働で、一秒一局または十秒一局といったスピードで何十万局の対戦記録が蓄積できます。

人間とはまったくスケールの違うスピードで強くなっていきます。

1秒1局、10秒1局で対戦を蓄積する。これがディープラーニングというやつなんですね。これでは人は太刀打ちできなくなるでしょう。

ところで、私にとって一番の興味は、将棋のプロは先をどこまで読んで指しているのだろうかということなのです。

羽生さんは直感で2、3手に絞る

羽生さんは、次の指し手を決める時、2、3手に絞るそうです。人は機械ではないので、全ての指し手を検討するなんてことはしません。

もちろん、その2、3手に絞ってからの読みがアマチュアと違って間違いが極端に少ないからプロなのだと思います。

山中 将棋の世界のブレークスルーといっても、僕らにはなかなかイメージがつかめません。藤井四段がすごいということはわかるけども、どんなふうにすごいかが・・・‥(笑)

将棋を指す際、棋士の頭の中ではどんなことが起こっているんですか。

羽生 対局するときに、棋士は最初に「直感」を使います。将棋は一つの局面で平均八十通りの指し手があり、これまでの経験から、直感で急所、要点と思われる二、三手に絞ります。

山中 八十通りもあるんですか。

羽生 はい。直感といってもヤマ勘みたいなものではなく、いわば経験や学習の集大成が瞬間的に表れたものですね。だから、直感は一つずつ論理的に詰めていけば間違いは少ないのですが、逆に論理を誤れば、正しい結論にたどり着けないことがあります。

「直感」の次に「読み」に入ります。未来をシミュレーションするわけです。ここでロジックだけで先を読もうとすると、すぐに「数の爆発」という問題にぶつかります。

一手三通りずつ読んだとしても、十手先には三の十乗の六万通り近くになります。最初の直感でほとんどの選択肢を捨てているにもかかわらず、十手先にはもうこれだけの可能性を考えなくてはならなくなります。

実戦では十手先はほぼ予測できません。仮に十手先を計算したとしても、自分が予想していない手を指されて、もう一回そこで考え直すケースがほとんどです。

実際の対局は暗中模索で続けていくことが多いですね。逆に自分の思い描いたビジョン通りに進んでいる時ほど要注意です。相手もそれを想定しているということですから。

山中 ああ、なるほど。

羽生 三番目に「大局観(たいきょくかん)」を使います。「桂馬(けいま)を動かす」といった具体的な一手ではなく、最初から現在までの流れを総括し、先の戦略を考えるわけです。

読みというのは、基本的に論理的な積み重ねの地道な作業ですが、大局観は勘とか感性みたいなものです。「ここは守りに徹する」という大局観があれば、守る選択肢だけに集中して考えればいいわけなので、無駄な思考を省くことができます。

羽生さんは実際に何手先まで読んでいるのか、ここからは分かりませんが、十手先はとても読めないということみたいです。

10手先までを読む数、3の10乗って実際に計算してみないとすごさが分からないかもしれません。3×3=9ですが、これにさらに3を8回かけると59049ですから。10手先まで3通りずつ正確に読んで行くと、59049通りの結果があるのです。

これを読み切るのは、まず人では無理でしょう。

しかし、将棋ソフトの話から羽生さんの指し方の話になると、なんともあやふやなはっきりしない中で対局している印象をもちます。

その中で対局して勝ち続けるのですから、逆にすごいなと思いました。

さらに指し方の話は続きます。

ほとんど勘

山中 (前略)先ほど将棋を指す際の直感、読み、大局観というプロセスを伺(うかが)いましたけど、羽生さんはふだん将棋を指しているとき、どれくらい勘で指してらっしゃるんですか。

羽生 いや、ほとんど勘です(笑)。あまり先のことを読んでも、あっという間に何千手とか何万手の手数になってしまうので現実的ではありません。

もうほとんどの局面で、勘によって絞った二つか三つくらいの手しか考えていません。だから全体から見れば、ほんのひとかけらという感じなんです。

でもそこで大事なのは、勘でどれほど精度の高い判断ができるかです。それから必ず予想外のことが起こります。その予想外のことが起こったときに、どれだけうまく対応できるかです。

必ず予想外のことが起こるというのは、予想を覆す手を指すからで、それはお互い意図的に揺さぶるためにやっているのです。そこで間違わないように指さないと負けてしまいます。

棋士という職業はなくなるか?

将棋ソフトが強くなり、棋士が勝てないことがはっきりすると、つい考えてしまいます。羽生さんもこのような発言をされていました。

羽生 今すでにAI同士が一日二十四時間、対局し続けている「Floodgate」(フラッドゲート)というサイトがあります。

そこから新しい棋譜がどんどん生まれています。もし将棋ファンの人たちが「AI同士の対戦のほうが人間同士の対戦よりも面白いね」と思うようになれば、棋士という職業はなくなってしまうかもしれません。

そういう危機感はあります。逆に言うと、今の棋士には、人間同士の対局を魅力的なものにして、AI対局以上の価値を作り出し続けていけるかが問われているんだと思います。

「Floodgate」で検索してみると、コンピュータ将棋連続対局場所 (floodgate)が出てきました。

中に入り、最近の対局をのぞいてみると、所要時間0秒、52手投了とか、所要時間540秒、50手投了とか、確かにごく短時間で勝負がついています。

こうして対戦した棋譜が蓄積すると、さらにソフトは進化して完成度が上がっていくのでしょう。ひょっとすると、コンピュータにとっての将棋は、序盤から詰め将棋になるかもしれません。

人はそこまで読めないですから、将棋観戦は、対局者が正解(最善手)からどのくらいかい離しているかを見ることになったりするかもしれません。

まとめ

この対談を読むと、羽生さんの人工知能についての知識がとても豊富なことに驚かされます。

羽生さんが出演したNHKの番組は、調べてみると人工知能は「天使」か「悪魔」か? 羽生善治が見た人工知能だったようです。2017年6月25日に放映されたようです。

- 人間とAIの未来のあり方を、将棋界最高峰の頭脳、羽生善治と探った。 #人工知能 #羽生善治 #Nスぺ

私はうっかり見逃していました。

番組に関連して本が出ていました。これも読んでみようと思います。
人工知能の核心 (NHK出版新書 511)

スポンサーリンク
レクタングル大