※この「プロにキク!」では、毎回その道のプロに話を聞いて、私たちエンジニアに効きそうなノウハウをシェアしていきます。
さて、今回のテーマは「機械学習」です。
機械学習というキーワードはよく耳にするようになったかと多いと思います。ただ、しっかりと理解している、という人は意外と少ないのではないでしょうか。今回は、『わけがわかる機械学習』という本を出されているサイボウズ・ラボの中谷秀洋さんにお話しを聞いていきます。
――中谷さん、よろしくお願いします。
はい、よろしくお願いします。
――中谷さんはサイボウズ・ラボでどのようなお仕事をされているのでしょうか?
はい。ラボという名の通り、研究開発をしていますね。機械学習や自然言語処理、VRなどを主に扱っています。
――あのサイボウズさんとはどういう関係なのでしょう?
サイボウズとは別会社になっていて、私たちは少し先を見ながら活動をしています。機械学習も10年くらい前に取り組みはじめましたが、「役に立つ」という確信を持ってやっている、というよりも技術者が面白そうだからやっていたら徐々に相談が増えてきた、という感じですね。
――じゃあ、もしかしたら全く役に立たなかった可能性もあったわけですか?
ええ、そうしたら「いままで何を遊んでいたんだ」ということになったかも知れませんね(笑)
機械学習の「学習」とは?
――そんな中谷さんが『わけがわかる機械学習』という本を出されたわけですが、「わけがわかる」と言っているということは、「わけがわからない」ということが前提になっているわけですよね?
ええ、10年くらい前に機械学習を勉強し始めた時に「わけがわからない」と感じました。同じように「わけがわからない」という人は多いと思います。
――なぜ、「わけがわからない」ことになっているんでしょうか。
大学では数学をやっていましたが、数学って予め「定義」があって、前から順に読んでいけばわかるようになっています。
――ああ、計算とかでも「公式」がありますものね。
でも、世にある機械学習の本って、あとから色々と「仮定」とか情報が追加されていくんですよ。教科書と呼ばれるものも情報が圧縮されているし、前提知識のある人が読むようなつくりになっているので「わかりにくいなあ」と。
――なるほど、それでわけがわかりにくくなっている、と。
だから、この本では後から仮定が出てくることがないようにしよう、と。出てくるとしても、「なぜその仮定がでてくるのか」をしっかり説明して書いています。
――実際にこの本を出してみて反応はどうでしょうか?
「こういう本が欲しかった」という声も多くいただくので、作りかたとして間違っていなかったかなと思っています。
――なるほど。そう聞いている私もわけがわかってないんですが、そもそも機械学習の「機械」って何を指しているんでしょうか?
機械といってもガシャンガシャン動くものではなく、コンピュータを指していますね。
――では機械学習の「学習」というのは?
機械学習のイメージをイラストで表現する時に、よく先生が生徒に教えている絵が出てきたりするのですが、あれはイメージとして違います。
――あ、見たことありますけど違うんですか?
ええ、人間が学習する時は何も知らないことを知識として得るとか、分からないことを分かるようにするわけですよね。でも、機械学習の学習というのは、出来る範囲の中で修正をしていくような感じです。
――出来る範囲の中で修正をしていく?
本書の中ではテレビの色調整を例に説明しています。テレビの色調整では、赤・緑・青の色を細かく調整して実際の色に近づけますが、機械学習で「学習」と呼ばれる操作はそれにそっくりです。
――なるほど、カメラのマニュアルモードも同じですよね。明るさとか、絞りとかを調整しますので。
そうですね。その調整で自分の想い描いているものをデータから上手く取るためのことができるのが機械学習。まっさらな状態から何かを作るわけではないのです。
――そうすると確かに、先生が生徒に教えている学習とは全然違いますね。
そうです。そもそも「学習」という言葉の意味が間違って広まっています。そのイメージで機械学習を学んでもいいことはないので、注意が必要といえますね。
人工知能と機械学習って何が違うの?
――あと、人工知能と機械学習の違いもよくわかってないんですが。
技術的にはかなりオーバーラップしてますね。機械学習はもともと人工知能のひとつの分野でした。人工知能というのはまさに人間の知能を機械でつくるわけですが、そのなかでも学習をする部分をモデル化したものが機械学習です。
――機械学習はもともと人工知能のひとつなんですね。
ですから、機械学習を人工知能と呼ぶのは問題ないのです。でも、人工知能は機械学習以外にもあるわけです。
――なるほど。
ちなみに、人工知能にも大きく分けて強い人工知能と弱い人工知能があります。
――強い人工知能と弱い人工知能?
強い人工知能というのはドラえもんとか、まさに人間みたいなものです。「人間の脳を機械にしたい」と研究しているひとがいますが、実用レベルに関しては白紙です。そして弱い人工知能というのは“特定の問題・目的に特化した機械のロジック”です。
――GoogleHomeみたいなのも?
含まれますね。人間は問題を見つけて解決していきますが、弱い人工知能は問題を与えないといけない。将棋を指す人工知能に「茶碗を洗って」と言ってもできないですよね。だから、決められた問題を解く、というのが弱い人工知能です。
機械学習の「モデル」とは
――先ほど、「人工知能のなかでもモデル化したものが機械学習」という話がありましたが、“モデル”とはどういう意味なんでしょうか。
学習に関して先ほど“色の調整”でたとえましたが、まさに色調整などの仕組みを「モデル」と呼びます。カメラのマニュアルモードもひとつのモデルです。
――じゃあ「モデル」はいくつも存在するわけですよね?
そうです。この本では初心者向けのモデルしか書いてないですが、モデルのカタログみたいな本もあるぐらいです。でも、機械学習を勉強したばかりの人はモデルを1種類とか2種類しか知らないのです。
――モデルを知らないとマズイわけですか。
機械学習を応用する際に、目の前の問題に適したモデルなのかどうか見極めないといけません。これを無理にうまく適用しようとしてドツボにはまるケースが多いのですが、それは目的と手段がすりかわっているわけです。
――「機械学習を行うこと」が目的化してしまっている、と。
ええ。モデルがそもそも間違っている可能性が大いにあるわけです。常にそれを頭の中に可能性として持って欲しいですね。
――じゃあ、可能な限りモデルを覚えた方がいいのでしょうか。
全部を覚えるのは無理ですが、ある程度の数を広く浅く知っておくことが大事だといえます。そうすると「選択肢がある」ということが分かりますからね。
――RPGとかで武器をたくさん持っておくイメージですかね。
そうそう、まさにそうです。敵に合わせて武器を切り替えていく感じですよね。それを知らないと、「これは万能な武器だから」などと言ってそれだけで解こうとすると、戦いにくかったりするわけです。
機械学習と確率の関係性は?
――あと、この本でも“確率”に触れていますが、「機械学習と確率の関係性」って改めて教えてもらってもいいですか?
確率というのは、“起きるかも知れない事柄を数値化”しているわけです。そして機械学習は“起きるかも知れない事柄を予測”していますので、確率との関係性は必然といえますね。
――「ベイズ確率」というのも登場しますよね。
ええ、何十回も起きることじゃない、「地震の発生確率」とか「来週のテストで100点を取れる確率」とかの場合、ベイズ確率が強力に役立ちます。ただベイズは従来のサイコロの目が出る確率みたいなものの延長で考えてしまうと「分からない」とか「気持ち悪い」ということになります。
――同じ確率でもサイコロとベイズでは違う、と。
現代の確率論は、枠組みの上にすべてが乗っているイメージですね。その枠組みの上にサイコロも乗っているし、ベイズも乗っている。そういったイメージを持たないと、「わけがわからない」ということになりかねません。
――なるほど。他に覚えておくべきモデルはありますか?
あとは、この本でも取りあげていますが「線形回帰」ですね。機械学習の中でも最も歴史のあるモデルで、応用性も高いのでよく使われます。これは説明している動画がありますので、そちらをご覧いただければ。
機械学習と人間との関係
――機械学習の使われ方ですが、一般の人のイメージとしては囲碁で勝ったとか負けたとかというのが浮かぶかと思います。
そうですよね。ここ5年で囲碁のソフトウェアに機械学習が使われるようになりましたが、最近では機械が勝った“手”をプロが見ても、「なんでその手を打ったのか分からない」というケースが出てきました。
――人間の予測を超えてくるわけですか。
人間の場合は定石に頼りがちですが、人工知能は定石にとらわれずに新しい手を考えてくるのです。だから、プロが自分自身を強くするために人工知能の手を参考にすることも増えてきています。
――プロが人工知能の手を参考にする…!
定型の判断では平均的に人間を上回るようになっていますからね。
――じゃあ、いずれは人間が用無しになってしまうということも……
いえ、全部が置き換わることは基本的に無いでしょう。平均性能は上がっているので役立っていますけども、人間にできないところをカバーするような位置づけです。
――人間にできないところをカバーするのがAIだ、と。
ええ。この本の最後にも書いてますが、AIは人間だったら絶対にしないような間違いをしてしまうのです。ですから、「人間がセーフティーになる」というのも重要なんですね。
――やっぱり、いくらAIが浸透しても共存するという感じなんですね。
そうです。そして、「機械学習を使わない」という選択もあることを知って欲しいですね。どうしても「機械学習を当てはめよう」ということは目的化しやすいですが、機械学習が当てはまらないものに当てはめようとするのは誰にとっても不幸ですから。
――モデルを広く浅く知っておくこと、でしたよね。そのためにも『わけがわかる機械学習』を読んでおきましょう、と。
ええ、機械学習をこれから学ぼうと思っている人には手に取って欲しいですね。
――ところで機械学習以外のテーマの本も書かれているとか?
はい、『ぺたスクリプト』というプログラミングマンガの原作を書きました。
――おお、こんな本も!
子ども向けのプログラミング環境でScratchというのがありますが、それにそっくりなシールを使って、子どもが日常の困りごとを解決していくというお話です。
機械学習をこれから学ぶなら『わけがわかる機械学習』を。
お子さんがプログラミングを学ぶなら『ぺたスクリプト』を、ということですね。
今回は機械学習のことがよくわかりました。
中谷さん、ありがとうございました!