いまさら聞けない機械学習

機械学習≠人工知能。

最近はやや落ち着いた感がありますが、人工知能(Artificial Intelligence:AI)あるいは機械学習(Machine Learning)という言葉を聞かない日はないくらいにバズワード化しています。これは第三次AIブームと呼ばれ、その火付け役が機械学習の一種である深層学習(Deep Learning)であることはいうまでもありません。

一方で、機械学習はAIの一分野にすぎないにも関わらず、あたかもイコールであるかのような空気感や、あるいは機械学習の手法はたくさんあるにも関わらず、深層学習に代表されるニューラルネットワークビッグデータ(Big Data)1)再考するビッグデータを利用した手法のみが取り上げられる風潮が、機械学習の正しい理解を妨げているように思います。そもそもAIとはなんぞやについては長くなるので控えるとして、ここでは機械学習とはなんぞやについて簡単におさらいしておきます。

教師あり、教師なし、強化学習。

機械学習は、人間がもつ学習能力をコンピューターで実現する技術や手法のことです。人間のあらゆる能力を対象とするのがAIであるとするならば、機械学習はその一部にすぎないということになります。

学習(Learning)の意味や解釈は文脈により異なりますが、とりわけ脳科学や人工知能の領域では”分ける“処理を言います。ある事象について判断する、それが何かを認識する、などはすべて分ける処理であり、うまく分けることができれば、ものごとを理解・判断し、行動することが可能となります。また、いったん分ける基準や方法がわかれば、未知の事象を予測することも可能です。

機械学習は、教師あり学習と教師なし学習に大きく分類されます。

教師あり学習(Supervised Learning)とは、問題と正解の両方を教えて、新しい問題の正解を予測できるようにする学習のことです。例えば、現在までの天気のデータから明日の天気を予測させる問題がこれにあたります。この場合の正解とは「晴、曇、雨」などで、それを決定づける要因である気温・湿度・気圧などのデータと合わせてコンピューターに学習させることで、現在までの状況から明日に起こる天気を予測できるようにします。なお、問題と正解の組み合わせを教師データといいます。また、正解を決定づける要因のことを特徴量(Feature Quantity)といいます。

教師なし学習(Unsupervised Learning)とは、問題だけを与えて特徴を認識させる学習のことです。例えば、購買データをもとにユーザーを似た者同士でグループ分けするような問題がこれにあたります。2012年に米Googleがネコを認識できるAIを開発したことが大きな話題となりましたが、これも教師なし学習です。YouTubeから取り出された1000万枚の画像を読み取るうちに、自律的に”ネコ”というグループを認識するようになりました。ただし、そのAIはそれが”ネコ”という名前の動物であることは知りません。なお、似た者同士のグループをクラスター、その分類手法をクラスタリングといいます。これはデータマイニング(Data Mining)2)再考するデータマイニングでも用いる用語で、使われるアルゴリズムも同じです。また、分類を決定づける要因のことを、教師あり学習の場合と同様に特徴量といいます。

強化学習(Reinforcement Learning)を、三つ目として分類に加えることがあります。教師あり学習と似ていますが、正解ではなく「報酬」を与えることで、もっとも多くの報酬を獲得できる「行動の選択肢」を学習させる手法です。報酬を正解と捉えれば教師あり学習と同じですが、決定的に異なるのは、各行動ではなく連続した一連の行動に対して報酬が与えられることです。サッカーでたとえると、ゴールに至るまでのドリブルやパスなどの一連のプレー選択に対して報酬を与えるのが強化学習で、それぞれのプレー選択に良し悪しの評価を与えるのが教師あり学習といえます。2016年にGoogleのAlphaGoというAIが囲碁プロ棋士を破ったことが大きな話題となりましたが、これは強化学習です。

盛り上がるニューラルネットワーク。

機械学習の手法はたくさんありますが、代表的なところで、サポートベクターマシン、クラスタリング、ニューラルネットワークなどがあります。

サポートベクターマシン(Support Vector Machine:SVM)は、入力データから正解を識別する教師あり学習の代表的な手法です。詳しい説明は別の機会にしますが、機械学習の永遠の課題である過学習を回避し、汎化性能をあげやすいという特長があります。過学習とは、目の前にある問題に最適化しすぎることで、新しく発生する問題に対応できないことを言います。受験でたとえると、過去問を完璧に解くことにこだわるあまりに、応用力がつかず、テスト本番で出題された傾向の違う問題に対応できない、というような状態です。その克服に使われる方法のひとつに正則化があります。正則化は、変数に制約を課すことで問題を抽象化してシンプルにすることを意味し、スパースモデリング(Sparse Modeling)3)スパースモデリングって?スパース条件、あるいはベイズ推定(Bayesian Inference)4)いまさら聞けないベイズ推定事前確率がそれにあたります。SVMではマージン最適化という正則化手法で過学習を回避するよう工夫されています。

クラスタリング(Clustering)は、入力データを似た者同士で分類する教師なし学習の代表的な手法です。こちらも詳しい説明は別の機会にしますが、多次元空間上のユークリッド距離が近いものを同じクラスター(似た者同士)としてグループ化するのが基本的な考え方で、階層型非階層型に大きくわけられます。階層型は、距離が近いものから順にグループ化し、階層構造にすることでクラスターを整理します。いくつのクラスターに分類するかを事前に決める必要がないという特長がありますが、大量データの場合に計算量が多くなったり、結果が不明瞭になる欠点があります。対して、K平均法に代表される非階層型は、事前にクラスター数を決め、その数にサンプルを分割するため、大量データの学習に適しています。ただし、最適なクラスター数を自動的には計算する方法は確立されておらず、分析者のスキルに依存するという欠点があります。

ニューラルネットワーク(Neural Network)は、教師あり学習・教師なし学習のどちらにも利用される手法で、とりわけ多層ニューラルネットワーク(Deep Neural Network:DNN)を用いた機械学習のことを深層学習といいます。脳の内部では神経細胞(Neuron)がシナプスの結合によりネットワーク構造となっており、そこに電気が流れて情報を処理するコンピューターのようになっていることが知られています。その情報処理機構を数理モデルにしたものがDNNであり、すなわち脳を模することで学習機能を実現しようとするアプローチといえます。DNNを用いた機械学習の発想は古くからあったものの、大量データと膨大な計算を行う超高性能なコンピューターを必要とするために実現に至りませんでした。それらが克服されたことと、長年の研究によるアルゴリズムの進化が融合し、深層学習として具現化され、まさにいま盛り上がりを見せています。

とはいえ、大量データと超高性能なコンピューターを利用するには膨大なコストがかかります。また、データも大量にあれば何でもよいというわけではなく、学習に適した変数がないと意味がありません。さらに「UXモデリングって?」でも触れたように、ビッグデータによる機械学習には、導出された予測モデルのメカニズムがブラックボックス化して説明しづらくなるという欠点があります。

それらを克服するためには、学習に適したデータを低コストで獲得するための仕組みと、学習に必要な変数とデータ量に絞り込んでシンプルな数理モデルを作る技術が必要です。前者はデータ流通(Data Trading)5)データ流通って?という分野で普及に向けた取り組みが行われており、後者はスパースモデリングのような技術の研究開発が進んでいます。

最後に、機械学習を学ぶ参考書として、大関真之氏の著書「機械学習入門 ボルツマン機械学習から深層学習まで」をおすすめしておきます。機械学習の概念や理論が、数式なしでわかりやすく解説されています。

脚注   [ + ]