English

第81回コラム
機械学習と人の学習

情報アーキテクチャ専攻 柴田 淳司 助教

1. はじめに
 皆さんは勉強は好きでしょうか?私は自分で勉強するのは嫌いですが、機械に勉強をさせる「機械学習」という分野の研究をしています。機械学習は生物が持つ学習という機能に着想を得たもので、文字通り機械に学習機構をつけることで様々な問題を解かせるという研究分野です。もちろん、単純に学習といっても様々なアプローチがありますし、その過程で多くの現象や課題が発生します。
 私は教育に携わるようになり、機械学習で発生する様々な現象も、人の学習に起こりうると感じました。
 ここでは、機械学習の紹介をしながら、人の学習について振り返ってみます。

2. 機械学習と人の学習
 機械学習は大まかにいくつかのステップに分けることができます。まず、問題に対してモデルを準備します。次に、そのモデルに試しにデータを与えて動作させ、その評価をします。そして、評価をもとにモデル内部のパラメータを変更し、正しい動作を行えるように調整します。これを繰り返すことによって、より優れたモデルを作ることが機械学習の目的になります。
 これを人で言い換えると、モデルは理論もしくは人の脳そのものであり、データによる動作は授業や実技や演習、評価はテストに当たります。そしてこれを繰り返すことで理論や脳を優れたものにすることが人における学習ということになります。
 では機械学習も人も、単純に評価と微調整を繰り返していれば良いかというと、そう単純にはいきません。解くべき問題が多種多様にあるように、モデルにも様々な種類があり、そこには向き不向きが存在します。例えば、多数決を行うような簡単な問題では、複雑でない線形分離モデルのようなモデルが良いでしょう。また、映像に写る物体を識別したいなら、ニューラルネットワークのように多くの情報を処理できるモデルを利用する必要があります。または映像処理の段階を分けて複数のモデルを利用するのも良いでしょう。
 これは人にも当てはまると私は考えています。単純な問題に対して複雑なロジックを組む必要はありませんし、複雑な問題なら、それに見合ったロジックを考える必要があるでしょう。問題を分割してロジックを分ける、というのも効果的です。

3. 学習課題解決のためのアプローチ
 ひとえにモデルを学習するといっても、そこには多くの課題と、それを解決するためのアプローチが提案されています。ここではその中から、局所解と次元の呪いについて取り上げてみます。
 局所解とは、大局的に最適な解でない、特定範囲でしか有効でない解のことを指します。局所解による学習における振る舞いにプラトーというものがあります。機械学習では、序盤の学習は進むのに、ある程度の学習を繰り返すと停滞することがあります。これを平地から取り、プラトー(Plateau)と呼びます。モデルは、内部のパラメータを徐々に、時には大きく変化させながら、どのようなデータに対しても最適な出力ができるような値を探索します。しかしその学習過程において、一部の環境では最適な解、局所解がある場合があります。そうすると、局所的には最適であったという結果に引っ張られ、学習が進まなくなります。これが機械学習におけるプラトーです。機械学習ではこれを解決するために、一見最適であってもパラメータの探索をやめないようモーメンタムと呼ばれる学習の補正をかけることがあります。人のトレーニングにおいても、初めのうちはめきめき上達するのに、ある程度まで上達すると停滞、プラトーが起こります。スポーツの場合は、栄養不足や休養不足、トレーニングへの慣れなどが原因とされています。では勉強の場合ではどうでしょうか?私たちは新しい学問を勉強する際に、すでにある知識や経験を活用してそれを理解、紐解こうとしていきます。そうした中で、どうしても理解できないことが出てくることは多くの人が経験しているでしょう。これにも多くの要因はあるでしょうが、機械学習における局所解と同様に、既存の素晴らしい理論や経験に拘泥するあまり新しい解を探せずにいることがあります。そんな時は機械学習に倣って、既存の考えを一度置き、新しい観点から物事を見るようにしてみてはどうでしょうか。
 次元の呪いとは、次元数が増えるとその表現できる情報が指数関数的に増え、モデルの表現力不足やデータ量不足に陥ることを言います。例えば、明日の天気を考えるのに今日の天気を見るとします。今日が晴れなら明日は晴れ、今日が曇りなら明日は雨、という具合にです。これは考えられるパターンが少ないので、学習は簡単ですが、その分、予報の精度は低いでしょう。ではさらに前々日の天気も用いて予測してみましょう。今度は(前日の天気)×(前々日の天気)と入力されるデータのパターン、言い換えると次元数、が増えています。さらに予測精度を上げるため、もっと昔の天気の情報を入れてみては?天気だけでなく気温と湿度も追加しては?季節の情報や別の地域の天気は?こうして次元を増やすと、予報の精度は一見どんどん上がって最高のモデルが作れるような気がします。しかしそれは、過去の天気、気温、湿度、気圧、風向き、風速、別の地域の情報などなど多くの次元により膨れ上がったパターンをモデルが網羅できればの話です。膨大に膨れ上がったパターンに対して、データの量は相対的に少なくなります。というのも、一つのパターンを学習するためのテストケースは、パターンの情報が詳細になるほど同じ状況になることは少なくなるからです。人が観測した気象データのうち、同じ過去の天気、温度、湿度、気圧、風向き、風速その他諸々が一致した日が何日あるでしょうか?モデルに与えるデータが詳細になればなるほど、そのパターンにおける正解となるデータの個数は少なくなり、学習が困難になります。これを次元の呪いと言います。機械学習では次元の呪いを避けるため、できるだけ大量のデータで、欲張らず少量のパターンから学習する必要があります。一方で人の場合では、無意識のうちに判断に必要・不要な情報の分別を行っています。明日の天気の予想に今日の朝食の情報を用いる人はまずいないでしょう。ですが、関係あると思い込んで多くのものを学習しようとしてしまうことがあります。大学数学をやるために算数から復習するようなものでしょうか。確かに、本質的な理解に対しては重要なことかもしれません。しかし人の時間は有限です。まずは直接大学数学を試す、次に高校数学を試すなど、欲張らずに少量ずつ学習を進めてみるのもいいでしょう。

4. おわりに
 如何でしたでしょうか?「人と機械は違う」という意見の方もいるかと思います。もちろん私も、機械学習が人の学習過程を全て再現しているとは考えていません。ですが、学習するということの性質を理解し、自分の学習姿勢について再考する材料としても機械学習は面白い分野ではないかと思います。
 皆さんも是非、様々なアプローチで学習に挑んでみてください。

PAGE TOP