教師あり学習(きょうしありがくしゅう, 英: Supervised learning)とは、機械学習の手法の一つである。
既知の「問題」xiに対する「解答」yiを「教師」が教えてくれるという方法であり、「生徒」であるアルゴリズムが未知の「問題」xに対応する「解答」yを推論する事から名付けられたものである。そのような訓練に用いるデータを事を教師データとも呼ぶ。
教師あり学習では、未知の確率分布
を対象に学習を行う。実応用上は何らかを入力(x)、出力(y)とみなせる事が多く、例えばyはxに未知の関数Fを施した値F(x)に小さなノイズが載ったものである。アルゴリズムには、
に従うxとyの組
が訓練データとして与えられる。アルゴリズムが解くべきタスクは訓練データに属していない(かもしれない)データxに対し、条件付き確率分布
ないしそこから決まる値(たとえば
の期待値)をよく近似することである[1]。近似の精度は事前に定められた損失関数という関数を使って評価する。したがって損失関数の値の期待値を小さくする事が、教師あり機械学習の目標であると言える。
機械学習の定義に沿って言えば、教師あり機械学習は以下のような機械学習であるといえる:
タスク
|
経験
|
性能指標
|
ないしそこから決まる値をよく近似する事
|
訓練データ
|
損失関数の期待値
|
アルゴリズム[編集]
教師あり学習では事前知識である
から、未知のxに対応するyの分布
を当てる事が求められる。このため、アルゴリズムが未知のxから
(ないしそこから決まる値)を求める操作を汎化もしくは推論(inference)と呼ぶ。タスクによっては「予測」「判断」「認識」等と呼ばれる事もある。
アルゴリズムは未知のデータxからxに対応するyの分布の情報を推測する必要があるが、この推論の為に事前知識として与えられる訓練データにはxiから推論しなければならないyiが「解答」としてついている。
訓練フェーズと汎化フェーズ[編集]
多くの教師あり機械学習のモデルでは、実際の汎化を行う前に訓練もしくは学習と呼ばれる作業が発生し、機械学習のモデルは「訓練アルゴリズム」と「汎化アルゴリズム」のペアとして捉える事ができる。訓練アルゴリズムは訓練データを入力として受け取り、パラメータと呼ばれる値θを出力する。パラメータは直観的には訓練データから有用な情報を引き出した「学習結果」であり、汎化の際にはこの「学習結果」であるθを使って汎化を行う。すなわち、汎化アルゴリズムは入力xの他にパラメータθをも入力として受け取り、
(ないしそこから決まる値)を求める。
変数の名称[編集]
教師あり機械学習において、変数xを説明変数(explanation variable)、yを目的変数、目標変数(target variable)、もしくは標的(target)と呼ぶ[2]。これらは別の名称で呼ばれる事も多く、xを予測変数(predictor)、yを応答変数(response variable)と呼んだり[3]、xを独立変数(independent variable)、yを従属変数(dependent variable)と呼んだりする事もある[3]。またタスクによってはこれら以外の名称で呼ばれる事もある。
タスク[編集]
教師あり学習に属する代表的なタスクとして回帰と分類がある。教師あり学習において、目的変数yが量的変数である場合を回帰(regression)、有限集合に値を取るカテゴリ型変数のである場合を分類(classification)もしくは判別と呼ぶ。[3][4]
典型的な訓練データ(例題)はベクトル(問題)
とラベル(回答)
の組として、
のように与えられる。ここで、
は
番目のデータを表し、
は0または1の2値を取るのラベルで、
はベクトルを表す。
典型的な訓練データは分類問題では
が離散値を、回帰問題では実数値を取る。
これらのデータに何らかの基準でもっとも合う関数関係
を求める「学習」によって求められることで、未知のデータ
にに対して、予言
を得ることができる。
を分類問題であれば分類器、回帰問題であれば回帰曲線などと称する。
回帰の目標は入力xが与えられたとき、
に関する情報を予想する事である。典型的には
![{\displaystyle \mathbf {y} =F(\mathbf {x} )+\mathbf {\varepsilon } }](https://wikimedia.org/api/rest_v1/media/math/render/svg/c6f0242a60487f7f3262aed98570caac24c232a2)
のようにyが未知の関数Fの像F(x)にランダムなノイズεを加えたデータであるケースにおいて、入力xからyの可能な限り正確な予想値
を出力する事が求められる。なお回帰で扱う目的変数yは連続量であり、典型的には実数を複数並べた数値ベクトルである。
他の教師あり機械学習アルゴリズムと同様、回帰アルゴリズムは
に従って選ばれた訓練データの集合
をとして受け取る事ができ、これらの訓練データをヒントにして入力xに対応するyの予想値
![{\displaystyle {\hat {\mathbf {y} }}={\hat {F}}_{D}(\mathbf {x} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f714c761cdd45267d304b2c43994b2e21eba67d5)
を出力する。予想の正確さは損失関数
によって測られる。回帰では損失関数
としては自乗誤差損失
![{\displaystyle L({\hat {\mathbf {y} }},\mathbf {y} )=||{\hat {\mathbf {y} }}-\mathbf {y} ||^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/01e6faf728f7d1918566fcb0a083d6e251ac9472)
を用いる事が多い。
回帰の目標は、汎化誤差(予測誤差、予測損失とも)
![{\displaystyle E[L({\hat {\mathbf {y} }}(\mathbf {x} ),\mathbf {y} )]=\iint L({\hat {\mathbf {y} }}(\mathbf {x} ),\mathbf {y} )p(\mathbf {x} ,\mathbf {y} )\mathrm {d} \mathbf {x} \mathrm {d} \mathbf {y} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/7252ed4f0dc435e707b59c1100e5b47f2b0ea244)
を小さく抑える事である。ここで
は汎化アルゴリズムの出力であり、E[・]は期待値を表す。
分類タスクでは、事前に定められた有限個のクラスが定められていて、各クラスには、「ネコ」、「イヌ」などのクラスラベル(もしくは単にラベル)と呼ばれるクラス名が割り振られている。分類タスクの目的は与えられた入力xがのいずれに属するかを当てる事である。
分類タスクを解くアルゴリズムには大まかに「決定論的アプローチ」と「確率論的アプローチ」の2種類があり[5]、前者は分類タスクでは入力xが与えられたとき、xが属すると思われるクラスラベルを出力するというものであり、損失関数としては典型的には0-1損失
![{\displaystyle L({\hat {y}},y)={\begin{cases}1&{\text{if }}{\hat {y}}\neq y\\0&{\text{otherwise}}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/40c62bc9bee92afb57935201d19de38e4d8757ae)
を使う[6]。
一方、後者はクラスラベルを直接出力するのではなく、確信度(confidence score)
を出力するというものである。ここで
はxがj番目のクラスに属しているとどの程度確信しているかを表す尺度であり、
と
を満たす。
確信度を出力させる分類タスクでは、訓練データ
のyiも確信度と整合性が取れるように符号化する。すなわち、xiがj番目のクラスに属している場合、
とする。ここでejはj番目の成分が1でそれ以外の成分が0のベクトルである(このように1つの成分だけが1でそれ以外は0となるベクトルをone-hotベクトルとい、one-hotベクトルによりデータを表現する事をone-hot表現[7] という)。損失関数としては典型的には交差エントロピー
![{\displaystyle L({\hat {\mathbf {y} }},\mathbf {y} )=-\sum _{k}y_{k}\log {\widehat {y_{k}}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7d8c6679c52093dad3a22792b18e4356bdc96982)
を使う[6]。
回帰と分類の関係性[編集]
確信度を使った分類タスクに対するアルゴリズムを設計する典型的な手法は、回帰タスクのアルゴリズムを流用するというものである。すなわちクラスをone-hotベクトルで符号化した訓練データ
を使って回帰タスクのアルゴリズムを訓練し、訓練結果のアルゴリズムを分類タスクに利用するという手法である。ただし、回帰タスク出力
は、分類タスクの出力である確信度と違い、
と
という条件を満たさないという問題が起こる。そこで一旦ソフトマックス変換
![{\displaystyle \mathrm {softmax} ~:~\mathbb {R} ^{k}\to [0,1]^{k},(u_{1},\ldots ,u_{k})\mapsto {1 \over \sum _{j=1}^{k}e^{u_{j}}}(e^{u_{1}},\ldots ,e^{u_{k}})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/12a80d83cce8422dcd189884c973a38181ee6d93)
をかける事でこの問題を解決する。
逆に確信度を使った分類タスクを回帰タスクに流用する事もでき、この場合は上と同様の理由でソフトマックス変換の逆変換をかける必要がある。
バイアスと分散のトレードオフ[編集]
回帰では、入力xに対応するyの予測値
を出力する事を求められ、
はyの期待値に近いことが望ましく、しかも
のばらつきは小さい方が望ましい。しかし下記に示すようにこの2つの要件はトレードオフの関係にある[8]:
定理 (バイアスと分散のトレードオフ) ― p(x,y)を
上の確率分布とし、Dを
上の何らかの確率分布に従って選ばれた訓練データの集合とし[注 1]、
を回帰アルゴリズムとし、Dによってこの回帰アルゴリズムを訓練して得られた関数を
とし、誤差関数を自乗誤差
![{\displaystyle L({\hat {\mathbf {y} }},\mathbf {y} )=||{\hat {\mathbf {y} }}-\mathbf {y} ||^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/01e6faf728f7d1918566fcb0a083d6e251ac9472)
により定義し、さらに
![{\displaystyle (\mathbf {x} ,\mathbf {y} )\sim p}](https://wikimedia.org/api/rest_v1/media/math/render/svg/58489b81ab08b5d24e50a77d33f58aec33ba9633)
を
Dとは独立に選び、
![{\displaystyle {\bar {\mathbf {y} }}(\mathbf {x} )=E_{\mathbf {y} \sim p|_{\mathbf {x} }}[\mathbf {y} |\mathbf {x} ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b3aac0cbe09a355fcb68e78049cd9b941aa1742a)
![{\displaystyle {\bar {F}}(\mathbf {x} )=E_{D}[{\hat {F}}_{D}(\mathbf {x} )]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6609ef277864609490482f4fc0de7345ca8346e6)
とする。
このとき、予測誤差の訓練データ集合Dに関する期待値(期待予測誤差[9])
![{\displaystyle E_{D}[E_{(\mathbf {x} ,\mathbf {y} )\sim p}[L({\hat {F}}_{D}(\mathbf {x} ),\mathbf {y} )]=E_{(\mathbf {x} ,\mathbf {y} )\sim p,D}[||{\hat {F}}_{D}(\mathbf {x} )-\mathbf {y} ||^{2}]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4616d80896ba6c3838f8c67a8e6054a11c3cbd13)
は以下を満たす:
![{\displaystyle E_{(\mathbf {x} ,\mathbf {y} )\sim p,D}[||{\hat {F}}_{D}(\mathbf {x} )-\mathbf {y} ||^{2}]={\mathsf {Var}}({\hat {F}})+{\mathsf {Bias}}^{2}({\hat {F}})+{\mathsf {Noise}}(p)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f64a1f0bb461c1ee5fa5f6d7f36fb4c72b91aa96)
ここで、
![{\displaystyle {\mathsf {Var}}({\hat {F}})=E_{\mathbf {x} \sim p|_{\mathbf {x} },D}(||{\hat {F}}_{D}(\mathbf {x} )-{\bar {F}}(\mathbf {x} )||^{2})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cc64e2ca2d3a15dedc9211639db68eb606ed7b12)
![{\displaystyle {\mathsf {Bias}}^{2}({\hat {F}})=E_{\mathbf {x} \sim p|_{\mathbf {x} }}(||{\bar {F}}(\mathbf {x} )-{\bar {\mathbf {y} }}(\mathbf {x} )||^{2})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/865e6c1494a2918abdcae8e078c0d3685d70292c)
![{\displaystyle {\mathsf {Noise}}({\hat {F}})=E_{(\mathbf {x} ,\mathbf {y} )\sim p}(||{\bar {\mathbf {y} }}(\mathbf {x} )-\mathbf {y} ||^{2})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1a1d91f50bb3d5db6475f5c1556684a2086d41b3)
証明
![{\displaystyle {\begin{aligned}&{1 \over 2}(E_{(\mathbf {x} ,\mathbf {y} )\sim p,D}[||{\hat {F}}_{D}(\mathbf {x} )-\mathbf {y} ||^{2}]-{\mathsf {Var}}({\hat {F}})-{\mathsf {Bias}}^{2}({\hat {F}})-{\mathsf {Noise}}(p))\\&={1 \over 2}E_{(\mathbf {x} ,\mathbf {y} )\sim p,D}[||{\hat {F}}_{D}(\mathbf {x} )-\mathbf {y} ||^{2}-||{\hat {F}}_{D}(\mathbf {x} )-{\bar {F}}(\mathbf {x} )||^{2}-||{\bar {F}}(\mathbf {x} )-{\bar {\mathbf {y} }}(\mathbf {x} )||^{2}-||{\bar {\mathbf {y} }}(\mathbf {x} )-\mathbf {y} ||^{2}]\\&=E_{(\mathbf {x} ,\mathbf {y} )\sim p,D}[-{\hat {F}}_{D}(\mathbf {x} )\cdot \mathbf {y} +{\hat {F}}_{D}(\mathbf {x} )\cdot {\bar {F}}(\mathbf {x} )+{\bar {F}}(\mathbf {x} )\cdot {\bar {\mathbf {y} }}(\mathbf {x} )+{\bar {\mathbf {y} }}(\mathbf {x} )\cdot \mathbf {y} -||{\bar {F}}(\mathbf {x} )||^{2}-||{\bar {\mathbf {y} }}(\mathbf {x} )||^{2}]=(1)\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b12b30e2eb94b59e3b734184ac0335a0bb7a82de)
ここで
![{\displaystyle {\begin{aligned}&E_{(\mathbf {x} ,\mathbf {y} )\sim p,D}[-{\hat {F}}_{D}(\mathbf {x} )\cdot \mathbf {y} +{\hat {F}}_{D}(\mathbf {x} )\cdot {\bar {F}}(\mathbf {x} )]\\&=-E_{(\mathbf {x} ,\mathbf {y} )\sim p}[E_{D}[{\hat {F}}_{D}(\mathbf {x} )]\cdot \mathbf {y} +E_{D}[{\hat {F}}_{D}(\mathbf {x} )]\cdot {\bar {F}}(\mathbf {x} )\\&=E_{(\mathbf {x} ,\mathbf {y} )\sim p}[-{\bar {F}}(\mathbf {x} )\cdot \mathbf {y} +||{\bar {F}}(\mathbf {x} )||^{2}]\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/42bec7228cc0a0c50050bca657fa55a5653f961f)
なので、
![{\displaystyle {\begin{aligned}(1)&=E_{(\mathbf {x} ,\mathbf {y} )\sim p}[-{\bar {F}}(\mathbf {x} )\cdot \mathbf {y} +{\bar {F}}(\mathbf {x} )\cdot {\bar {\mathbf {y} }}(\mathbf {x} )+{\bar {\mathbf {y} }}(\mathbf {x} )\cdot \mathbf {y} -||{\bar {\mathbf {y} }}(\mathbf {x} )||^{2}]\\&=E_{(\mathbf {x} ,\mathbf {y} )\sim p}[({\bar {F}}(\mathbf {x} )-{\bar {\mathbf {y} }}(\mathbf {x} ))({\bar {\mathbf {y} }}(\mathbf {x} )-\mathbf {y} )]\\&=E_{\mathbf {x} }[({\bar {F}}(\mathbf {x} )-{\bar {\mathbf {y} }}(\mathbf {x} ))({\bar {\mathbf {y} }}(\mathbf {x} )-E_{\mathbf {y} \sim p|_{\mathbf {x} }}[\mathbf {y} ])]\\&=0\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d5dae5659aaa3146d55ffae0900764bc7474bbbd)
上では回帰の場合について述べたが、確信度を出力する分類でも同様である。
ベイズ規則[編集]
L、p(x,y)をそれぞれ回帰や分類といった教師あり学習のタスクに対する損失関数、データ分布とし、関数Fに関する予測損失を
と書き表す。このとき、予測損失の下限
![{\displaystyle {\underset {F}{\mathrm {inf} }}R_{L}(F)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/364a8e2c3d7d337554614eeb01f591f5dcc392f0)
を損失関数
Lのもとでの
ベイズ誤差(
Bayes error)と呼び、下限を達成する
Fを
ベイズ規則(
Bayes rule)という
[10]。ここで
![{\displaystyle {\underset {F}{\mathrm {inf} }}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5fcffc8b7909e2f84c6e684d1e67b4c4605b47ea)
は
可測関数全体の集合における
下限である。
ベイズ規則は理論上の最良の予測関数であるが、実際には確率分布p(x,y)が未知なので、p(x,y)に関する予測損失
を計算できず、ベイズ規則を求める事ができない。このため教師あり学習では既知のデータ
から可能な限りベイズ規則に近い値を出力するアルゴリズムを探索する事が求められる。
自乗損失を損失関数として選んだ場合、次の定理が成り立つ[11]:
定理 (自乗損失に関する回帰のベイズ規則) ― p(x,y)を
上の確率分布とし、
![{\displaystyle L({\hat {\mathbf {y} }},\mathbf {y} )=||{\hat {\mathbf {y} }}-\mathbf {y} ||^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/01e6faf728f7d1918566fcb0a083d6e251ac9472)
とする。このとき、汎化誤差
![{\displaystyle R_{L}(F)=E_{(x,y)\sim p}[L(F(x),y)]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b87904ec8ace160e8bce762c648a89f28d79e215)
を最小にする
![{\displaystyle F(\mathbf {x} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0774265d2ef34bedcc0fd41464b73c42decfdbe0)
は、
![{\displaystyle F(\mathbf {x} )=E[\mathbf {y} |\mathbf {x} ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9480c162bbf28af5d8eed23753dd3939a9edcac4)
である。ここで
Eは
p(x,y)から定まる条件付き確率分布
![{\displaystyle p(\mathbf {y} \mid \mathbf {x} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/da18448a262966b85a2b0b0d574e11c6858b97d7)
からランダムに
yを選んだときの期待値である。
証明
![{\displaystyle E[L(F(\mathbf {x} ),\mathbf {y} )]=\iint ||F(\mathbf {x} )-\mathbf {y} ||^{2}p(\mathbf {x} ,\mathbf {y} )\mathrm {d} \mathbf {x} \mathrm {d} \mathbf {y} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/e02b4d2f7dff7642e2e34046ca53efcb1ba691ce)
![{\displaystyle =\int \left(\int ||F(\mathbf {x} )-\mathbf {y} ||^{2}p(\mathbf {y} \mid \mathbf {x} )\mathrm {d} \mathbf {y} \right)p(\mathbf {x} )\mathrm {d} \mathbf {x} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/d8401fffa0cfbdfea0a7a6561a30622b96add09c)
を最小にするには、各
xに対し、
![{\displaystyle S=\int ||F(\mathbf {x} )-\mathbf {y} ||^{2}p(\mathbf {y} \mid \mathbf {x} )\mathrm {d} \mathbf {y} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/86a67fcadecc35b2ab9fc14ea66720df9abdb281)
を最小にすればよい。
![{\displaystyle {\begin{aligned}S&=||F(\mathbf {x} )||^{2}\int p(\mathbf {y} \mid \mathbf {x} )\mathrm {d} \mathbf {y} -2F(\mathbf {x} )\cdot \int \mathbf {y} p(\mathbf {y} \mid \mathbf {x} )\mathrm {d} \mathbf {y} +\int ||\mathbf {y} ||^{2}p(\mathbf {y} \mid \mathbf {x} )\mathrm {d} \mathbf {y} \\&=||F(\mathbf {x} )||^{2}-2F(\mathbf {x} )\cdot E[\mathbf {y} \mid \mathbf {x} ]+\int ||\mathbf {y} ||^{2}p(\mathbf {y} \mid \mathbf {x} )\mathrm {d} \mathbf {y} \\&=||F(\mathbf {x} )-E[\mathbf {y} \mid \mathbf {x} ]||^{2}-||E[\mathbf {y} \mid \mathbf {x} ]||^{2}+\int ||\mathbf {y} ||^{2}p(\mathbf {y} \mid \mathbf {x} )\mathrm {d} \mathbf {y} \end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1cabc449142e3a252715457df873b67472e2cac0)
より
Sが最小になるのは、
![{\displaystyle F(\mathbf {x} )=E[\mathbf {y} \mid \mathbf {x} ]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c4c4041866e07de04e9702a20912c6a24f1b67f1)
の場合である。
関数
を回帰関数と呼ぶ事もある[11]。
![[icon]](//upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Wiki_letter_w_cropped.svg/20px-Wiki_letter_w_cropped.svg.png) | この節の 加筆が望まれています。 (2021年1月) |
(確信度ではなくクラスを直接出力するタイプの)分類タスクにおいて、0-1損失関するベイズ規則は以下のようになる:
半教師あり学習[編集]
半教師あり学習の一種は部分のデータがラベルを付き、部分のデータがラベルを付かないこと。他の状況は、学習の目標はデータのラベルよりも多い場合。例えば、画像のボックスのラベルだけで、分割の役割を果たすこと。[12]
- ^ 典型的には、p(x,y)に従って独立にDの各データを選ぶが、Dをどのような確率分布から選んだかによらず、定理は証明できる。
参考文献[編集]
- Ian Goodfellow, Yoshua Bengio, Aaron Courville 翻訳:黒滝紘生, 河野慎, 味曽野雅史, 保住純, 野中尚輝, 冨山翔司, 角田貴大, 監訳:岩澤有祐, 鈴木雅大, 中山浩太郎, 松尾豊訳 (2018/8/27). 深層学習(kindle版). ドワンゴ. ASIN B07GQV1X76
- Hastie, Trevor、Tibshirani, Robert、Friedman, Jerome『統計的学習の基礎 データマイニング・推論・予測』杉山将、井手剛、神嶌敏弘、栗田多喜夫、前田英作、井尻善久、岩田具治、金森敬文、兼村厚範、烏山昌幸、河原吉伸、木村昭悟、小西嘉典、酒井智弥、鈴木大慈、竹内一郎、玉木徹、出口大輔、冨岡亮太、波部斉、前田新一、持橋大地、山田誠 翻訳、共立出版、2014年6月25日。ISBN 978-4320123625。
- 瀧雅人『これならわかる深層学習入門』講談社〈KS情報科学専門書 機械学習スタートアップシリーズ〉、2017年10月21日。ISBN 978-4061538283。
- 金森敬文『統計的学習理論』講談社〈KS情報科学専門書 機械学習スタートアップシリーズ〉、2015年8月8日。ISBN 978-4061529052。
関連項目[編集]