学習、というプロセスをAIの歴史から考えてみる
Apexが新シーズン入って楽しすぎて、ほかのことが全く手についておりません、いかがお過ごしでしょうか。
今回は自分が常々考えてたところの備忘録的な蔵出しになるんですが、いわゆる「スキルアップ」とか「学習」とはどういうプロセスを経て獲得に至るのか、というのをAIが囲碁で人間に勝ったくらいのときに分かったことを書き留めておこうという感じです。
基本的な学習のプロセス
では、「学習」という行為について、一般的にいったいどういう順番で進めていくのだろう、というのを考えていきます。
まず、「お題」や「課題」といったものが提示されます。これは、基本的に未完成のものであり、特定の手順の処理をすることで完成する、というものです。
次に、これを完成させるための処理を行います。学習者は基本的に「こういう処理をすれば、完成するのではないか」という目算を立て、実際に処理を行います。ここでいう「処理」は、人間では「特定の場所に色を塗る」とか「文章を作る」とか「話す」とか「歌う」とかそういうことです。
最後に、処理された成果物にたいして、想定された完成状態とのズレを確認します。これらのプロセスを繰り返し、完成状態とのズレを限りなく小さくしていきます。
これがおおまかな「学習」のプロセスということが言えると思います。
Alpha Go のAIは何が革命的だったのか
さて、AIには「教師あり学習」と「教師なし学習」という二つのやりかたがありまして、基本的には「教師あり学習」のほうが精度の高い学習結果を少ない試行回数で獲得できる、ということになっています。
この二つの違いは何かというと端的に言うと、「正解が提示されるか、されないか」という違いです。
「学習」の最終課程において、「処理された成果物にたいして、想定された完成状態とのズレを確認」となりますが、その「想定された完成品」が事前に用意されるのが「教師あり学習」です。
実はAlpha Goの登場前まで、AIの研究は「教師あり学習」がメインで研究されていました。しかし、「教師あり学習」には大きくというか致命的な弱点があり、それがそもそも「想定された完成品を大量に用意するのがいろんな意味で困難」という、割とどうしようもない弱点がありました。例えばインターネットも貧弱な時代に様々な人の写真を用意したいと思っても、同じ解像度で同じアングルの同じ切り抜き状態の様々な人の写真、というのは案外見つからないものです。そして、そういった完成品が集まるころにはもうAIなんてなくても人力でできるやん的な雰囲気になったりとか、はたまた準備に時間がかかって何年も研究が伸びるとか、数か月では対した成果は出ないよね的な感じになったりしてました。そうでなくても、必要とされるデータ量もデータセンターが必要なレベルで膨大になりますから、昨今の画像認識精度の向上はそういうネットワーク関係の技術の進歩も一役買ってるんじゃないかなぁと思います。
対してAlphaGoのメインは「ディープラーニング」といわれる手法で、これは典型的な「教師なし学習」です。ざっくりいうと、処理を行った後の成果物に得点をつけて、より高得点になるように処理を変えていく、という手法です。
これにより一体何がよかったのかというと、成果物と完成品のズレを確認する作業が自動化されたことです。まず、完成品を用意する時間が必要ありません。また、正しさの指標を人間が確認する必要もありません。これにより、学習のプロセスをPCの処理レベルにまで依存させることができ、スパコンで学習をぶん回すことができるようになりました。そしてそれは、一回当たりの学習効果を極限にまで減らしたとしても、実用上問題ないレベルにまで学習可能、という割とヤバい効果をもたらしました。そりゃみんな使うべ。
要は何が言いたいかというと
これは人間の学習にも当てはめることが可能です。つまり、学習することにおいて、その効果を高めるためには、以下の3つの要素が大事だということです。
「想定された完成状態」を把握しておく(お手本を用意する)
想定された完成状態と成果物を比較してズレを確認する
試行回数を無限に増やして完成状態とのズレをなくしていく
まぁ、結局「経験は糧になる」とか「練習時間は裏切らない」とか「人が習慣を作り、習慣が人を作る」とか、そういうことなのよね、という話です。
まぁ、月並みな話です。おわり。