教師あり学習

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Machine learning bar 教師あり学習(きょうしありがくしゅう, テンプレート:Lang-en-short)とは、機械学習の手法の一つである。

既知の「問題」テンプレート:Mvarに対する「解答」テンプレート:Mvarを「教師」が教えてくれるという方法であり、「生徒」であるアルゴリズムが未知の「問題」テンプレート:Mvarに対応する「解答」テンプレート:Mvarを推論する事から名付けられたものである。そのような訓練に用いるデータを事を教師データとも呼ぶ。

概要

教師あり学習では、未知の確率分布p(𝐱,𝐲)を対象に学習を行う。実応用上は何らかを入力(テンプレート:Mvar)、出力(テンプレート:Mvar)とみなせる事が多く、例えばテンプレート:Mvarテンプレート:Mvarに未知の関数テンプレート:Mvarを施した値テンプレート:Mathに小さなノイズが載ったものである。アルゴリズムには、p(𝐱,𝐲)に従うテンプレート:Mvarテンプレート:Mvarの組(𝐱1,𝐲1),,(𝐱n,𝐲n)が訓練データとして与えられる。アルゴリズムが解くべきタスクは訓練データに属していない(かもしれない)データテンプレート:Mvarに対し、条件付き確率分布p(𝐲𝐱)ないしそこから決まる値(たとえばp(𝐲𝐱)の期待値)をよく近似することである[1]。近似の精度は事前に定められた損失関数という関数を使って評価する。したがって損失関数の値の期待値を小さくする事が、教師あり機械学習の目標であると言える。

機械学習の定義に沿って言えば、教師あり機械学習は以下のような機械学習であるといえる:

タスク 経験 性能指標
p(𝐲𝐱)ないしそこから決まる値をよく近似する事 訓練データ(𝐱1,𝐲1),,(𝐱n,𝐲n) 損失関数の期待値

アルゴリズム

教師あり学習では事前知識である(𝐱1,𝐲1),,(𝐱n,𝐲n)から、未知のテンプレート:Mvarに対応するテンプレート:Mvarの分布p(𝐲𝐱)を当てる事が求められる。このため、アルゴリズムが未知のテンプレート:Mvarからp(𝐲𝐱)(ないしそこから決まる値)を求める操作を汎化もしくは推論inference)と呼ぶ。タスクによっては「予測」「判断」「認識」等と呼ばれる事もある。

アルゴリズムは未知のデータテンプレート:Mvarからテンプレート:Mvarに対応するテンプレート:Mvarの分布の情報を推測する必要があるが、この推論の為に事前知識として与えられる訓練データにはテンプレート:Mvarから推論しなければならないテンプレート:Mvarが「解答」としてついている。

訓練フェーズと汎化フェーズ

多くの教師あり機械学習のモデルでは、実際の汎化を行う前に訓練もしくは学習と呼ばれる作業が発生し、機械学習のモデルは「訓練アルゴリズム」と「汎化アルゴリズム」のペアとして捉える事ができる。訓練アルゴリズムは訓練データを入力として受け取り、パラメータと呼ばれる値テンプレート:Mvarを出力する。パラメータは直観的には訓練データから有用な情報を引き出した「学習結果」であり、汎化の際にはこの「学習結果」であるテンプレート:Mvarを使って汎化を行う。すなわち、汎化アルゴリズムは入力テンプレート:Mvarの他にパラメータテンプレート:Mvarをも入力として受け取り、p(𝐲𝐱)(ないしそこから決まる値)を求める。

変数の名称

教師あり機械学習において、変数テンプレート: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]

典型的な訓練データ(例題)はベクトル(問題)𝐱i とラベル(回答)yiの組として、(𝐱1,y1),(𝐱2,y2),... のように与えられる。ここで、(𝐱i,yi)i 番目のデータを表し、yi は0または1の2値を取るのラベルで、𝐱i はベクトルを表す。

典型的な訓練データは分類問題ではyi が離散値を、回帰問題では実数値を取る。

これらのデータに何らかの基準でもっとも合う関数関係 y=f(x) を求める「学習」によって求められることで、未知のデータ 𝐱 にに対して、予言 y=f(𝐱) を得ることができる。y=f(x)を分類問題であれば分類器、回帰問題であれば回帰曲線などと称する。

回帰

回帰の目標は入力テンプレート:Mvarが与えられたとき、p(𝐲𝐱)に関する情報を予想する事である。典型的には 𝐲=F(𝐱)+ε

のようにテンプレート:Mvarが未知の関数テンプレート:Mvarの像テンプレート:Mathにランダムなノイズテンプレート:Mvarを加えたデータであるケースにおいて、入力テンプレート:Mvarからテンプレート:Mvarの可能な限り正確な予想値𝐲^を出力する事が求められる。なお回帰で扱う目的変数テンプレート:Mvarは連続量であり、典型的には実数を複数並べた数値ベクトルである。

他の教師あり機械学習アルゴリズムと同様、回帰アルゴリズムはp(𝐱,𝐲)に従って選ばれた訓練データの集合D={(𝐱1,𝐲1),,(𝐱n,𝐲n)}をとして受け取る事ができ、これらの訓練データをヒントにして入力テンプレート:Mvarに対応するテンプレート:Mvarの予想値 𝐲^=F^D(𝐱)

を出力する。予想の正確さは損失関数L(𝐲^,𝐲)によって測られる。回帰では損失関数L(𝐲^,𝐲)としては自乗誤差損失 L(𝐲^,𝐲)=||𝐲^𝐲||2

を用いる事が多い。

