こんにちは。

今回は将棋の話をしながら「人工知能の考えを理解すること」について考えてみようと思います。いくつかの部分でScientific Americanの「Can We Open The AI?」を参考にしました。

 

昨日は将棋の叡王戦の予選、稲葉八段対羽生九段の戦いが行われました。僕はあまり将棋を指さないのですが、詰め将棋を解いたり、次はどんな手をさせばいいのかなと考えながら見たりするのはすごく好きです。昔はNHK杯ぐらいしか見ていなかったのですが、最近はニコニコ動画でいろいろな棋戦が生放送されるようになって、棋士の雑談やゆっくりした解説も含めてとても楽しんでいます。昨日の予選も、羽生九段(僕が子どもの頃からずっと強い)は言わずもがな有名ですが、稲葉八段も現在A級のトップ棋士ですし、解説も藤井九段(しゃべりがすごく面白いし振り飛車という最近はレアになった戦法が得意だからコアなファンが多い)ということで、とても楽しみにしていましたし、実際とても熱い勝負で面白かったです。

 

この叡王戦は、コンピュータ将棋の大会で優勝した将棋ソフトと戦う人を決める予選も兼ねています。現在コンピュータ将棋ソフトはプロ棋士と互角以上に戦えるほどに進化しており、昨年は山崎八段が代表だったのですが、将棋ソフトPonanzaに2連敗で敗れてしまいました。この影響もあり、最近はプロ棋士の中にも今までのような過去の棋士の試合内容を調べるだけでなくソフトの示す手を参考にしながら勉強する人が増えてきているそうです。

 

ところで、人の学習というのはどのようなものなのでしょうか?将棋はものすごく場合の数の多いゲームで、歩が一つ前にあるかないかで大きな違いがあるゲームです。こういうゲームでは「定石」と呼ばれるよく調べられた手順を丸覚えするだけでなく、微妙な定石からの違いがあった時にその手順がいいか悪いかを判断できるような「基準」をよく理解したり、よくある前例を失った形の時に方針を作る「基準」を持つことが必要です。コンピュータ将棋ではこの基準のことを「評価値」という数値で表現しています。例えば「シンプルな」人工知能なら「駒得」、「スピード」といった「項目」が適当な「重み」(例えばスピード重視派はスピードの項目を2倍)で足すことによって「評価値」が作られていると言えます。人はたくさんの経験であったり本や人からもらった知識を元にこのような基準を作り出しており、それが人の「学習」ではないかと思います。ここで、もちろん同じ学習にも経験的に理解する人と理屈で理解する人がいると思いますが、学習というのは人であれ機械であれ多くの場合このような判断基準を作ることだと言えます。

 

ここからが面白いところで、人は学習して得た自分の基準を説明できます。(経験的な学習だと難しいこともあるかもしれないですが。)

 

解説では「この手が来たらこの手をさせばいい。」ではなく、「この手はなぜだめか?」、「この手はなぜいいか?」という事についても説明してくれます。例えば「これはもう少し進むと駒得(弱い駒で強い駒を取れる)だからいい。」、「これは駒得だけど攻めが遅いからだめ。」と言った感じです。これは先ほどの「シンプルな人工知能」だと「駒得」が+80、「スピード」が-100だから「駒得だけどスピードが遅い」から「だめ」という感じになります。そういうわけで、このような「シンプルな人工知能」は初めから人の理解できる自分の基準を持っていて、それの比較をしているからある程度人にも理解しやすいものになります。僕が以前学んだ機械学習はこういった「シンプルな人工知能」で、「基準」は人間があらかじめ用意して、それらの「重み」を経験的に決めさせるというようなものでした。つまり、人が選んだ基準だから理解しやすいのですが、基準は人の知識や経験に基づいて与えられているので、どうしても人の微妙なニュアンスを表現できなかったりしてあまり実用性は大きくなかったようです。これはある意味では人も解説では言いたくても言えない微妙なニュアンスがあるとも言えます。

 

ただ、現在トレンドとなっている人工知能はこのような「基準」も含めて機械自身が作り出しており、とても理解できないものになっているようです。

 

以前Googleの作った囲碁ソフト、「AlphaGo」は「ディープラーニング」という手法を用いました。この手法は現在ブームで、自動車の自動運転やガンの自動検出など様々な場所での応用が期待されています。詳細はよく知らないので説明できないのですが、人の脳を模倣したようなシステムで、与える情報は例えば将棋なら棋譜と勝敗だけで、プロ棋士の考えはいりません。なので、本当に人の脳のようなものなのですが、これが現在人の脳を上回るほどに賢くなっています。AlphaGoは囲碁のプロ棋士が理解できないような手を打ちトップ棋士に勝利しました。このディープラーニング、確かにすごく賢いのですが、一つ問題があるとしたら解説してくれないことです。人は微妙なニュアンスは省いてそれなりの説明をしてくれるので僕みたいな将棋の素人でもなんとなく将棋が分かった気がするのですが、現状人工知能にはそういった優しさはないようです。

 

この人工知能を理解しようという試みはいくつかあるようですが、ディープラーニングは人の脳を模倣したシステムなので現状人の脳が理解できない程度に理解できないようです。試みの一つの例はGoogleのDeep Dreamで、見せられた画像がこれまでに学習したもののどれと似ているかを判断して似ているものをその画像の上に描くもののようです。若干恐怖画像もありますが面白いのでよかったら検索してみてください。これは確かに人工知能が何かを見た時に何を想像しているかがわかるかもしれないですが、夢のように奇妙で意味不明です。でも寝ている時に記憶の整理をするという意味では、夢もこんな感じでできているのかもしれないですね。どうでもいい話ですが、専門家ならこの機能で作られた画像を見て人工知能の精神分析とかもできるのでしょうか?

 

この機械の言っていることが理解できるかどうかということは人工知能の実用化の上で本質的に重要な問題になりえます。将棋ならまあ「意味不明だけど強いな~」で済むのですが、ガンの診断で「ガンだって言ってるんだからガンだ。」と言われて治療しろなんて言われてもそんな医者信用できないですよね。細かいニュアンスは省いても説明をしてくれる医者が名医で、それは「基準」が理解できる医者は信頼出来るということだからです。この信頼の問題は時間が解決するかもしれないですが、例えばもし嘘のデータ(例えばガンじゃないのにガンと判断したタグのついたデータ)をハッカーが混ぜて機械学習させたら、誰も理解できないから間違いをしても誰も気付けないので、大きな問題を引き起こすかもしれません。また、もし間違いがあったら誰が責任を取るんでしょう?機械を導入した病院なのか、ソフトを作った会社なのでしょうか?。でも学習したのは人工知能自身なのだから誰も悪くないような気がします。時々人工知能が仕事を奪うと言いますが、多くの仕事は人工知能が手伝いこそすれ信頼や責任の関係でなくならないと思います。将棋だって人工知能が強くなっても将棋の面白さはその手をよく理解するところにあるから、人工知能が自分で手を説明してくれるようにでもならない限りプロ棋士の仕事も無くならないと思っています。