統計的学習の基礎
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

統計的学習の基礎輪読会資料 (7章後半 7.9〜)