SlideShare a Scribd company logo
はじめてのパターン認識
第2章
「識別規則と学習法の概要」
後半 
2013/7/2 @リクルート
あんた誰?
名前           
伊藤 徹郎 (@tetsuroito)
所属
株式会社ALBERT データ分析部
好きなもの
サッカー、スキー、オレオ!
株式会社ALBERTについて
「分析力をコアとするマーケティングソリューションカンパニー」
ALBERTの事業領域
CRMソリューションの開発・提供
レコメンドエンジンの開発・提供
行動ターゲティング広告システムの
開発・提供
データサイエンティスト、エンジニア大募集中です!
一緒にデータサイエンスしませんか?
では、本題
2.2 汎化能力とは?
2.2 汎化能力とは?
ちょっとおさらい
学習:学習データに対する識別関数の出力値と学習データとの誤差が最小に
   なるように、識別関数のパラメータを調整すること
未知のデータに対しての性能保証はなし!
学習データから動作確認のためにテストデータを除いて試そう!
汎化能力:未知データに対する識別能力
汎化誤差:未知データを識別した時の誤差
学習データとテストデータ
手元にある学習データセットを分割してテストデータセットを作ります。
重さ
透磁率
etc‥
d個の特徴
d次元の特徴ベクトルの分布p
真の誤り率ε(p,p)
重さ
透磁率
etc‥
10,000枚
8,000枚
2,000枚
母集団 学習データセット
テストデータセット
d個の特徴
d次元の特徴ベクトルの分布pL
再代入誤り率ε(pL,pL)
d個の特徴重さ
透磁率
etc‥
d次元の特徴ベクトルの分布pT
用語たち
母集団:先の事例では、全硬貨の集合(事例では10,000枚)
真の分布:母集団のd次元特徴の分布p
バイアス:真の分布とランダムサンプルのズレ (平均値や分散など)
真の誤り率ε(p,p):真の分布pに従う学習データを用いて設計し、真の分布
         pに従うテストデータを用いてテストしたときの誤り率
再代入誤り率:学習データを母集団からサンプルし、テストにも同じデータを
       用いて測定した誤り率
例題だよ
再代入誤り率が大きい場合、
どのような対処法が考えられ
ますか?
ANSWER
学習データに対する誤りが多いので、
識別機の能力が足りません。
何らかの方法で
識別機の性能をあげましょう!
データの主な分割方法
1、ホールドアウト法(holdout法)
2、交差確認法(cross validation法)
3、一つ抜き法(leave-one-out法)
(ジャックナイフ法)
4、ブートストラップ法(bootstrap法)
1、ホールドアウト法
母集団
学習データ
テストデータ
ホールドアウト誤り率
分割の配分はご自由に
★欠点
学習データを増やす→学習精度は向上するが、性能評価がいまいち
検証データを増やす→学習精度が悪くなってしまう
2、交差確認法
手元の各クラスのデータをm個に分割し、m-1個のグループのデータを使って
識別機を学習し、残りの1つで検証を行う方法です。これをm回繰り返し、
それらの誤り率の平均を性能予測値とします。
学習データテスト
学習データテスト
学習データ テスト
m個に分割
m
回
識別率の予測値
全データを検証できるので、
3、一つ抜き法(ジャックナイフ法)
交差確認法において、データの数とグループの数を等しくした場合のこと。
1つを除いたデータすべてのデータで学習し、除いた1つでテストすることを
データ数分繰り返す。
またの名をジャックナイフ法ともいい、重複をしない分、計算効率がいいとか
悪いとか‥
なんかいまいちわからないので、
知ってる人、教えてください
4、ブートストラップ法
再代入誤り率のバイアス補正に用いられる。
データ
#1
データ
#2
データ
#3
‥ データ
#N-1
データ
#N
復元抽出×N回
ブートストラップサンプル
データ
#3
データ
#20
データ
#1
‥ データ
#3
データ
#5
N個
ブートストラップサンプルを最低50は生成し、それらによって得られる
誤認識率の差の平均値でバイアスを推定する!
汎化能力の評価法とモデル選択
学習データでパラメータを調整して、テストデータで誤り率を評価しても
誤りが目標より小さくならないという場面ありますね。
この場合はどうしようもないので、識別関数を変えましょう。
モデル選択
変えると言っても、方法はたくさんあります!
・線形識別関数→非線形識別関数に変える
・多項式のパラメータの数(次数)を変える
etc‥
パラメータの数を変え、テストデータに対する誤り率が最も小さくなる
パラメータを選択する方法をモデル選択と言います
このように‥
具体例:多項式回帰で
あるノイズが乗った多項式から等間隔にサンプルされたデータに多項式近似を
行います。
f(x)=0.5+0.4sin(2πx)+ε=h(x)+ε  N~(ε|0,0.05)
11個の学習データから信号成分h(x)を取り出す!
信号成分h(x)との近似の良さは平均2乗誤差(MSE)で表す
テキストでは、1次、3次、6次、10次多項式で近似している
多項式近似の例
データから大きく外れている(バイアスが大きい)
ノイズに惑わされず信号成分をよく近似
バイアスも小さく、分散も小さい
6次になると、ノイズを追うようになる
10次は完全にノイズを追ってしまう
バイアス・分散トレードオフ
関数が複雑になるほど学習データに対する近似能力は向上する
(学習データに対するバイアス小さいが、分散が大きい)
このように
バイアスを小さくすれば分散が大きくなり、逆に分散を小さく
すれば、バイアスが大きくなる現象をバイアス・分散トレードオフ
という
汎化能力を決める大きな要因となる!
過学習(オーバーフィッティング)
先の事例のように、多項式の次数を大きくすると個々のノイズ成分を追従する
ようになるので、学習誤差が単調に減少します。
このような事象を過学習と言います。
※深堀したい人はぜひPRML上巻1章の多項式フィッティングを読もう!
識別関数の最適選択
多項式の最適次数選択は先ほどの説明の通りです。
同様に、識別関数でも同様に考えることができます。
識別関数y=f(x;w)のf()の形やwの要素数を変化させ、交差確認法やブートスト
ラップ法によって汎化誤差を推定します。
データの分布に統計モデルを仮定する場合
AIC(赤池情報量基準)やBIC(ベイズ情報量基準)、MDL(最小距離基準)
などを使って解析的に汎化誤差を評価し、モデル選択をします。
詳細は自分で調べてね!
章末問題は省略するね
最後に大事なので
もう1回言います
あっ!
データサイエンティスト、エンジニア大募集中です!
一緒にデータサイエンスしませんか?
おわり
ご清聴ありがとうございました!

More Related Content

はじパタ2章