Created by 2GMon
識別規則は、入力データ${\bf x}$からクラス$C_i \in \Omega = \{ C_1, \cdots , C_K \}$への写像であり、 写像の方法は識別規則によって、関数値の正負・ダミー変数表現・事後確率の最大値・決定木の終端ノードなど様々である
入力データからクラスへの写像$y=f({\bf x})$を決めることが識別規則の学習である
2クラス問題の線形識別関数の場合、識別規則は以下のようにパラメータ${\bf w}$と入力ベクトル${\bf x}$の線形関数を用いて表現される $$y = f({\bf x}; {\bf w}) = w_1 x_1 + \cdots + w_d x_d = {\bf w}^T {\bf x}$$
識別クラスを関数値$y$の正負で決めるとすると、学習の目的は入力データが正しいクラスに対応する関数値を出力するように パラメータ${\bf w}$を調整することである
学習には、入力ベクトルとそのクラスを対にした教師データが必要になる
2クラスの場合は正負に対応した値$t \in \{-1, +1 \}$で表し、3クラス以上の場合はダミー変数表現を用いて ${\bf t} = (0, 1, 0, 0)^T$のように表す
学習に用いられる対、全ての集合$({\bf x_i}, {\bf t_i})\ \ (i = 1, \cdots , N)$を学習データといい、以降では$D_L$で表す
学習に使用しなかった対の集合をテストデータといい、以降では$D_T$で表す
教師入力として2値ではなく、任意の関数値が与えられる場合は、 識別関数は入力${\bf x}$に対して与えられた関数値を出力するように学習され、このような問題を回帰という
識別関数$f({\bf x})$は与えられた関数値を近似できるだけの能力を持つ必要があり、 この能力は識別関数の複雑さに対応する
教師データがない学習もあり、入力データ間の距離や類似度、統計的な性質に基づいてクラスタリングすることが主目的になる
大量のデータに教師データを付与することはコストがかかるので、一部のデータのみ教師データを付与し、 他は教師データなしで学習を行う形質導入学習(transductive learning)とう方法も提案されている
学習データに対する識別関数の出力値と教師データとの誤差が最小になるように、 識別関数のパラメータを調整することが学習の目的だが、未知データに対しても上手く働くという保証はない
学習した識別規則の、未知データに対する識別能力を汎化能力といい、誤差を汎化誤差という
学習データ$D_L$に含まれる特徴ベクトルの$d$次元空間内での分布を$p_L$、 テストデータ$D_T$に含まれる特徴ベクトルの$d$次元空間内での分布を$p_T$と表す
このとき、$D_L$で学習し$D_T$でテストした時の誤り率を$\epsilon (p_L, p_T)$で表すとする
$\epsilon(p, p)$を真の誤り率、$\epsilon(p_L, p_L)$を再代入誤り率という
手元にあるデータを学習用とテスト用に分割する代表的な方法がいくつかある
データを2つに分けて、一方を学習に使い、もう一方をテストに使う
$\epsilon(p_L, p_T)$をholdout errorといい、以下が成り立つ $$ E_{D_L} \{ \epsilon(p_L, p_L) \} \leq \epsilon (p, p) \leq E_{D_T}\{ \epsilon (p_L, p_T) \} $$
学習データを多くするとテストデータが減るので、性能評価の精度が悪くなり、 テストデータを多くすると学習データが減るので、学習の精度が悪くなる
holdoutの欠点を補うためによく使用される
データをそれぞれ$m$個のグループに分割し、$m-1$個のグループを用いて学習、残りのグループでテストを行う。 これを$m$繰り返し、誤り率の平均を性能の推定値とする
すべてのデータを学習とテストに利用するので良い推定ができるが、 分割によって偏りが生じる可能性があるので分割を変えてcross validationを行うとよい
cross validationにおいてデータ数$N$とグループ数$m$を等しくした場合
levave-one-outの場合は、組み合わせが1つなのでcross validationのように分割を変えて繰り返す必要はない
$N$個のデータから$N$回復元抽出を行って作ったブートストラップサンプル$N'$を用いて再代入誤り率のバイアス(真の識別率との差) を推定する
復元抽出を行うため、複数回抽出されるデータや抽出されないデータなどが生じるが、 $N$回の復元抽出で少なくとも一度サンプルされる確率は$p' = 1 - (1 - \frac{1}{N})^N \approx 1 - e^{-1} = 0.632$である
$bias = \epsilon(N', N') - \epsilon(N', N)$とし、50個以上のbiasの平均値をバイアスを推定値とすると、 誤識別率の予測値は以下で与えられる $$\epsilon = \epsilon(N, N) - \overline{bias} $$
識別関数を評価した性能が悪い場合は、線形識別関数から非線形識別関数に変えたり、パラメータの次数を変えたりする
パラメータの次数を変え、テストデータに対する誤り率がもっとも小さくなるパラメータを選択する方法をモデル選択という
近似曲線を$y(x;D)$とすると信号成分$h(x)$との近似の良さは平均2乗誤差(MSE)で評価できる $$MSE=\int (y(x;D) - h(x))^2 p(x) dx = E \{ (y(x;D) - h(x))^2 \}$$
1つのデータセットで近似の良さを評価するのは危険なので、複数のデータセットを用いて、それらの平均で評価する $$MSE_D = E_D \{(y(x;D) - h(x))^2\}$$
ノイズの乗ったサインカーブを1次、3次、6次、10次の多項式で近似することを考える
バイアスと分散の成分は$MSE_D = E_D \{(y(x;D) - h(x))^2\}$から求められる $$(y(x;D) - h(x))^2 = (y(x;D) - E_D \{y(x;D)\} + E_D \{y(x;D)\} - h(x))^2 \\ = (y(x;D) - E_D \{y(x;D)\})^2 + (E_D \{y(x;D)\} - h(x))^2 \\ + 2(y(x;D) - E_D \{y(x;D)\})(E_D \{y(x;D)\} - h(x)) $$
$E_D\{(y(x;D) - E_D \{ y(x;D) \})\} = E_D\{y(x;D)\} - E_D\{y(x;D)\} = 0$なので $$E_D\{(y(x;D) - h(x))^2\} = (E_D\{y(x;D) - h(x)\})^2 + E_D\{(y(x;D) - E_D\{y(x;D)\})^2\}$$
$(E_D\{y(x;D) - h(x)\})^2$がバイアス項で$E_D\{(y(x;D) - E_D\{y(x;D)\})^2\}$が分散項
学習データの誤差が減少し、テストデータの誤差が増加するような減少を過学習という
汎化能力が高いモデルはバイアスと分散がバランスしているといえる
識別関数を$y=f({\bf x};{\bf w})$とした場合、$f()$の形や${\bf w}$の次元数が識別関数の複雑さを決定するので、 これらを変えながら汎化誤差を推定する
データの分布に統計モデルをを仮定した場合は、AIC・BIC・MDLなどで解析的に汎化誤差を評価できる