はじめに,記号の定義は以下の通りとする.
| 表記 | 内容 |
|---|---|
| $p$ | 入力の次元数 |
| $j$ | $(=1,\cdots,p)$:特徴量を表す添字 |
| $X_j$ | 特徴量(確率変数) |
| $X_0$ | $=1$:ダミー変数 |
| $X$ | $=(X_0,X_1,\cdots,X_p)^T$:特徴量(確率変数)のベクトル |
| $Y$ | 目標変数(確率変数) |
| $N$ | 観測データ数 |
| $i$ | $(=1,\cdots,N)$:データを表す添字 |
| $x_{i,j}$ | 特徴量の観測値 |
| $x_i$ | $=(x_{i,0},x_{i,1},\cdots,x_{i,p})^T$:$i$番目の特徴量の観測値のベクトル |
| $y_i$ | 目標変数の観測値 |
| ${\bf x}_j$ | $=(x_{0,j},x_{1,j},\cdots,x_{N,j})$:特徴量$j$の観測値のベクトル |
| ${\bf X}$ | $=(x_{i,j})$:特徴量の観測値の行列 |
| ${\bf y}$ | 目標変数の観測値のベクトル |
| $\beta_j$ | 特徴量の重み |
| $\beta_0$ | バイアス項 |
| $\beta$ | $=(\beta_0,\beta_1,\cdots,\beta_p)^T$:重みのベクトル |
| $\mathcal{T}$ | 訓練データ集合 |
期待汎化誤差
$$Err = E[L(Y,\hat{f}(X))]$$
をどのように推定すればよいか.
交差確認では,データを訓練(Train)データと検証(Validation)データに分割し,訓練データでモデルのフィッティングを行い,検証データでモデルの評価を行う.
$K$分割交差確認では,データをほぼ等しい大きさの$K$個の部分集合に分割し,$K-1$個のデータでモデルのフィッティングを行い,残りの1個のデータで予測誤差を計算する.これを$K$回繰り返し,予測誤差を$K$個推定する.
$k:\{1,\cdots,N \} \rightarrow \{1,\cdots,K \}$とし,$N$個のデータそれぞれを$K$個の部分集合のいずれかに対応させる(通常はランダム). $$CV(\hat{f})=\frac{1}{N} \sum_{i=1}^{N}L(y_i,\hat{f}^{- k (i)}(x_i)) $$
全体集合$\mathcal{D}$とする.$\mathcal{D}$を$K$個に分割する.ただし,$k=1,\cdots,K$である.部分集合$\mathcal{D}_k$とする.$\mathcal{D}_k$が検証データのときの訓練データ$\mathcal{T}_k$とする.$\mathcal{T}_k = D \backslash D_k$である.$|\mathcal{T}_k| \approx (K-1)N/K$となる.$|\mathcal{T}_k|$は自然数である.$k$番目のデータ$\mathcal{D}_k$を除いた$\mathcal{T}_k$で推定したモデル$\hat{f}^{- k (i)}$とする. \begin{eqnarray} &=&\frac{1}{K}\sum_{k=1}^K \frac{K}{N}\sum_{i \in \mathcal{D}_k}L(y_i,\hat{f}^{- k (i)}(x_i)) \\ &=&\frac{1}{N}\sum_{k=1}^K \sum_{i \in \mathcal{D}_k}L(y_i,\hat{f}^{- k (i)}(x_i)) \end{eqnarray}
チューニングの必要なハイパーパラメータ$\alpha$を持つモデルを考える(例として,リッジ回帰など).
例:回帰の場合の汎化誤差 \begin{eqnarray} E[L(Y,\hat{f}(X))]&=&E[(X^T \hat{\beta}-Y)^2] \\ &=&E[(X^T ({\bf X}^T {\bf X})^{-1}{\bf X}^T {\bf y}-Y)^2] \end{eqnarray}