もどる

このページは、執筆中のものです。


機械学習 (Machine Learning) の紹介

1. 機械学習は、データの中で、見えているものを手がかりに、見えていないものを、予測する技術です

機械学習とは、だいたい1960年あたりから人工知能の一分野として研究が始まった分野です。
もともとは、人工知能研究の一環として、その名のとおり、(ロボ的な)機械が経験から学習することで自動的に行動を獲得していく仕組みを実現することを目指す分野だった(と思う)のですが、現在では、多くの研究者は、より工学よりにシフトし、その定義は、「データの中で、見えているものから、見えていないものを予測する(ことを、コンピュータにやらせるための)」技術、あるいは、その研究を指すことがほとんどです。
長年にわたって、機械学習は浮いたり沈んだりしながら、地道な発展を遂げてきましたが、近年の、自然言語処理やバイオインフォマティクス、あるいは信用リスク予測などのビジネス用途での応用分野における成功を要因に、爆発的に普及が進み、現在も広くその研究や応用が進んでいる、比較的ホットな分野の1つといえます。
機械学習技術の進歩の裏には、近年の、インターネットの登場や、コンピュータの処理速度の向上などの情報技術の進展、また統計やデータマイニングなどの、よく似ているけど、微妙に雰囲気の違う分野との融合も大きくかかわっています。
機械学習にもいろいろな流派がありますが、とりわけ、統計的機械学習と呼ばれる、統計的な手法を基礎とするアプローチが、上記の応用分野において大きな成功を収めており、最近では、機械学習というと、統計的機械学習のことを指すことが多いでしょう。
ここでも、その、統計的機械学習を中心に紹介することにします。

2. 機械学習の扱う問題には、大きく分けて、「教師付き学習」と「教師なし学習」の2種類があります

機械学習の問題は大きく分けて、教師付き学習 (supervised learning) と、教師無し学習 (unsupervised learning) の2つに分類されます。
もちろん、その中間的問題もありますし、機械学習は、この2つの問題のみを扱う分野であるというわけではありませんが、現在では、どうやら、少なくともこの2つは、学習を語る上で、かなり基本的で重要な問題であるらしい、と多くの人が思っています。
(このほかにも、強化学習と呼ばれる分野も研究が盛んですが、これは、どちらかというと、教師付き学習の特殊な問題設定の1つ、と捉えるのが妥当でしょう。)

2.1. 教師付き学習
教師付き学習では、入力データ(見えているもの)が与えられたとき、これに対する出力(見えないもの)を正しく予測することが目的です。 ただし、入力をただ入れられても、何を出力したらよいのか、機械はわかりません。
そこで、訓練データ(あるいは教師データ)と呼ばれる、入出力ペアの事例が複数与えられます。
つまり、コレを入れられたら、コレを出しなさい、という例をいくつか人間に与えてもらいます。
これをもとに、新しい入力データが来たときに、それに対する正しい出力をするような機械(=関数)を作るのが目的です。
もちろん、今までに見たことのある入力とまったく同じものがくれば、訓練データの中から、同じ入力をもったものを選んで、それに対する出力を出せば、それで十分に思えますが、中には、手持ちの訓練データの中には現れない入力データも現れます。
このようなデータに対して、与えられた訓練データを一般化して、出力未知のデータに対処する能力(汎化能力)が、なるべく高くなるような、学習手順(学習アルゴリズム)を設計することが、教師付き学習の主要なテーマです。

さて、学習の問題は、結局は、形式的な(数学っぽい)問題として定式化され、それをうまく解く方法を考える、というところに落ち着くのですが、そのためには、「入力」とか「出力」とか「機械」とかが、それなりに形式的に表現される必要があります。
通常、1つの「入力」データは、ある次元数をもった、実数値ベクトルとして表現されます。
このベクトルは、1つの入力データの特徴を表したもので、特徴ベクトル (あるいは素性ベクトル) などと呼ばれます。
一方、「出力」は、「+」1や「-1」など(「A」とか「B」とかでも良いです)の離散的な値であったり、「125」円などの連続値をとります。
例えば、文書が与えられたときに、その文書が属するカテゴリ(「スポーツ」や「経済」など)に振り分ける文書分類の問題を考えてみると、入力は1つの文書となり、その特徴ベクトルは、文書中に現れる単語を特徴として
文書 = (「野球」の出現回数, 「国会」の出現回数, 「円高」の出現回数, …) = (0, 1, 2, …)
のように構成されます。
一方、出力は、「スポーツ(1)」「経済(2)」「社会(3)」などのように離散値をとります。
他の例としては、文書中の各単語に対して品詞を割り当てる品詞付けの問題や、個人情報をもとに融資の可否を決める信用リスク評価の問題などが挙げられます。
最後に、「機械」を定義します。 機械学習における機械は、入力と出力を結びつける「関数」として定義されます。
X を全ての可能な入力の特徴ベクトルの集合(例えば、d 次元のユークリッド空間)として、Y を全ての可能な出力の集合(例えば、離散集合や実数値の集合)とします。
「機械」は、特徴ベクトル xX を入力として、出力 yY を出力する関数 h: XY 、あるいは、入力 x が与えられたときの、y の条件付確率分布 p (y|x) として表現されます。
ただし、hp は何でもよいというわけではなく、通常、パラメータとよばれるベクトルθ を持ち、を決めることで、関数や分布が一意に決定されます。 これを、 h (x;θ) やp (y|x;θ) のように書きます。

「入力」「出力」「機械」が定義されたところで、教師付き学習の問題を定義します。
教師付き学習では、N個の入出力ペアの集合 E = { ( x(i), y(i) ) }i=1,...,N から、機械のパラメータθ を決定する問題として定式化されます。E は訓練データと呼ばれ、この情報が「教師」から与えられたものとして学習を行うのが、「教師付き」学習とよばれるゆえんです。

2.2. 教師なし学習
教師無し学習の方は、より曖昧な問題設定になり、入力データのみが与えられます。
正しい出力は与えられないため、何らかの基準を設けてそれを最適にするような出力の割り当てを求めることになります。
教師付き学習と異なり、予測の正しさといった明確な基準はないため、基準の設計の観点によって結果は異なってきます。
教師無し学習の代表例としては、クラスタリングがあり、自然言語処理においては、文書の集合を似通ったものにグループ分けするなどの応用があります。

2.3. 半教師付き学習
また、教師付き学習と、教師無し学習の中間的な問題設定として、半教師付き学習と呼ばれる問題設定もあり、これは訓練データのなかに、正解出力が与えられない( x(i) のみが与えられる )ようなデータが含まれるような場合を指します。
入力データは大量に存在するが、人手で正解(正しい出力)を与えることのできるのは、そのうち一部であるような場合がこれにあたります。