回帰の目標は、汎化誤差予測誤差予測損失とも) E[L(𝐲^(𝐱),𝐲)]=L(𝐲^(𝐱),𝐲)p(𝐱,𝐲)d𝐱d𝐲

を小さく抑える事である。ここで𝐲^(𝐱)=M(𝐱,θ)は汎化アルゴリズムの出力であり、テンプレート:Mathは期待値を表す。

分類

分類タスクでは、事前に定められた有限個のクラスが定められていて、各クラスには、「ネコ」、「イヌ」などのクラスラベル(もしくは単にラベル)と呼ばれるクラス名が割り振られている。分類タスクの目的は与えられた入力テンプレート:Mvarがのいずれに属するかを当てる事である。

分類タスクを解くアルゴリズムには大まかに「決定論的アプローチ」と「確率論的アプローチ」の2種類があり[5]、前者は分類タスクでは入力テンプレート:Mvarが与えられたとき、テンプレート:Mvarが属すると思われるクラスラベルを出力するというものであり、損失関数としては典型的には0-1損失 L(y^,y)={1if y^y0otherwise

を使う[6]

一方、後者はクラスラベルを直接出力するのではなく、確信度confidence scorey1^,,yk^を出力するというものである。ここでyj^テンプレート:Mvarテンプレート:Mvar番目のクラスに属しているとどの程度確信しているかを表す尺度であり、0yj^1y1^++yk^=1を満たす。

確信度を出力させる分類タスクでは、訓練データ(𝐱i,𝐲i)テンプレート:Mvarも確信度と整合性が取れるように符号化する。すなわち、テンプレート:Mvarテンプレート:Mvar番目のクラスに属している場合、𝐲i=𝐞jとする。ここでテンプレート:Mvarテンプレート:Mvar番目の成分が1でそれ以外の成分が0のベクトルである(このように1つの成分だけが1でそれ以外は0となるベクトルをone-hotベクトルとい、one-hotベクトルによりデータを表現する事をone-hot表現[7] という)。損失関数としては典型的には交差エントロピー L(𝐲^,𝐲)=kyklogyk^

を使う[6]

回帰と分類の関係性

確信度を使った分類タスクに対するアルゴリズムを設計する典型的な手法は、回帰タスクのアルゴリズムを流用するというものである。すなわちクラスをone-hotベクトルで符号化した訓練データ(𝐱1,𝐲1),,(𝐱n,𝐲n)を使って回帰タスクのアルゴリズムを訓練し、訓練結果のアルゴリズムを分類タスクに利用するという手法である。ただし、回帰タスク出力𝐮^=(u1^,,uk^)は、分類タスクの出力である確信度と違い、0uj^1u1^++uk^=1という条件を満たさないという問題が起こる。そこで一旦ソフトマックス変換 softmax:k[0,1]k,(u1,,uk)1j=1keuj(eu1,,euk)

をかける事でこの問題を解決する。

逆に確信度を使った分類タスクを回帰タスクに流用する事もでき、この場合は上と同様の理由でソフトマックス変換の逆変換をかける必要がある。

バイアスと分散のトレードオフ

テンプレート:Main 回帰では、入力テンプレート:Mvarに対応するテンプレート:Mvarの予測値𝐲^=F^D(𝐱)を出力する事を求められ、𝐲^テンプレート:Mvarの期待値に近いことが望ましく、しかも𝐲^のばらつきは小さい方が望ましい。しかし下記に示すようにこの2つの要件はトレードオフの関係にある[8]

テンプレート:Math theorem

テンプレート:Math proof上では回帰の場合について述べたが、確信度を出力する分類でも同様である。

ベイズ規則

テンプレート:Mvarテンプレート:Mathをそれぞれ回帰や分類といった教師あり学習のタスクに対する損失関数、データ分布とし、関数テンプレート:Mvarに関する予測損失をRL(F)=E(x,y)p[L(F(x),y)]と書き表す。このとき、予測損失の下限 infFRL(F) を損失関数テンプレート:Mvarのもとでのベイズ誤差(Bayes error)と呼び、下限を達成するテンプレート:Mvarベイズ規則(Bayes rule)という[9]。ここでinfF可測関数全体の集合における下限である。

ベイズ規則は理論上の最良の予測関数であるが、実際には確率分布テンプレート:Mathが未知なので、テンプレート:Mathに関する予測損失RL(F)=E(x,y)p[L(F(x),y)]を計算できず、ベイズ規則を求める事ができない。このため教師あり学習では既知のデータ(𝐱1,𝐲1),,(𝐱n,𝐲n)から可能な限りベイズ規則に近い値を出力するアルゴリズムを探索する事が求められる。

回帰

自乗損失を損失関数として選んだ場合、次の定理が成り立つ[10]テンプレート:Math theorem テンプレート:Math proof 関数f(𝐱)=E[𝐲|𝐱]回帰関数と呼ぶ事もある[10]

分類

テンプレート:節stub (確信度ではなくクラスを直接出力するタイプの)分類タスクにおいて、0-1損失関するベイズ規則は以下のようになる:

半教師あり学習

半教師あり学習の一種は部分のデータがラベルを付き、部分のデータがラベルを付かないこと。他の状況は、学習の目標はデータのラベルよりも多い場合。例えば、画像のボックスのラベルだけで、分割の役割を果たすこと。[11]

注釈

テンプレート:Notelist2

出典

テンプレート:Reflist

参考文献

テンプレート:Refbegin


テンプレート:Refend

関連項目

テンプレート:Comp-stub

テンプレート:Normdaten