Posted at

はじめてのパターン認識 2章 -識別規則と学習法の概要-

More than 1 year has passed since last update.


2. 識別規則と学習法の概要



学習データ

ラベルと特徴ベクトルのセット

ex. 色々な100円硬貨の特徴ベクトル(重さ, 透磁率, サイズ, ...)


汎化能力

学習時に与えられた訓練データだけでなく、未知の新たなデータに対する識別能力



2.1 識別規則と学習法の分類

識別規則とその学習法を分類し、それらの概要について紹介する



2.1.1 識別規則の構成法

識別規則は、入力データ$x$からクラス$C_i \in \Omega = { C_1, ... , C_K }$への写像である。

写像の実現方法は


  1. 事後確率による方法: パターン空間に確率分布を仮定し、事後確率が最大のクラスに分類する。ベイズの最大事後確率法が代表例である。

  2. 距離による方法: 入力ベクトル$x$と各クラスの代表ベクトルとの距離を計算し、一番近い代表ベクトルのクラスに分類する。最近傍法が代表例である。

  3. 関数値による方法: 関数$f(x)$の正負、あるいは最大値でクラスを決める。パーセプトロン型学習回路やサポートベクトルマシンがその代表例である。$f(x)$を識別関数という

  4. 決定木による方法: 識別規則の真偽に応じて次の識別規則を順次適用し、決定木の形でクラスを決める。

など



2.1.2 教師付き学習

識別規則は、入力データ(特徴ベクトル)からクラスへの写像を$y = f(x)$という関数を用いて表現する

識別規則の学習は$f$を学習データを用いて決めること

クラスを指定したデータを教師データといい、2クラスの場合は$t \in { -1, +1 }$、クラス数が3以上ある場合は$t = (0, 1, 0, ... , 0)^t$のように表す

N個の学習データを入力データと教師データの対として

$$

(x_i, t_i) \ (i = 1, ... , N)

$$

と表す。学習に用いる全ての対の集合を学習データセットといい、$D_L$と表す。学習に用いなかった性能評価を行うためのデータ対の集合をテストデータセットといい、$D_T$と表す。


2クラス問題の線形識別問題の場合、識別規則は

$$

y = f(x; w) = w_1 x_1 + ... + w_d x_d = w^T x

$$

のように、パラメータ$w$と入力ベクトル$x$の内積を用いて表現され、識別クラスは関数値$y$の正負で決めることにする。学習の目的は入力データが正しいクラスに対応する関数値を出すようにパラメータ$w$を調整することである。$w = F(D_L)$のように学習データセットの関数として$w$を得る方法や、学習データを1つずつ用いて$w$を少しずつ修正していく方法などがある。



2.1.3 教師付き学習と線形回帰


関数近似(回帰)

入力$x$と教師データとして2値ではなく任意の関数値$f(x)$が与えられる場合、関数$f$を近似するように学習が行われる。このような問題を関数近似(回帰)という。特に線形関数で近似する場合は線形回帰とよぶ。


被説明変数(目的変数)

予測したい変数


説明変数

関数の引数として与えられる目的変数を説明する変数



2.1.4 教師なし学習


教師なし学習(自己組織型学習)

教師がいない学習も存在しており、この場合は入力データ間の距離や類似度によって自動的にクラスタリングすることが主目的になる。このような学習は、教師なし学習、あるいは自己組織型学習と呼ばれる。


形質導入学習(半教師あり学習)

最近では、一部のデータのみに教師データをつけて学習を行う形質導入学習という学習法も提案されている。この手法は、教師を一部のデータのみに付与し、そのデータからデータの持つ共通した特徴を手がかりに教師の形質を導入する手法で、コストが低い。



2.2 汎化能力


汎化能力

未知のデータに対する識別能力


汎化誤差

未知のデータに対する識別の誤差



2.2.1 学習データとテストデータの作り方


前提条件


母集団

全てのデータの集合。母集団を分割して学習データセット$D_L$とテストデータセット$D_T$を作成する。


テスト誤差

