教師あり学習
テンプレート:Machine learning bar 教師あり学習(きょうしありがくしゅう, テンプレート:Lang-en-short)とは、機械学習の手法の一つである。
既知の「問題」テンプレート:Mvarに対する「解答」テンプレート:Mvarを「教師」が教えてくれるという方法であり、「生徒」であるアルゴリズムが未知の「問題」テンプレート:Mvarに対応する「解答」テンプレート:Mvarを推論する事から名付けられたものである。そのような訓練に用いるデータを事を教師データとも呼ぶ。
概要
教師あり学習では、未知の確率分布を対象に学習を行う。実応用上は何らかを入力(テンプレート:Mvar)、出力(テンプレート:Mvar)とみなせる事が多く、例えばテンプレート:Mvarはテンプレート:Mvarに未知の関数テンプレート:Mvarを施した値テンプレート:Mathに小さなノイズが載ったものである。アルゴリズムには、に従うテンプレート:Mvarとテンプレート:Mvarの組が訓練データとして与えられる。アルゴリズムが解くべきタスクは訓練データに属していない(かもしれない)データテンプレート:Mvarに対し、条件付き確率分布ないしそこから決まる値(たとえばの期待値)をよく近似することである[1]。近似の精度は事前に定められた損失関数という関数を使って評価する。したがって損失関数の値の期待値を小さくする事が、教師あり機械学習の目標であると言える。
機械学習の定義に沿って言えば、教師あり機械学習は以下のような機械学習であるといえる:
| タスク | 経験 | 性能指標 |
|---|---|---|
| ないしそこから決まる値をよく近似する事 | 訓練データ | 損失関数の期待値 |
アルゴリズム
教師あり学習では事前知識であるから、未知のテンプレート:Mvarに対応するテンプレート:Mvarの分布を当てる事が求められる。このため、アルゴリズムが未知のテンプレート:Mvarから(ないしそこから決まる値)を求める操作を汎化もしくは推論(inference)と呼ぶ。タスクによっては「予測」「判断」「認識」等と呼ばれる事もある。
アルゴリズムは未知のデータテンプレート:Mvarからテンプレート:Mvarに対応するテンプレート:Mvarの分布の情報を推測する必要があるが、この推論の為に事前知識として与えられる訓練データにはテンプレート:Mvarから推論しなければならないテンプレート:Mvarが「解答」としてついている。
訓練フェーズと汎化フェーズ
多くの教師あり機械学習のモデルでは、実際の汎化を行う前に訓練もしくは学習と呼ばれる作業が発生し、機械学習のモデルは「訓練アルゴリズム」と「汎化アルゴリズム」のペアとして捉える事ができる。訓練アルゴリズムは訓練データを入力として受け取り、パラメータと呼ばれる値テンプレート:Mvarを出力する。パラメータは直観的には訓練データから有用な情報を引き出した「学習結果」であり、汎化の際にはこの「学習結果」であるテンプレート:Mvarを使って汎化を行う。すなわち、汎化アルゴリズムは入力テンプレート:Mvarの他にパラメータテンプレート:Mvarをも入力として受け取り、(ないしそこから決まる値)を求める。
変数の名称
教師あり機械学習において、変数テンプレート:Mvarを説明変数(explanation variable)、テンプレート:Mvarを目的変数、目標変数(target variable)、もしくは標的(target)と呼ぶ[2]。これらは別の名称で呼ばれる事も多く、テンプレート:Mvarを予測変数(predictor)、テンプレート:Mvarを応答変数(response variable)と呼んだり[3]、テンプレート:Mvarを独立変数(independent variable)、テンプレート:Mvarを従属変数(dependent variable)と呼んだりする事もある[3]。またタスクによってはこれら以外の名称で呼ばれる事もある。
タスク
教師あり学習に属する代表的なタスクとして回帰と分類がある。教師あり学習において、目的変数テンプレート:Mvarが量的変数である場合を回帰(regression)、有限集合に値を取るカテゴリ型変数のである場合を分類(classification)もしくは判別と呼ぶ。[3][4]
典型的な訓練データ(例題)はベクトル(問題) とラベル(回答)の組として、 のように与えられる。ここで、は 番目のデータを表し、 は0または1の2値を取るのラベルで、 はベクトルを表す。
典型的な訓練データは分類問題では が離散値を、回帰問題では実数値を取る。
これらのデータに何らかの基準でもっとも合う関数関係 を求める「学習」によって求められることで、未知のデータ にに対して、予言 を得ることができる。を分類問題であれば分類器、回帰問題であれば回帰曲線などと称する。
回帰
回帰の目標は入力テンプレート:Mvarが与えられたとき、に関する情報を予想する事である。典型的には
のようにテンプレート:Mvarが未知の関数テンプレート:Mvarの像テンプレート:Mathにランダムなノイズテンプレート:Mvarを加えたデータであるケースにおいて、入力テンプレート:Mvarからテンプレート:Mvarの可能な限り正確な予想値を出力する事が求められる。なお回帰で扱う目的変数テンプレート:Mvarは連続量であり、典型的には実数を複数並べた数値ベクトルである。
他の教師あり機械学習アルゴリズムと同様、回帰アルゴリズムはに従って選ばれた訓練データの集合をとして受け取る事ができ、これらの訓練データをヒントにして入力テンプレート:Mvarに対応するテンプレート:Mvarの予想値
を出力する。予想の正確さは損失関数によって測られる。回帰では損失関数としては自乗誤差損失
を用いる事が多い。
回帰の目標は、汎化誤差(予測誤差、予測損失とも)
を小さく抑える事である。ここでは汎化アルゴリズムの出力であり、テンプレート:Mathは期待値を表す。
分類
分類タスクでは、事前に定められた有限個のクラスが定められていて、各クラスには、「ネコ」、「イヌ」などのクラスラベル(もしくは単にラベル)と呼ばれるクラス名が割り振られている。分類タスクの目的は与えられた入力テンプレート:Mvarがのいずれに属するかを当てる事である。
分類タスクを解くアルゴリズムには大まかに「決定論的アプローチ」と「確率論的アプローチ」の2種類があり[5]、前者は分類タスクでは入力テンプレート:Mvarが与えられたとき、テンプレート:Mvarが属すると思われるクラスラベルを出力するというものであり、損失関数としては典型的には0-1損失
を使う[6]。
一方、後者はクラスラベルを直接出力するのではなく、確信度(confidence score)を出力するというものである。ここではテンプレート:Mvarがテンプレート:Mvar番目のクラスに属しているとどの程度確信しているかを表す尺度であり、とを満たす。
確信度を出力させる分類タスクでは、訓練データのテンプレート:Mvarも確信度と整合性が取れるように符号化する。すなわち、テンプレート:Mvarがテンプレート:Mvar番目のクラスに属している場合、とする。ここでテンプレート:Mvarはテンプレート:Mvar番目の成分が1でそれ以外の成分が0のベクトルである(このように1つの成分だけが1でそれ以外は0となるベクトルをone-hotベクトルとい、one-hotベクトルによりデータを表現する事をone-hot表現[7] という)。損失関数としては典型的には交差エントロピー
を使う[6]。
回帰と分類の関係性
確信度を使った分類タスクに対するアルゴリズムを設計する典型的な手法は、回帰タスクのアルゴリズムを流用するというものである。すなわちクラスをone-hotベクトルで符号化した訓練データを使って回帰タスクのアルゴリズムを訓練し、訓練結果のアルゴリズムを分類タスクに利用するという手法である。ただし、回帰タスク出力は、分類タスクの出力である確信度と違い、とという条件を満たさないという問題が起こる。そこで一旦ソフトマックス変換
をかける事でこの問題を解決する。
逆に確信度を使った分類タスクを回帰タスクに流用する事もでき、この場合は上と同様の理由でソフトマックス変換の逆変換をかける必要がある。
バイアスと分散のトレードオフ
テンプレート:Main 回帰では、入力テンプレート:Mvarに対応するテンプレート:Mvarの予測値を出力する事を求められ、はテンプレート:Mvarの期待値に近いことが望ましく、しかものばらつきは小さい方が望ましい。しかし下記に示すようにこの2つの要件はトレードオフの関係にある[8]:
テンプレート:Math proof上では回帰の場合について述べたが、確信度を出力する分類でも同様である。
ベイズ規則
テンプレート:Mvar、テンプレート:Mathをそれぞれ回帰や分類といった教師あり学習のタスクに対する損失関数、データ分布とし、関数テンプレート:Mvarに関する予測損失をと書き表す。このとき、予測損失の下限 を損失関数テンプレート:Mvarのもとでのベイズ誤差(Bayes error)と呼び、下限を達成するテンプレート:Mvarをベイズ規則(Bayes rule)という[9]。ここでは可測関数全体の集合における下限である。
ベイズ規則は理論上の最良の予測関数であるが、実際には確率分布テンプレート:Mathが未知なので、テンプレート:Mathに関する予測損失を計算できず、ベイズ規則を求める事ができない。このため教師あり学習では既知のデータから可能な限りベイズ規則に近い値を出力するアルゴリズムを探索する事が求められる。
回帰
自乗損失を損失関数として選んだ場合、次の定理が成り立つ[10]:テンプレート:Math theorem テンプレート:Math proof 関数を回帰関数と呼ぶ事もある[10]。
分類
テンプレート:節stub (確信度ではなくクラスを直接出力するタイプの)分類タスクにおいて、0-1損失関するベイズ規則は以下のようになる:
半教師あり学習
半教師あり学習の一種は部分のデータがラベルを付き、部分のデータがラベルを付かないこと。他の状況は、学習の目標はデータのラベルよりも多い場合。例えば、画像のボックスのラベルだけで、分割の役割を果たすこと。[11]
注釈
出典
参考文献
- テンプレート:Cite book
- テンプレート:Cite web同書原著のweb版
- テンプレート:Cite book
- テンプレート:Cite web:上述の書籍の英語版公式サイト。無料pdfあり。
- テンプレート:Cite book
- テンプレート:Cite book