統計的学習の基礎輪読会資料 (7章後半 7.9〜)
TRANSCRIPT
統計的学習の基礎7章後半(7.9~)
@y__mattu
自己紹介
• @y__mattu
•松村優哉
•大学生
•計量経済学、ベイズ統計、因果推論、マーケティング
• SAS, R, Python
•近況: 春から慶應
•このスライドは後で公開します
2016/11/8 カステラ本輪読会 2
目次
• 7.9 バプニック=チェルボネンキス次元
• 7.10 交差確認
• 7.11 ブートストラップ(まだ)
• 7.12 条件付きテスト誤差か期待テスト誤差か(まだ)
2016/11/8 カステラ本輪読会 3
7.9 バプニック=チェルボネンキス次元
•訓練標本誤差の推定に複雑度𝑑の特定が必要
復習: 訓練標本内誤差(7.4節)
2016/11/8 カステラ本輪読会 4
(7.18)
7.9 バプニック=チェルボネンキス次元
•一般的な複雑度はバプニック=チェルボネンキス次元(Vapnik-Chervonenkis dimension; VC次元)で与えられる
•最善度の上界になる
•復習: 最善度(7.4章)
2016/11/8 カステラ本輪読会 5
(7.19)
(7.17)
7.9 バプニック=チェルボネンキス次元
• VC次元の定義
2016/11/8 カステラ本輪読会 6
クラス{𝒇(𝒙, 𝜶)}のVC次元は、 {𝒇(𝒙, 𝜶)}の元によってあらゆる組み合わせに細分(shatter)できるような、(ある配置の)点の最大数として定義される
どういうことか?
•「各点にどのような二値ラベルを割り当てても、その関数クラスに含まれる関数によって完全にそれらを細分できる」
•平面上の線形指示関数のVC次元は3
2016/11/8 カステラ本輪読会 7
図7.6
どういうことか?
•点が4つ以上だと、曲線じゃないと分けられないラベリングが発生
2016/11/8 カステラ本輪読会 8
VC次元
•一般に、𝑝次元の線形指示関数のVC次元は𝑝 + 1
•関数族sin(𝛼𝑥)のVC次元は∞
2016/11/8 カステラ本輪読会 9
VC次元の応用
•指示関数の議論を実数値関数に拡張
→回帰へ応用可能
•実数値関数のクラス 𝑔 𝑥, 𝛼 のVC次元は指示関数のクラス𝐼 𝑔 𝑥, 𝛼 − 𝛽 > 0 のVC次元
2016/11/8 カステラ本輪読会 10
VC次元の応用
•応用例: ある関数クラスを用いるときの訓練誤差の最善度に関する結果を証明
• VC次元ℎの関数クラス{𝑓(𝑥, 𝛼)}で𝑁個の訓練点へ当てはめ
•少なくとも1 − 𝜂の確率で
2016/11/8 カステラ本輪読会 11
(2クラス分類)
(回帰)
(7.46)
VC次元の応用
•このとき
2016/11/8 カステラ本輪読会 12
VC次元の応用
•バプニックの構造的リスク最小化 (Structural Risk Minimanization; SRM) 法
• VC次元を利用したモデル選択法
•性質上SVM(サポートベクトルマシン)への布石?
2016/11/8 カステラ本輪読会 13
7.9.1 例 (7.3.1小節の続き)
•復習: 7.3.1の例
• 20個の予測変数を持つ80個の観測値が、超立方体 0,1 20
内に一様に分布
•ここではモデルサイズの選択をAIC, BIC, SRMで
2016/11/8 カステラ本輪読会 14
7.9.1 例 (7.3.1節の続き)
• 𝛼の意味: KNN→近傍の大きさ, 回帰→部分集合の大きさ
•「最良のモデルに対する選択されたモデルの誤差」を計算して箱ひげ図に
•大きさ80の訓練集合を100集合使用
•大きさ10,000のテスト集合上で誤差を計算
2016/11/8 カステラ本輪読会 15
7.9.1 例 (7.3.1節の続き)
2016/11/8 カステラ本輪読会 16
図7.7
7.10 交差確認
•交差確認 (Cross Validation; CV)
•期待訓練標本外誤差を直接推定
•訓練集合𝜏を固定したときの条件付き誤差𝐸𝑟𝑟𝜏が推定できるのでは?
→できない!!(7.12節)
2016/11/8 カステラ本輪読会 17
(7.15)
7.10.1 𝑲分割交差確認
2016/11/8 カステラ本輪読会 18
• 𝐾 = 5のとき1 2 3 4 5
確認 訓練 訓練 訓練 訓練
訓練 確認 訓練 訓練 訓練
訓練 訓練 確認 訓練 訓練
訓練 訓練 訓練 確認 訓練
訓練 訓練 訓練 訓練 確認
7.10.1 𝑲分割交差確認
2016/11/8 カステラ本輪読会 19
•索引関数𝜅: 1,⋯ , 𝑁 ↦ {1,⋯ , 𝐾}: 𝑖番目の観測値が割り当てられた区画を返す関数
• መ𝑓−𝑘 𝑥 : 𝑘番目の区画を除いたデータで当てはめた関数
•予測誤差(の推定値)は
• 𝐾 = 𝑁のとき、一つ抜き交差確認 (leave-one-out cross-validation; LOOCV)
(7.48)
7.10.1 𝑲分割交差確認
2016/11/8 カステラ本輪読会 20
• 𝑓(𝑥, 𝛼)が与えられたとき、 መ𝑓−𝑘 𝑥, 𝛼 を考え、予測誤差の(の推定値)
(7.49)
𝑲はいくつにすべきか?
• 𝐾 = 𝑁なら交差確認推定量は近似的に真の(期待)予測誤差の不偏推定量
•しかし分散が大(∵訓練データが似ている)
•計算負荷も大きい
• 𝐾が小さいと?
•分散は小さいがバイアスが大きくなるかも
2016/11/8 カステラ本輪読会 21
𝑲はいくつにすべきか?
2016/11/8 カステラ本輪読会 22
図7.8
𝑲はいくつにすべきか?
•訓練曲線の傾きが大きければK=5-10だとバイアス大
•このバイアスが問題になるかは解析の目的による
• LOOCVでは、分散が大
•折衷案として𝐾 = 5 or 10
•一方、@hoxo_m氏は…
2016/11/8 カステラ本輪読会 23
𝑲はいくつにすべきか?
2016/11/8 カステラ本輪読会 24
図7.3 右下 図7.9 予測誤差10-CV
期待予測誤差バイアスの二乗分散
一般化交差確認(generalized cross-validation; GCV)
• 2乗誤差損失の下で線形モデルに対するLOOCVの使いやすい近似
•線形当てはめ法(7.6節)
• 𝐒は入力𝑥𝑖には依存するが𝑦𝑖にはよらない𝑁 × 𝑁行列
2016/11/8 カステラ本輪読会 25
(7.50)
GCVによる近似
•多くの線形当てはめ法に対して以下が成り立つ
• 𝑆𝑖𝑖は𝑆の対角成分
2016/11/8 カステラ本輪読会 26
(7.51)
GCVによる近似
• GCVによる近似は以下で与えられる
• 𝐒のトレースが個々の𝑆𝑖𝑖より簡単に計算できるか?
できる→GCVに計算上の利点あり
2016/11/8 カステラ本輪読会 27
(7.52)
7.10.2 交差確認を実行する正しい方法と間違った方法
•以下のような解析を考える1. 予測変数を減らす。クラスラベルとかなり強い(1変数の)相
関を持つような「良い」予測変数の部分集合を見つける
2. これを用いて多変量分類器を作る
3. 交差確認で未知の調整パラメータを推定し、最終的なモデルの予測誤差を推定
2016/11/8 カステラ本輪読会 28
7.10.2 交差確認を実行する正しい方法と間違った方法
•解析の設定
•𝑁 = 50
• 𝑝 = 5000の量的予測変数はクラスラベルと独立
•任意の分類器の真のテスト誤差率は50%
2016/11/8 カステラ本輪読会 29
7.10.2 交差確認を実行する正しい方法と間違った方法
•この方法で解析すると、平均CV誤差率は3%
•この解析の問題点は1段階目で全ての標本に基づいて変数を減らしていること
1. 予測変数を減らす。クラスラベルとかなり強い(1変数の)相関を持つような「良い」予測変数の部分集合を見つける
2. これを用いて多変量分類器を作る
3. 交差確認で未知の調整パラメータを推定し、最終的なモデルの予測誤差を推定
2016/11/8 カステラ本輪読会 30
何がいけないのか
•変数が予測にとって不当に好都合
•全ての標本を見て変数が選択された後で標本を抜いてはいけない
•なぜ?
→完全な独立なテスト集合に対して分追記を作らなければならないから
2016/11/8 カステラ本輪読会 31
どうすればいいのか
•正しい解析の手続き1. 交差確認のために標本をランダムに𝐾個のグループに分ける
2. 𝑘 = 1,2,⋯ , 𝐾に対してa. 𝑘番目のグループ以外のすべての標本を用いて、「良い」予測変数
の集合を見つける
b. この予測変数だけで𝑘番目のグループ以外のすべての標本を用いて多変量分類器を作る
c. 得られた分類器を使って、 𝑘番目のグループの標本に対するクラスラベルを予測
2016/11/8 カステラ本輪読会 32
方法の違いによる誤差の違い
2016/11/8 カステラ本輪読会 33
図7.10 選択された予測変数とクラスラベルの相関
7.10.3 交差確認は本当に有効か
•問題設定
•𝑁 = 20
•クラスラベルと独立な𝑝 = 500の量的予測変数
•任意の分類器の真のテスト誤差率は50%
• 1変数の分類器を考える
2016/11/8 カステラ本輪読会 34
7.10.3 交差確認は本当に有効か
•以下の議論は正しいか?
2016/11/8 カステラ本輪読会 35
全ての集合に対し当てはめを行うと、データをとてもよく分ける予測変数を一つ見つけることになる。もし5分割交差確認を行うなら、同じ予測変数は4/5と1/5のサイズに分けたどのデータも良く分割する。したがって、その交差確認誤差は小さくなるだろう(50%よりずっと小さい)。よって、CVでは誤差の正確な推定値は得られない。
検証
2016/11/8 カステラ本輪読会 36
図7.11
検証
•左上: 500個のモデルに対して誤りの数。誤差が最も小さい6この予測変数に色
•右上: 訓練標本とテスト標本の誤差分類数の関係
•左下: 左上の青に対応する436番目のデータ。色付きは1/5のほうのデータ
•右下: CVの訓練誤差
•青い点の予測変数を用いたモデルの正解率は50%
→無作為の場合と変わらない。
2016/11/8 カステラ本輪読会 37
7.11 ブートストラップ法
•復元抽出で訓練集合Zから標本集合をランダムに取り出す
• B回繰り返しB個のブートストラップ標本の集合を生成
•ブートストラップ標本にモデルを当てはめ、挙動をみる
※「予測誤差」だけでなく、様々な値を計算してよい
例: 分散(𝑆(𝐙)の分散のモンテカルロ推定値と等価)
2016/11/8 カステラ本輪読会 38
(7.53)
7.11 ブートストラップ法
2016/11/8 カステラ本輪読会 39
予測誤差への応用
2016/11/8 カステラ本輪読会 40
• 𝑏番目のBS標本にモデルを当てはめた時の予測誤差
• BS標本は訓練集合とみなせる
•元の訓練集合と共通の観測値がある
→ は良い推定値にならない
(7.54)
例
問題設定
2クラス分類
真の誤差率: 0.5
𝑖番目の観測値が𝑏に含まれる確率
2016/11/8 カステラ本輪読会 41
(7.55)
例
• = 0.5 × 0.632 = 0.184
2016/11/8 カステラ本輪読会 42
解決法: 一つ抜きブートストラップ
•その観測値を含まないBS標本のみから予測値を得る
•過学習の問題は解決するが、バイアスの問題は解決されない(cf. 7.10節)
2016/11/8 カステラ本輪読会 43
(7.56)
0.632推定量
•無情報誤差率𝛾を用いてこれを改善
•無情報誤差率・・・入力とクラスラベルが独立なときの予測の誤差率
2016/11/8 カステラ本輪読会 44
(7.57)
(7.58)
7.11.1 例
2016/11/8 カステラ本輪読会 45
7.12 条件付きテスト誤差か期待テスト誤差か
2016/11/8 カステラ本輪読会 46
7.12 条件付きテスト誤差か期待テスト誤差か
2016/11/8 カステラ本輪読会 47