-------

   アフファ(α)碁引退をどう解釈するか
     AI
ができること、できないこと  06.25.2017
               



  しばらく前のことになりますが、アルファ(α)碁が現役を引退しました。引退前に中国の世界最強棋士、柯潔(か・けつ)九段の三番勝負に3連勝して、これが最後の対人間対決になりました。

 チェスでは、昔から人間よりも強いソフトの作成が試みられ、実際に、ほぼ無敵のソフトが存在していました。Wikiの記述によれば、機械にチェスを打たせるための思考ルーチンを最初に考えたのは、バベッジという人で、なんと1840年代とのこと。しかし、コンピュータ上のプログラムでは、1956年にロスアラモス研究所で、6x6のミニチュアボード用のものが作られたのが最初とか。

 人間のチェス・グランドマスターに勝った史上初のプログラムは、1988年のディープ・ソート(Deep Thought=SF作品『銀河ヒッチハイク・ガイド』の中で、生命、宇宙、そして、万物についての究極の疑問の答えは”42”であると答えたコンピュータの名前)で、その後継となったIBMのディープ・ブルーが、1996年、世界チャンピオンのガルリ・カスパロフに対して1勝3敗2引き分けという成績を収めました。そして、2005年頃には、人間が勝つのは難しくなったと言えるでしょう。

 しかし、2005年当時でも、将棋は持ち駒を打つことができるために、手の選択が多いので難しいとか、碁なら盤面が広いからコンピュータは人間に勝てないと言われていましたが、α碁は、その概念を根底から崩したようです。

 さて、人間でも特殊な能力をもったプロに勝てるこの手法がAI(人工知能)だということになると、AIは何でもできるのだろう。だから、人間の仕事はAIに奪わわれる、といった主張が多くなっています。それはある部分で正しい予測ですが、あらゆる分野で、全面的に人間がAIに負けるということではありません。

 現在AIにできていることは何か。言い換えれば、なぜ、α碁は、碁の世界チャンピオンに勝てたのか、を理解することが、AIに対する正しい理解をすることにつながるでしょう。

 こんな話題を選択したのも、先週の記事で、2050年に実用化される未来のイノベーションの種を生み出す「未踏チャレンジ」のプログラム・ディレクターを務めることをご報告しました。このような「未踏チャレンジ」といったプロジェクトも、AIに任せれば良いのではないか、といった感触を持たれるかもしれません。しかし、現時点でのAIの中身を知れば、まだまだとても現状のAIにできるようなチャレンジではなくて、将来の見通しも相当に難しい。要するに、ヒトという生命だけができるチャレンジであることが分かっていただけるでしょう。だから、未踏チャレンジを実施しなければならないのです。もっとも、この話は、次回以降になります。


 このファイルをアップしたのは、6月25日の12時05分でした。驚いたことに、現在(同日の9時27分ですが)、NHKスペシャルが、人工知能の話をやっていて、この4月1日と5月20日に行われた電王戦で、佐藤天彦名人が連敗した話がでてきました。この電王戦で使われたコンピュータが、本記事で引用しているCPUのコア数200というものでした。余りの偶然に驚きました。しかし、この番組だけを見ていると、人工知能が万能のような強い印象を与えてしまっているようです。それは、半分事実ですが、半分は事実ではないと思っています。佐藤名人が電王戦の経験から、これまでよりも発想の枠を広げたという場面もでてきましたが、やはり、限られた盤面上の戦いでは、コンピュータに勝てないような気がします。

  
C先生:α碁は、AIという技術のすごさを証明したと思う。確かにその通りなのだけれど、AIといっても、現時点で有能さを示しているものとしては、碁や将棋といったゲームもの、それに、IBMのWatsonが狙っているデータベース型のAI的機能+若干の自然言語理解能力(IBMはコグニティブという形容詞を使っている)、といったものが目立つところで、すべての人間の知的作業が、AIで代替されてしまうというものではない。特に、現時点でもAIにとって苦手な作業として知られているものとしては、実は、自然言語の理解がある。本日は、近い将来、未踏チャレンジのようなイノベーションを生み出す知的作業は、果たしてAIで代替されてしまうのかどうか、ということが主たる論点になる。

A君:まずは、α碁から。碁だけでなく、将棋プログラムも、そしてチェスも、一つの共通点は、人間より強くなろうと思えば、勉強することが必須のデータベースとしての『棋譜』というものが、すでに存在していることでしょうか。もしも、中級以上の棋士が、対局中に過去の棋譜を自由自在にアクセスすることができれば、より具体的には、似たような状況で、どう展開すれば、それが勝利に結びついたのか、というデータを、対戦中に見せて貰えれば、それを参考にすることで、恐らく勝率は格段に高くなるということです。

B君:将棋の三浦弘行九段が対戦中にスマホ(?)で将棋ソフトを使ったという疑惑を掛けられたというニュースもあったのは、このような事実があって、それを三浦九段が悪用したという疑いを掛けれれたから。

