Lec12
モデルの選択と評価
過学習(再掲)
▶ パラメータ数が多いと過学習が起こる
パラメータ数=1 パラメータ数=2
パラメータ数=4 パラメータ数=5
過学習(再掲)
▶ パラメータ数が多いと過学習が起こる
パラメータ数=10 パラメータ数=20
パラメータ数=40 パラメータ数=50
過学習を抑制するためのアプローチ
▶ アプローチ1:特徴選択
▶ 特徴数が少な過ぎる:未学習
▶ 特徴数が多過ぎる :過学習
モデル選択:適切な特徴数を選択する
▶ アプローチ2:正則化
▶ 正則化パラメータが大き過ぎる:未学習
▶ 正則化パラメータが小さ過ぎる:過学習
モデル選択:適切な正則化パラメータを選択する
モデルの選択と評価
▶ 適切なモデル選択をするには適切なモデル評価の基準が必要
▶ 訓練データに対する誤差vs. 真の関数に対する誤差
−3 −2 −1 0 1 2 3
0.00.10.20.30.40.50.6
Model Complexity
Errors on Data / Truth
−3 −2 −1 0 1 2 3
0.00.10.20.30.40.50.6 Error on Data
Error on Truth
▶ 訓練データに対する誤差をモデルの選択や評価には使えない!
学習と理解・予測
母集団
旧データ(訓練) モデル 新データ
学習 予測
理解
旧データと新データ
旧(訓練)データ 新データ
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
x
y
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
True Old Data
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
x
y
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
True New Data
旧データと新データ
旧(訓練)データ 新データ
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
x
y
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
True Old Data Estimated
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
x
y
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
True New Data Estimated
訓練誤差と汎化誤差
▶ 旧(訓練)データに対する予測誤差:
訓練誤差(Training Error)
▶ 新データに対する予測誤差:
汎化誤差(Generalization Error)
特徴選択の場合
▶ 特徴数が少な過ぎる:未学習
▶ 特徴数が多過ぎる :過学習
0 20 40 60 80 100 120
0.00.10.20.30.40.50.6
Number of Selected Features
Training/Generalization Error
0 20 40 60 80 100 120
0.00.10.20.30.40.50.6 Error on Old Data Error on New Data
選択特徴数と訓練誤差・汎化誤差の推移
正則化の場合
▶ 正則化パラメータが大き過ぎる:未学習
▶ 正則化パラメータが小さ過ぎる:過学習
−3 −2 −1 0 1 2 3
0.00.10.20.30.40.50.6
Negative Log of Regularization Parameter
Training/Generalization Error
−3 −2 −1 0 1 2 3
0.00.10.20.30.40.50.6 Error on Old Data Error on New Data
選択特徴数と訓練誤差・汎化誤差の推移
演習問題1
▶ 以下のX とyに対してλ= 1,2の場合のリッジ回帰分析を解き,
それぞれの場合の訓練誤差を比べよ X=[
1 2 ] ,y=[
5 ]
▶ ヒント
X⊤X= [ 1
2
] [ 1 1 ] +λ
[ 1 0 0 1
]
演習問題1の解答
データ分割
▶ 仮想的な新データを得るためデータをランダム分割する
訓練用
評価用
特徴選択の場合(再掲)
▶ 特徴数が少な過ぎる:未学習
▶ 特徴数が多過ぎる :過学習
0 20 40 60 80 100 120
0.00.10.20.30.40.50.6
Number of Selected Features
Training/Generalization Error
0 20 40 60 80 100 120
0.00.10.20.30.40.50.6 Error on Old Data Error on New Data
選択特徴数と訓練誤差・評価誤差の推移
正則化の場合(再掲)
▶ 正則化パラメータが大き過ぎる:未学習
▶ 正則化パラメータが小さ過ぎる:過学習
−3 −2 −1 0 1 2 3
0.00.10.20.30.40.50.6
Negative Log of Regularization Parameter
Training/Generalization Error
−3 −2 −1 0 1 2 3
0.00.10.20.30.40.50.6 Error on Old Data Error on New Data
選択特徴数と訓練誤差・評価誤差の推移
3つの機械学習タスクとデータ
▶ タスク1:モデルの訓練
パラメータ最適化:モデルパラメータwの推定 訓練データ(training data)
▶ タスク2:モデルの選択
複雑さの制御:特徴数kや正則化パラメータλの選択 評価データ(validation data)
▶ タスク3:モデルの評価
汎化性能推定:最終的なモデルの性能推定 テストデータ(test data)
訓練・選択・評価のためのデータ分割
訓練データ
(training data)
テストデータ
(test data) 評価データ
(validation data)
交差確認法( Cross Validation )
学習データ 評価データ
1回目 2回目 3回目 4回目 5回目
5重交差確認法(5-fold cross-validation)
交差確認法の例
交差確認法の例
交差確認法の例
交差確認法の例
交差確認法の例
Leave-one-out Cross-Validation
1回目 2回目
n回目
n – 1 回目
学習データ 評価データ
1つ抜き交差確認法(leave-one-out cross-validation)
Nested Cross-Validation
1: for u= 1, . . . ,10do
2: 全データの1割をテストデータに,残りを訓練&評価データに 3: for t= 1, . . . ,10do
4: 訓練&評価データの1割を評価データに,残りを訓練データに 5: for k= 1, . . . , K do
6: 訓練データを用いてλkでモデルを学習 7: end for
8: 評価データを用いて最適なλを選択 9: end for
10: 最適なλのモデルをテストデータに対して評価 11: end for
演習問題2
▶ 訓練データ{(xi, yi)}ni=1による定数モデル yi=w0+εi
の最小二乗推定は ˆ
w0= arg min
w0∈R(yi−w0)2= 1 n
∑n i=1
yi= ¯y
となる.
▶ 定数モデルの訓練誤差とLOOCV(Leave-One-Out Cross-Validation)誤差を,それ ぞれ
TrainEr :=
∑n i=1
(
yi−arg min
w0∈R
∑n h=1
(yh−w0)2 )
=
∑n i=1
(yi−y)¯2
LoocvEr :=
∑n i=1
yi−arg min
w0∈R
∑n h̸=i
(yh−w0)2
=
∑n i=1
yi− 1 n−1
∑
h̸=i
yh
2
とすると,両者の関係が
LoocvEr = ( n
n−1 )2
TrainEr となることを示せ.
演習問題2の解答
演習問題3
▶ 事例数n >100,特徴数d >50のデータを準備せよ.以下のサイ
トを参考にしてもよい
https://archive.ics.uci.edu/ml/datasets.html
▶ Rのプログラムの解説を参考に,準備したデータをリッジ回帰分 析により分析せよ.
▶ データの概要(数行程度),最適な正則化パラメータ,及び,最適 なモデルの汎化誤差を報告せよ