それぞれのデータセットの特徴ベクトルの分布を$p_L$, $p_T$とし、$D_L$を用いて設計し、$D_T$を用いてテストした際の誤り率を$\varepsilon(p_L, p_T)$と表すことにする


真の分布

母集団を用いた$d$次元特徴の分布を真の分布とよび、$p$で表すことにする



バイアス

$p_L$や$p_T$は真の分布からランダムにサンプルされたもので、各特徴の平均や分散が$p$とおなじになるとは限らない。このズレをバイアスという。


真の誤り率



  • 真の誤り率$\varepsilon(p, p)$は真の分布$p$を用いて設計し、$p$を用いてテストした時の誤り率を表す


再代入誤り率


  • 母集団からサンプリングした同じデータを学習とテストに用いた際の誤り率を$\varepsilon(p_L, p_L)$とし、再代入誤り率と呼ぶ。



分割の代表的な方法

母集団を分割して学習とテストを行う手法の代表的なものとして以下のものがあげられる


  1. ホールドアウト法

  2. 交差確認法

  3. ジャックナイフ法

  4. ブートストラップ法



1 ホールドアウト法

母集団を分割して一方を学習に使い、他方をテストのために置いておき、誤り率の推定に使用する。これによって求められる誤り率をホールドアウト誤り率という。学習精度と性能評価がトレードオフの関係にあるため、手元に大量のデータがない場合は良い性能評価を行うことができない。


2 交差確認法

母集団を$m$個のグループに分割し、$m-1$個のグループを用いて学習を行う。そのあと残りの1つのグループでテストを行う。これを全グループがテストに用いられるよう$m$回繰り返し、その誤り率の平均を性能予測値とする。$i$番目のグループの誤り率を$\varepsilon_{-i}$とすると、誤識別率の予測値は$\varepsilon = \sum _{i=1} ^{m} { \varepsilon{-i} }$と予測される。分割によってグループごとのデータのバイアスがかかる可能性があるので、分割方法を変えて交差確認法を繰り返す必要がある。



3 ジャックナイフ法

交差確認法においてデータ数とグループ数を等しくして行う。組み合わせが1つなので1回だけやればよい。


4 ブートストラップ法

再代入誤り率バイアスを補正するために使用される。総数N個の母集団に対して、N個のデータを用いて設計し、N個のデータでテストすることで再代入誤り率を求め、真の誤り率との差分をとることでバイアスを明らかにする。最低でも50回程度のリサンプリングを繰り返して施行を重ねてバイアスの精度を高めていく。



2.2.2 汎化能力の評価法とモデル選択


モデル選択

学習データによってパラメータ調整を行い、誤り率を評価しても、目標以上の精度が出ない場合は識別関数を変える必要がある。誤り率が最も小さくなるパラメータを選択する方法をモデル選択という。


モデル選択の例


  1. 多項式近似の場合 -> 関数の次数(ex. 1次, 3次, 6次, 10次)

  2. ニューラルネットの場合 -> ユニットの数, 層の数, ...



多項式近似の例

pと学習データセット$D$を決めると

$$

y(x; a) = a_0 + a_1 x + a_2 x^2 + ... + a_p x^p, a = (a_0, a_1, ...)^t

$$

の平均2乗誤差

$$

MSE = \int (y(x; D) - h(x))^2 p(x) dx = E { (y(x; D) - h(x))^2 }

$$

を最小にするようなaは一意に決まる。よって、結果によってはpを選択し直さないといけない。



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

近似した関数は目標関数$h(x)$との誤差の項(バイアス)と訓練データから生まれる誤差の項(分散)に整理できる


バイアス

$h(x)$との誤差

モデル精度の悪さ


分散

訓練データから生まれる誤差

モデル作成の不安定さ(再現性の悪さ)



モデルが単純

性能は良くないが、教師データに対して安定

高バイアス・低バリアンス


モデルが複雑

性能は良いが、教師データに対して不安定(過学習など)

低バイアス・高バリアンス


過学習

訓練誤差は小さくなっているが汎化誤差(テスト誤差)が大きく乖離した状態を過適合/過剰適合/過学習と呼ぶ。