A君:結局、連盟側が証拠が無かったということで陳謝することになりましたが、真偽不明ながら、渡辺明竜王が三浦九段の指し手を解析し、「定跡手順を外れた後、あるソフトの指し手との一致率が90%を超す」、と連盟の幹部に訴えたことがきっかけだったらしいです。

B君:その話は三浦九段は不正をしていないということで解決済みだと思うが、強いコンピュータ将棋を作ろうとしたら、過去の棋譜を全部コンピュータに覚えさせること、このデータベース化が第一段階。次に、現在進行中の盤面の状況に近い状況を棋譜データベースからいかに効率的に探し出すかだが、ここが人間の場合だと直感でなんとなくこんな感じの棋譜があったかも、ということで一つの棋譜を思い浮かべるのだろう。コンピュータであれば、何億とあるデータからもっとも「画像的に近い」ものを選択するのだろうが、「画像的に近い」という判定をどうやるのか、それが最大の鍵になるものと思われる。

A君:「画像的に近い」かどうか、ですが、人相を判定するといったソフトもあるので、人相よりは棋譜のデジタル化は完璧に行うことができるので、比較的簡単な比較技術ではないでしょうか。

B君:ある意味、その通りだ。棋譜は完璧にデジタル化可能。だから、コンピュータにとっては比較的取り扱い易い対象だ。

A君:まずは、棋譜のデジタル化とは何かの説明が若干必要でしょうね。それから、以前の棋譜データベースにある棋譜の通りの対局であれば、コンピュータは、データベース通りに打てば良い。

B君:しかし、本当の問題は、必ずしもありとあらゆる棋譜がある訳ではないこと。だから、既存の棋譜から外れた状況になったとき、どうやって、最善の手というものを判定するか。これが最大の問題で、後ほど、記述することにしよう。

A君:となると、まずは、「デジタル化できるか」どうか。あるいは、「デジタル化し易い」と言う言葉の説明をざっくりと行きましょう。

B君:まず、棋譜はデータベース化されている。web上にある棋譜だけれど、例えば、最近人気の藤井四段と東大1年の藤岡アマの対戦の棋譜が、
https://shogidb2.com/games/8710afb65fd61ba4c59ad88208d4139cef99324f
にある。
 ある状態の盤面は、座標軸で表現する。その説明は、「縦を段(だん)、横を筋(すじ)と言い、段には、一、二、三・・・と言う漢数字が、筋には、1、2、3・・・と言うように数字が右から付けられています」。そして、最初の手として、2七にある「飛車の上の歩」を一つ上げると、「2六歩」という指し手になる。
 補完的な表現として、
「直」(すぐ)・・・金銀と成駒(成桂・成香・と金)がまっすぐ上がる場合に使われる。
「寄」(よる)・・・金、成駒や飛車が一つ左右に動く場合に使われる。
「引」(ひく)・・・大駒が後方へ下がる場合、及び金銀、成駒が下がる時に使われる。
「上」(あがる)・・・金銀と成駒が上がる時使われる。
 これを続けることで、すべての勝負が表現できる。

A君:簡単なデータベースですね。となると、次は、最善手というものを、どう判断するか。方法論としては、可能な手を全部選択してその評価を行うという方法論と、過去の棋譜から、勝利につながった手を選択して、それを評価するという二種類の対応があり得ます。

B君:将棋では、以前は、形の近い棋譜から勝利につながった指し手を選択するという方法が採用されていたらしいが、このところのコンピュータの計算速度とデータベースアクセス速度の向上のために、可能な手を全部読むという「全幅検索」が普通になっている。

A君:このあたりは、Ponanzaという将棋ソフトを開発している山本氏と下山氏の記事が参考になります。
http://ascii.jp/elem/000/001/171/1171630/

B君:この記事でも指摘されていることだけれど、計算機資源の大小がやはり決定的で、「全幅検索」を3手まで行うことがパソコンレベルでは限界だったものが、CPUコアの数が200個、50TBのストレージといった計算資源を持つことによって、6手先まで読めるようになった。これが決定的だったらしい。

A君:物量だけで勝負が付くのでは面白くないので、将棋電王トーナメントという大会では、規定された1台のマシンしか利用できないというルールらしいです。IntelのCorei7のCPU(8コア)を使い、ストーレージも2TB止まりのようですね。要するに、最強パソコンレベル

B君:いずれにしても、人間がロジックを全部最初から作ることは不可能で、自動的に判断力を改善する以外に方法はなくなる。そこで、有効なのが「機械学習」、「ニューラルネットワーク」とか、「ディープラーニング」いったコンセプト。

A君:ニューラルネットワークとは、一応定義すると、「人間の脳の中での判断を模倣する方法」とも言われていて、次の記事が分かりやすいと思いますが、その内容は、実はかなり高度ではあります。手書きの数字をどうやってコンピュータで判断させるか、ということを例題として、その説明が行われています。
http://nnadl-ja.github.io/nnadl_site_ja/chap1.html

