tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

「統計的学習の基礎」第2章を読んだ - その1

第2章は教師あり学習の概要。予測と決定理論を区別して理解する。

TDOO: コードの追加

2.1 教師あり学習

教師あり学習とは事前に計測あるいは決まった値である入力を用いて、出力の値を予測することである。

  • 入出力には分野固有の呼び方があることがある。
    • 入力の別名: 予測変数predictor、独立変数independent variable、特徴feature
    • 出力の別名: 応答変数response variable、従属変数dependent variable

2.2 変数の種類と用語

  • 変数の分類

    • 量的変数: 大小関係が連続に定義できる。
    • 質的変数: 分類だけが定義されている。
    • 順序付きカテゴリ型変数: {大、中、小}など。カテゴリの順序に意味はあるがその差は等しいとは限らない。
  • 予測問題は出力の変数の種類によって違う名称があるがどちらも関数の近似と見なすことが出来る。

    • 量的変数: 回帰regression
    • 質的変数: 分類classification
      • 虹の色7色とすると量的変数か質的変数かどちらになる?
    • 順序付きカテゴリ型変数: ?

目標変数とは質的変数を{0, 1}あるいは{1, -1}などと数値化したもの。3つ以上のカテゴリーがある場合はダミー変数というK次元の{0, 1}の2値ベクトルなどで表現したもの。$n$個の変数は$n-1$個のダミー変数で表される(たとえばA、B、Cの3カテゴリがあるとき、A = {1, 0}、B = {0, 1}、C = {0, 0})。学習に際して入力変数と出力変数をまとめたものを訓練データという。一般的にはダミー変数は解析の都合に合わせて導入する変数のことを言う。

2.3 最小2乗法と最近傍法

出力変数を1次元、入力変数を$p$次元の場合、Xと$\hat{Y}$の直積空間$(X, \hat{Y})$は$p+1$次元。

長所 短所
最小2乗法 決定境界が滑らか、分散が小さい 境界が線型であるという仮定に依存、バイアスが大きい
最近傍法 複雑な境界にも対応、バイアスが小さい 境界が不安定、分散が大きい

最小二乗法は全てのデータを気にする線型な手法の代表、kNNは近傍のデータしか気にしないという非線形な手法の代表なのでこの本で取り扱うモデルの概要の説明として取り上げられたと考えられる。

?ここでのバイアス、分散とは?

最小2乗法

  • 回帰問題として

データがある超平面からの距離が正規分布になるような誤差で散らばっているとするモデルが良いと考えるとき、線型モデル$\hat{Y} = X^{T}\hat{\beta}$に対して訓練データを当てはめ、残差2乗和RSSが最小になるように$\beta$を決定する方法を最小2乗法という。$X$はNxp行列。Xは列ベクトル$(1, X_{1s}, X_{2s}, \cdots, X_{ns})^{T}$を並べたもの。←出典不明?

推定されるパラメータはXがp個のデータからなるとしてp+2個の変数。そのうち$\hat{Y}$以外の変数分p+1個の自由度がある。

$\hat{\beta}$は$\mathop{\rm arg~min}\limits_{\beta}(RS S(\beta))$で定められる。つまり$\sum_{i=1}^{N} (y_{i} - \hat{y}_{i})^{2} = \sum_{i=1}^{N} (y_{i} - f(x_{i}, \beta))^{2}$を最小にすることによって求まる。

RSSを行列表示して偏微分したものを正規方程式といい、さらに$\beta$について解くと、 $$ \hat{\beta} = (X^{T}X)^{-1}X^{T}y $$

http://d.hatena.ne.jp/matsuou1/20110418/1303144024

  • 分類問題として

出力を{0, 1}として数値化した目標変数に対して、線型モデル$x^{T}\beta$が0.5より大きいか小さいかで分類する。この時線型モデル$x^{T}\beta = 0.5$は決定境界と呼ばれる。




最近傍法(KNN)

$p+1$次元の空間中の任意の点から最も近いk個の点によって$\hat{Y} = \dfrac{1}{k}\displaystyle\sum_{x_{i} \in N_{k}(x_{i})} y_{i}$として回帰する方法を最近傍法という。距離としてはユークリッド距離を用いることが多い。最近傍法を分割の方法として利用するとき、k=1のkNNはボロノイ分割になっている。最近傍法の有効パラメータ数はN/kで計算されることが知られていて、kが大きいほど訓練データの影響を受けにくい。

# kNNを実装してみる
library("MASS") # 学習データと訓練データを作成するのに使う
library("class") # 分類アルゴリズム入りパッケージ

http://d.hatena.ne.jp/tyokyNN/20100103/1262512428 http://d.hatena.ne.jp/teramonagi/20140914/1410671003 https://www.google.co.jp/search?q=library+classification&oq=library+class&aqs=chrome.0.0j69i57j0l4.2239j0j7&sourceid=chrome&es_sm=122&ie=UTF-8#q=knn+class&safe=off&tbs=lr:lang_1ja&lr=lang_ja http://final-blue.blogspot.jp/2013/02/k.html http://final-blue.blogspot.jp/2013/02/k-r.html http://room6933.com/blog/2011/11/08/r_knn_2/

