ゲームAIに関しては、オセロ、チェス、将棋、囲碁とすでにトッププロでも敵わないレベルに到達した。これらのゲームAIから人間が学ぶにはどうすれば良いのかということについて考えてみる。
まず最初に考えられるのは、コンピューターに最善手(あるいは、最善応手列)を示してもらうというものである。
ある程度棋力があれば、最善手だけもらえれば学べるかも知れないが、得られる情報量としては少ないので、少々物足りない意味はある。
そこで最善応手列とそのときの(局面の)評価値から学ぶという手法がある。(このブログの読者には説明するまでもないが)評価値は、形勢の良し悪しを数値化したものである。これを期待勝率(同じぐらいのプレイヤー同士がその局面から指し継いだ時の勝率)に変換したもののほうが人間的には嬉しいかも知れない。
将棋のプロ棋士である千田先生がこれに近い方法で、学ばれているのだと思う。自分の感性(直感)を、コンピューターの出す評価値に寄せていく(近づけていく)という方法だ。
これはこれで良いのだが、もう少し情報量があったほうが初心者には嬉しいのではないかと思う。
千田先生レベルになると自分のなかに評価値があって、その評価値とAIの導き出す評価値の差から学習できるのだと思うが、初心者にとっては自分のなかに評価値がないので、そこから学ぶのはとてもつらい。
人間は2つの差を修正するように学習することは出来るように作られているのだが[要出典]、自分のなかに評価値がない人は、最善応手列と評価値だけ提示されても学ぶのは難しい。(自分の頭のなかの最善応手列と比較することは可能だが)
だから、最善応手列と評価値だけではなく、その局面の候補手5手に関する最善応手列と評価値が得られたほうが嬉しい。(候補手同士の差を比較がしやすくなるため)
ただ、将棋ではこれらの候補手と評価値を視覚化しにくい。候補手の指し手の駒の移動元から移動先までを矢印で描いて、そこに評価値を併記する程度のことは出来るが、候補手を増やすと画面がぐちゃぐちゃになる。まあ、候補手が5手ぐらいであれば、一つ一つ精査してもどうってことないので、視覚化されているメリットは(囲碁に比べると)あまりないかも知れないが。
将棋とは異なり、オセロや囲碁の場合、駒の移動がないので単に着手できる升に評価値を記入するだけで良いので視覚的に大変わかりやすい。囲碁の場合、着手できる升(合法手)が非常に多いのでそれらすべてを画面に描画すると非常に見づらいかも知れないが、評価値をヒートマップのように色の濃度などで表現すれば、なんとかなるんじゃないかと思う。
そう考えていくと、AIの指し手から人間が効率的に学ぼうとするとき、そのAIの導き出した答えをうまく視覚化出来るのかというのが一つのキーポイントとなる。
逆に言うと視覚化しやすいものは、そこから人間が効率的に学べる可能性が高い。
例えば、最近はAIによって(わりと手軽に)自動着色や美少女の画像生成などが出来ることがわかってきたが、AIが絵を描くことについてプロフェッショナルの領域に達したとき、このAIから教えてもらうことだって出来るはずだ。
「ここに線を引けば評価値+120」みたいに、線一本一本に対して、そこに線を引く価値を計算して視覚的にわかる形で提示することは可能なはずである。しかしそう考えた時に、線分にも移動元と移動先があるので、ここに将棋の指し手と同じ問題が出てくる。このように「移動元、移動先、評価値」という3つで構成される情報が大量にあるときにこれを視覚的にわかりやすく表現する手段が必要なのである。(良い方法があるのかは知らん)
以上のことからわかるように、「人間が将棋AIに学ぶ」という問題は、「人間が自動お絵かきAIから学ぶ」など、他の領域の「人間がAIから学ぶ」問題にも存外共通点が多いのである。
突き詰めていくと、「人間が学習するために必要な情報とは何なのか」だとか「人間はどうやって学習しているのか」だとか、「学校教育はAIでどこまで代替できるのか」だとか、色々面白そうな課題に発展するのだが、本記事の範疇を大きく超えているので今回はこのへんで筆を置きたい。
期待勝率は、同じぐらいのプレイヤー同士と言えども、それが初心者レベル同士なら50%-50%に近づき、将棋の神同士なら100%-0%(または千日手)になりますよね。
プロ棋士が棋力向上のために参考にするなら、「自分と同じ程度の棋力同士」での勝率がいちばん参考になる…のでしょうか?もしくは、勝つべき相手の棋力同士?
棋士個人の棋力を持ち出していいなら、それこそ局面によっては棋風が大きく影響を及ぼしそうな気もします。キリがなさそう。
などとつらつら。
> 期待勝率は、同じぐらいのプレイヤー同士と言えども、それが初心者レベル同士なら50%-50%に近づき、将棋の神同士なら100%-0%(または千日手)になりますよね。
はい、その意味では、将棋ソフトの出す評価値は、正確には、その評価値を出したソフトと同じぐらいの強さのプレイヤー同士が指し継いだときの期待勝率と言えるかも知れません。
ちなみに将棋ソフトの評価値を期待勝率に変換する式としてよく使われているのは、これです。
https://twitter.com/issei_y/status/589642166818877440
shotgunの読み筋可視化についてはドワンゴに話してあるのですがSDTも終わったことですし期待薄いですね。プロ棋士の方とお会いすると盤面見たときにどんなイメージが脳内に浮かんで読んでいるのか質問することがあります。あちこちで話題になってると思いますが,個人差が大きいようでどれが良いってのはないと思うのですが色の濃淡を感じている棋士が多く共感覚に近いものじゃないかと憶測しています。詰み形が一瞬で見えるとかほんとすごいですよね。
候補手の移動先を塗りつぶすだけでも、そこそこヒントにはなるような気はします…が、もう少し何か欲しいですよね。
私はプログラムを読めませんが、やねうら王さんの記事は、想像で補完しつつ、楽しく読ませてもらっています。昔Bonanzaの頃はプロの指し手の点数が高くなるように3駒の点数を機械学習で学ばせていたと思いますが、今はプロ棋士が逆機械学習させられるみたいな感じになっているのですね。その修正方法はかなりブラックボックス的な感じがしますが若い人は(子供とか)自然に感覚で対応しちゃいそう。囲碁のヒートマップはそれっぽくなりそう。将棋は移動先か指し手の利きの箇所だけで表現は無理でしょうか?粗っぽすぎますか?初級レベル位までなら、どの辺がミソか理解するのに役立つかなとか思いました。まぁそれよりも早くやねうら王を買って2枚落ちで5つのソフトと対戦しなきゃ。
> 将棋は移動先か指し手の利きの箇所だけで表現は無理でしょうか?
ヒントにはいいと思うんですけど、もうちょっと工夫が欲しいような…(´ω`)
面白い記事です。
MyBonaのGUIに「棋譜データベースの中でのその局面の着手を矢印で表す(指された回数が多いと矢印が太くなる)」という機能がありました。
あれもどの手が良い手かが視覚的に学べたので今回の話に近いものな気がします。
「移動元、移動先、評価値」を盤面に表す上でもある程度の量までは矢印とその太さ(もしくは色?)が一番分かりやすいのではないでしょうか。
まあ、そうですね。矢印の太さはいいアイデアだと思います。(`・ω・´)b
>> 「人間が学習するために必要な情報とは何なのか」
常に2手先3手先4手先を見る姿勢は素晴らしいと思います。
私がするとしたら画面を6分割して、今の局面、3手進んだ局面1、3手進んだ局面2、3手進んだ局面3、3手進んだ局面4、3手進んだ局面5とか表示させて、それぞれの局面で、今の局面の評価関数からの
増加に大きく寄与している特徴三角形ベスト3&
減少に大きく寄与している特徴三角形ベスト3を表示させてみるとおむ
>> 最近はAIによって・・・美少女の画像生成などが出来ることがわかってきたが
おお!日本始まったな!詳細知りたい