はじパタ11章 後半
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

はじパタ11章 後半

on

  • 1,334 views

 

Statistics

Views

Total Views
1,334
Views on SlideShare
594
Embed Views
740

Actions

Likes
1
Downloads
9
Comments
0

3 Embeds 740

http://blog.gepuro.net 725
http://localhost 10
http://s.deeeki.com 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

はじパタ11章 後半 Presentation Transcript

  • 1. 第14回「はじめてのパターン認識」読 書会 第11章 識別器の組み合わせによる性能強化 後編 @gepuro
  • 2.
  • 3. 11.3 バギング ● 複数の識別器を組み合わせる方法 – 学習データのブートストラップサンプル(復元抽出)を用 いて複数の識別器を学習させ、多数決で決める – それぞれの識別器は弱識別器 ● ランダム識別器よりは高性能 ● 並列処理可能 ● 識別器間の相関が高くなり、性能強化出来ない可 能性あり – ブースティングやランダムフォレストで欠点を補う
  • 4. 11.4 アダブースト ● ブースティング – 弱識別器の学習結果を参考にしながら、次の弱識別器 を学習する
  • 5. 11.4.1 アダブースト学習アルゴリズム ● 2クラス問題の識別器 – 多クラス問題には一対他識別器 ● 弱識別器の学習結果にしたがって学習データに重 みが付く – 誤った学習データ:重み大きく – 正しく識別された学習データ:重み小さく
  • 6. アダブーストのアルゴリズム 1) 重みを (i=1,...,N)に初期化する 2) m=1,...,Mについて以下を繰り返す a) 識別器y_m(x)を重み付き誤差関数が最小になる ように学習する b) 識別器y_m(x)に対する重みα_mを計算する c) 重み を更新する 3) 入力xに対する識別結果をY_M(x)に従って出力す る
  • 7. アダブーストのアルゴリズム 1) 重みを (i=1,...,N)に初期化する 2) m=1,...,Mについて以下を繰り返す a) 識別器y_m(x)を重み付き誤差関数が最小になる ように学習する b) 識別器y_m(x)に対する重みα_mを計算する c) 重み を更新する 3) 入力xに対する識別結果をY_M(x)に従って出力す る 全ての学習データの 重みを同じにする
  • 8. アダブーストのアルゴリズム 1) 重みを (i=1,...,N)に初期化する 2) m=1,...,Mについて以下を繰り返す a) 識別器y_m(x)を重み付き誤差関数が最小になる ように学習する b) 識別器y_m(x)に対する重みα_mを計算する c) 重み を更新する 3) 入力xに対する識別結果をY_M(x)に従って出力す る 弱識別ごとに計算する
  • 9. 1) 重みを (i=1,...,N)に初期化する 2) m=1,...,Mについて以下を繰り返す a) 識別器y_m(x)を重み付き誤差関数が最小になる ように学習する b) 識別器y_m(x)に対する重みα_mを計算する c) 重み を更新する 3) 入力xに対する識別結果をY_M(x)に従って出力す る は、識別関数の出力が教師と一致したら0、一 致しないと1を返す E_mは弱識別器の定義より、E_m<1/2 アダブーストのアルゴリズム
  • 10. アダブーストのアルゴリズム 1) 重みを (i=1,...,N)に初期化する 2) m=1,...,Mについて以下を繰り返す a) 識別器y_m(x)を重み付き誤差関数が最小になる ように学習する b) 識別器y_m(x)に対する重みα_mを計算する c) 重み を更新する 3) 入力xに対する識別結果をY_M(x)に従って出力す る 誤差が小さい程、大きな値を取る。
  • 11. アダブーストのアルゴリズム 1) 重みを (i=1,...,N)に初期化する 2) m=1,...,Mについて以下を繰り返す a) 識別器y_m(x)を重み付き誤差関数が最小になる ように学習する b) 識別器y_m(x)に対する重みα_mを計算する c) 重み を更新する 3) 入力xに対する識別結果をY_M(x)に従って出力す る 正しく分類出来なかった学習データの 重みをexp(α_m)倍する。
  • 12. アダブーストのアルゴリズム 1) 重みを (i=1,...,N)に初期化する 2) m=1,...,Mについて以下を繰り返す a) 識別器y_m(x)を重み付き誤差関数が最小になる ように学習する b) 識別器y_m(x)に対する重みα_mを計算する c) 重み を更新する 3) 入力xに対する識別結果をY_M(x)に従って出力す る 精度が高い識別器の重みを大きくし、精度が低い識 別器の重みを小さくする。 sign(a)はa>0で+1、a=0で0、a<0で-1を出力する
  • 13. 11.5 ランダムフォレスト バギングを改良し、決定木の各非終端ノードにおい て識別に用いる特量をあらかじめ決められた数だけ ランダムに選択する手法 ● 森のサイズによる過学習が生じない
  • 14. 11.5.2 ランダムフォレストによるデータ解析 ● 森のサイズによる誤り率の変化 ● 特徴の重要さに関する情報 ● 学習データ間の近さ
  • 15. 11.5.2 ランダムフォレストによるデータ解析 ● 森のサイズによる誤り率の変化 ○ 個別クラスととOut-Of-Bag誤り率 ■ Out-Of-Bag:ブートストラップサンプリングに使 われなかった学習データが使われていないな い部分森で、その学習データをテストデータに して誤りを評価する ● 特徴の重要さに関する情報 ● 学習データ間の近さ
  • 16. 個別のクラスとOut-Of-Bag誤り率 rf <- randomForest(Species~.,data=iris) plot(rf) Out-Of-Bag setosa virginica versicolor
  • 17. 11.5.2 ランダムフォレストによるデータ解析 ● 森のサイズによる誤り率の変化 ● 特徴の重要さに関する情報 ○ 各特長がノード分割に使われたときの不純度(ジ ニ係数)の減少量を森全体で平均した量 ○ 部分依存グラフ ■ ある特徴の値がクラス識別にどのように寄与し ているかを、他の特徴の寄与を加味したうえで 見る指標 ■ 分析対象の特徴のみをxで置換したベクトルを 用いる ● 学習データ間の近さ
  • 18. ジニ係数の減少量と特徴の重要度 varImpPlot(rf)
  • 19. 部分依存グラフ setosa virginica versicolor :i番目の置換ベクトル :クラスkの得票率 :クラスkの置換された特徴値x に対する部分依存グラフ
  • 20. 部分依存グラフ setosa virginica versicolor もう一つ描いてみた。
  • 21. 部分依存グラフのプロット(Sepal. Length) partialPlot(rf, subset(iris,iris$Species=="setosa"), Sepal.Length, main = "Sepal.Length", xlab = "Sepal.Lengh", ylab = "Partial Dependency", col = "red",xlim=c(4,8),ylim=c(-30,30)) par(new=T) partialPlot(rf, subset(iris,iris$Species=="versicolor"), Sepal.Length, main = "Sepal.Length", xlab = "Sepal.Lengh", ylab = "Partial Dependency", col = "green",xlim=c(4,8),ylim=c(-30,30)) par(new=T) partialPlot(rf, subset(iris,iris$Species=="virginica"), Sepal.Length, main = "Sepal.Length", xlab = "Sepal.Lengh", ylab = "Partial Dependency", col = "blue",xlim=c(4,8),ylim=c(-30,30))
  • 22. 11.5.2 ランダムフォレストによるデータ解析 ● 森のサイズによる誤り率の変化 ● 特徴の重要さに関する情報 ● 学習データ間の近さ ○ 近接グラフ ■ 多次元尺度構成法により2次元空間に写像 ● N×N近接行列 ○ i番目の学習データとj番目の学習データ がOOBで同じ終端ノードに分類される木 があれば、行列のi行j列とj行i列に1を加 える
  • 23. 近接グラフ randomForestパッケージに実装されていない?
  • 24. 性能比較 決定木 バギング アダブースト ランダムフォ レスト 誤り率 0.16 0.053 0.04 0.04 教科書の表11.4 アヤメで0他を用いた性能比較
  • 25. 参考 ● 平井有三、森北出版、はじめてのパターン認識 ● Rと集団学習,http://mjin.doshisha.ac.jp/R/32/32.html ● ランダムフォレストの部分従属プロット (R Advent Calendar 2013),http://d. hatena.ne.jp/langstat/touch/20131228 ● 多次元尺度構成法イントロダクション, http://d.hatena.ne. jp/koh_ta/20110514/1305348816