より発展的な方法

最小2乗法、最近傍法から発展的な手法についてまとめられている。まだあまり意味が分からない。

  • カーネル平滑化: 重みの概念の導入(最近傍法は0or1)
  • 距離尺度を特徴づけるカーネルに修正?: 変数ごとに重要度を区別する
  • 局所重み付け最小2乗法: 局所領域を線型モデルで表現(最近傍法は定数モデル)
  • 入力変数の基底展開
  • 射影追跡法、ニューラルネットワーク: 非線形変換+線型モデル

2.4 統計的決定理論

損失関数(loss function)

  • 連続変数の場合

入力に対して出力を生成する統計的なモデル$\text{Pr}(X, Y)$を想定し、統計的入力Xに対して出力Yを予測する関数f(X)を求めたい。このf(X)を理論的に考察するのに、予測に対する罰則を損失関数$L_{2}=E(Y, f(X))$を導入する。($L_{1}=E|Y-f(X)|$)

期待予測誤差(EPE)は2乗誤差損失$(Y-f(X))^{2}$の期待値で定義される。

 
\begin{align}
EPE(f) &= &E(Y-f(X))^{2}\\\\
       &= &\int [y-f(X)]^{2}Pr(dx, dy)\\\\
       &= &E\_{X}E\_{Y|X}([Y-f(X)]^{2}|X)
\end{align}

EPEをそれぞれのXについて条件付けできることが分かったので、xについて最適化すると、

 
f(x) = \mathop{\rm arg~min}\limits\_{c} E\_{Y|X}([Y-c]^{2}|X=x)

損失関数に2乗損失誤差を採用したので、$f(x) = E(Y|X=x)$と計算される(これを回帰関数という)。

回帰関数を求めるのに、

  • k最近傍法では$f(x)=\text{Ave}(y_{i}|x_{i}\in N_{k}(x))$を利用している。(?これは標本データの平均を用いる点、近傍を利用する点の2通りの意味で近似されている。)
    これに対して緩やかな正則条件(p.19時点で未定義)で、$k/N\to 0, N,k\to\infty$とすれば$\hat{f}(x)\to E(Y|X=x)$となることは証明されているので近似モデルとして有効である。データ量が少なく他のモデルが仮定できる場合はそちらを利用できること、k最近傍法で利用する近傍領域は高次元では大きくなりすぎることに注意が必要。
  • 線形回帰では$y\sim x^{T}\beta$をEPEに代入して$\beta$について解くと、$\beta=[E(XX^{T})]^{-1}E(XY)$となる。
    最小二乗法の解$\hat{\beta} = (X^{T}X)^{-1}X^{T}y$はこれを訓練データの値で置き換えたものといえる。
  • 高次元では、非現実的な仮定であるがそれぞれの次元(変数)ごとの影響の和で全体が表されるという加法的モデル$f(X)=\sum_{j=1}^{p}f_{j}(X_{j})$が利用されることがある。

最近傍法でL2損失の代わりにL1損失を利用すると$\hat{f}(x)=\text{median}(Y|X=x)$となる。これは導関数が不連続なためL2が使われることのほうが多い。

  • カテゴリカル変数の場合

カテゴリ型変数Gを出力する関数について、$K=\#G(\text{あるいは}\text{card}(G)$個のクラスタが存在するときに$\hat{G}$を予測することを考える。損失関数はカテゴリ$\mathcal{G}_{k}$を$\mathcal{G}_{l}$と誤分類した時の損失を$L_{kl}$として行列Lで表される。特に誤分類した時の罰則を1、正しく分類した時の罰則を0としたものを0/1損失関数と呼ぶ。

 
\begin{align}
EPE &= &E[L(G, \hat{G}(X))]\\\\
    &= &E\_{X}\sum\_{k=1}^{K}L(\mathcal{G}\_{k}, \hat{G}(X))Pr(\mathcal{G}\_{k}|X)
\end{align}

より、 \hat{G}(X) = \mathop{\rm arg~min}\limits_{g \in \mathcal{G}} L(\mathcal{G}_{k}, \hat{G}(X))Pr(\mathcal{G}_{k}|X=x)と入力Xの各点ごとに最小化する。
(0/1損失関数では \hat{G}(x) = \mathop{\rm argmin}\limits_{g \in \mathcal{G}}[1-Pr(g|X=x)]、 \hat{G}(X) = \mathcal{G}_{k} ~\text{if}~ Pr(\mathcal{G}_{k}|X=x) = max_{g \in \mathcal{G}}Pr(g|X=x)。)

$Pr(G|X)$を用いるのでベイズ分類器と呼ばれ、この分類器の誤分類率をベイズ誤り率と呼ぶ。

  • k最近傍法: 連続の場合と同じ
  • 線形回帰モデル: ???2カテゴリの場合を例に考えると$\hat{f}_{x}$が非負になる場合があるので不適切。???