B君:コンピュータプログラムを書いたことがある人には分かって貰えると思うけれど、例えば、手書きの「9」という文字をどうやって9だと判断するか、そのロジックを作り、どのプログラム言語でもよいから、プログラミングをせよ、と言われても、実は、判定基準の論理を作ること自体が非常に難しい

A君:そこで、採用される手法が「訓練」できるコンピュータ。その一つが、ニューラルネットワークと呼ばれるもの。様々な手書きの数字を集め、「9」の図形を例えば8x8に分割して、64ヵ所が白か黒かで表現する。これをニューラルネットワークに入力して、その結果は9だよ、と教える。

B君:数字認識の実用システムの訓練用に使われるデータは、28x28の分けられ、白黒ではなくて、グレースケールで表現されているとのこと。こんな画像6万枚が準備されているらしい。

A君:そして、その判断結果と正解ができるだけ一致されるように、平均二乗誤差をできるだけゼロになるように重みとバイアスと呼ばれる二種の数値を最適化することが、その訓練の中身になります。こんなことで、手書きの数字が判断できるようなコンピュータシステムが出来上がるのです。

B君:しかし、手書き文字と将棋あるいは囲碁では、全然違う。これが常識というものだろう。

A君:それはそうでしょうね。手書き文字なら、10段階ぐらいのグレースケールで行けると思いますが、将棋の駒は、数字よりも少ない8種類ですが、「成り金」に変身するということができるし、飛車角も出世できるので、より複雑。

B君:しかし、最近の将棋ソフトの進化がすごい。人間はミスをするが、コンピュータはミスをしないのが最大の特徴か。

A君:1996年に、「コンピュータがプロを負かす日は?」という問いに対して、プロの棋士の答えは、近い将来が7名、来るがかなり先が20名でその時点は10年から100年後、そして、永遠に来ないが15名だった、とのこと。詳細は、Wikiのコンピュータ将棋を参照のこと。

B君:2014年頃、コンピュータ碁について、その開発者の一人である山下宏氏は、将棋に比べると10年遅れと語った。それは、恐らくだけれど、AIを設計するとき、囲碁と将棋では違うといったことをどう考えるかが重要だったのでは、と思う。囲碁では、戦場が常に盤面全体であることは将棋と同じでその通りなのだけど、実際には、あるところで局所戦が行われ、そこが一段落すると次の局所戦が行われる。だから、現時点での状況は、その時点で次の手が打たれるであろう比較的狭いエリアの状況を考えれば良いことになる。要するに、柔軟に、エリアをとらえる必要があったのではないか。

A君:確かに、将棋であれば、飛び道具である飛車とか角が(桂馬、香車も?)あるので、常に全盤面を対象にして考えなければならない。しかも、持ち駒(手駒)があることも、常に全盤面を見ることが必須の理由。

B君:コンピュータプログラム化するときには、むしろ、常に全盤面を見なくてはならない将棋の方が単純ということだったと思うのだ。

A君:囲碁の場合だとある局所戦をいつ切り上げるか、という全くレベルの違った判断がありうるので、プログラムによる処理を考えると、確かにより複雑なのかもしれないですね。

C先生:まあ、そんなところで、囲碁や将棋へのAIの話は終わろう。α碁は引退したが、その分散処理で使われるハードウェアはWikiによれば、CPU1920個、GPU(グラフィック用のCPU)280個ということで、まあ、とんでもない規模のコンピュータなのだ。
 しかも、将棋にしても碁にしても、学習機能を持っている強みと言える。α碁では、棋譜を使った学習を行って、α碁が打つ手を棋譜と一致させるという方法論で訓練された。しかし、このような学習機能の本当の優位点は、他にもあって、それは、α碁のハードウェアを2台のコンピュータに分割して、お互いに、対戦をさせながら、より強くするという学習を、まさに、夜昼なく24時間連続で何日でも行わせることができることだ。疲れないコンピュータは、無限の努力ができるのだ。この点では、人間にはどうしても限界がある。
 本来の目的は、未踏チャレンジのような材料開発などの知的作業が、AI化されるか、という話題について言えば、将棋・碁といった知的作業は、実は、文字のパターン認識と似ているために、様々な手書き文字を読み込ませることによる学習が利くようなシステムだった。
 しかし、未踏チャレンジは、残念ながら、どこまで考えれば良いのかという範囲が無限大なのだ。したがって、正解を与えて学習させるという方法論が採用できない。したがって、α碁のようなシステムの延長線上には、未踏チャレンジに解を与えるAIシステムは存在していない
 本日の話題は、ここまでにして、次には、もう一つのAIの例と言われるIBMのWatsonがどのような応用エリアで有効なのか、それを考えてみよう。そして、未踏チャレンジのような知的作業に、このタイプのシステムがどこまで使われるようになるか、その予測をしてみたい。