松尾:そうですね。ルールはどんどん複雑になって、たとえば「この値とこの値の掛け算が一定以上ならこう反応を返せ」みたいな感じです。こうなるとルール自体、人間には理解できなくなりますが、実際は値のところはセンサー入力を使うような形で複雑化しています。ルールが複雑になると、動きはより賢くなっていくと考えていいでしょう。
塩野:松尾先生は、東京大学で人工知能に取り組んでいらっしゃいますが、具体的にどんな研究をされているのでしょうか。
松尾:いろいろな観点がありますが、大きく分けると3つです。まず1つは、人工知能にはどんなデータが使えるのか、何が有用なのかを調べるデータ自身の研究です。ウェブの研究やビッグデータの研究が該当します。次はそのデータを使ってどんな方法でルールを作っていけばいいか。自動的にルールを学習する方法ですね。機械学習やデータ分析の研究です。そして3番目が、ルールを作るシステムや「アルゴリズム」を使って、どんな応用ができるかを考える。応用に関する研究です。データの入り口と処理、そして出口。こんなイメージでしょうか。
塩野:ルールの作り方ですが、いま話題の「人工知能を使った将棋」でいうと、どんな方法で進めていくのでしょうか。
コンピュータに教えるのは「ふるまい」
松尾:いちばん簡単なところから考えると、王手を指されたら逃げるというルールができます。将棋のプログラムを作るとしたら、最初に思いつくルールですよね。そして、次に考えることは、相手の駒が「王」の周囲に来たら逃げる。王手はされなくとも、近寄って来たら逃げる。もう少し進化させるとしたら、駒の数は相手が少なく自 分は多いほうがいいので、相手の駒が取れるときは取る。さらに「飛車」や「角」は大事な駒ですから、「歩」は取られてもいいが「飛車」と「角」は守る。相手の大事な駒は取る。
次の段階は、いまの盤面は自分がどれくらい有利か不利かをスコアリング、つまり得点で表すこと。たとえば、自分が持っている駒の数から相手の駒の数を引く。そこに「飛車」や「角」が含まれていたら、3倍するような計算を行います。あるいは「王」の周りにいる相手の駒の位置を見て、距離が近ければマイナスするといった工夫をして、盤面のスコアを計算できるようにするわけです。
塩野:なるほど。その先は複雑な計算が入ってきそうですね。
松尾:ええ。ここまで来ると、もっと難しいこともできるようになります。自分がこう打って相手がこう返したとき、スコアがどのくらい変わるかが計算できます。ここまで来ると、あとは何手先まで読むかの話ですね。3手先までなら、そこまでの自分と相手の手を想定してすべてのパターンを出し、それぞれのスコアを算出する。
これを「ミニマックス法」と言いますが、自分は評価関数のスコアを上げたい、大きくしたい。相手はこちらのスコアを小さくしたい。自分の選択肢はよいほうを取って、相手は自分のスコアが下がるような選択をしたとき、その中でもスコアがいちばんいい方法を選ぶ。平たく言うと、相手が最善と思える「手」を打ってきたときに、もっとも自分が有利になる「手」を考えることです。
塩野:なるほど。それでは、将棋や車の自動運転では、中でいろいろな計算式が動いていると考えていいのですね?
松尾:そうです。いろいろなことが起こる確率の中で、実際にそれが起きてしまったときに、どれくらいまずいことになるか。そういった計算がたくさん行われて、システムの「ふるまい」が決まってきます。
無料会員登録はこちら
ログインはこちら