Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ランダムフォレスト

16,789 views

Published on

2015年11月12日に第5回バイオメトリクスと認識・認証シンポジウム(SBRA2015)でお話しさせていただいたときのスライドです.

Published in: Engineering

ランダムフォレスト

  1. 1. ランダムフォレスト 2015年11月12日 近畿大学理工学部情報学科 波部 斉(Hitoshi HABE) Email: habe@kindai.ac.jp Twitter: @habhit SBRA 20152015/11/12 1
  2. 2. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 3. ランダムフォレストの応用 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 2
  3. 3. 本日の構成 1. ランダムフォレストの特徴 1. ツールとしての機械学習 2. ランダムフォレストとは 2. ランダムフォレストの基礎 3. ランダムフォレストの応用 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 3
  4. 4. ツールとしての機械学習 • 歴史的な流れ – ニューラルネット(NN) • 顔検出 [Rowley-Kanade PAMI 1998] • 深層学習 – ブースティング • 顔検出 [Viola-Jones IJCV 2003] – サポートベクトルマシン(SVM) • HOG 人物検出 [Dalal CVPR 2005] 2015/11/12 SBRA 2015 4
  5. 5. コンピュータビジョンでの機械学習 • 取り扱う情報の単位 – 候補全体を一つの単位として対象かどう かを判定する • HOG 人物検出 [Dalal CVPR 2005] – 局所領域での判定結果を統合して対象か どうかを判定する • Implicit Shape Model [Leibe ECCVWS 2004] • Deformable Part Model [Felzenswalb CVPR 2008 ] – より複雑な事象の理解へ • データセット – サイズ大,時空間情報 • 出力 – クラスラベルのみから多種情報 2015/11/12 SBRA 2015 5
  6. 6. ランダムフォレストとは? • アンサンブル学習 – 複数の決定木(弱識別器)の結 果をあわせて識別・回帰・クラ スタリングを行う • バギング – 入力学習データからのランダム サンプリングを繰り返して弱識 別器を構成 2015/11/12 SBRA 2015 6 ランダムフォレスト • メリット – シンプル・わかりやすい・精度も良い・テストが高 速
  7. 7. 三人よれば文殊の知恵? • 三人の多数決をチームの答えにする 2015/11/12 7 よくデキるが得意分野が 重なる三人組 それほどデキないが 得意分野が異なる三人組 ふつうの三人組の方が良い成績! SBRA 2015 多数決 多数決 正解 人物A 人物B 人物C 人物D 人物E 人物F 不正解 70%正解 80%正解
  8. 8. アンサンブル学習 • 𝐵𝐵 個の弱識別器それぞれの出力が分散 𝜎𝜎 の分 布にしたがう 確率変数 𝑋𝑋𝑖𝑖 であるとする • 変数の間の相関係数が 𝜌𝜌 であるとするとその 平均の分散は 2015/11/12 SBRA 2015 8 𝜌𝜌𝜎𝜎2 + 1 − 𝜌𝜌 𝐵𝐵 𝜎𝜎2 個々の識別器(人物)の能力が特別優れていなくても 微妙に違うものを統合すれば結果がよくなる 𝜌𝜌𝜎𝜎2 分散を小さく 相関を小さく 弱識別器の 個数大
  9. 9. 決定木のアンサンブル • 決定木の特徴 – 深さを大きくすれば学習データによく適合できる → バイアス小 • 決定木のアンサンブル – 相関の小さい決定木を集めることができれば分散 を小さくできる → 学習にランダムな要素を導入 2015/11/12 SBRA 2015 9 相関小
  10. 10. ブートストラップサンプリング • 学習データ全体から個々の決定木の学習に利 用する学習データをランダムに選ぶ 2015/11/12 SBRA 2015 10 学習データ ランダム サンプリング 相関小
  11. 11. ランダムフォレストの歴史 • Tin Kam Ho 1995 – Random decision forests, ICDAR 1995 – ランダムに抽出した部分空間を使って学習した決定木を 統合 • Amit & Geman 1997 – Shape Quantization and Recognition with Randomized Trees, Neural Computation,1997 • Leo Breiman 2001 – Random Forests , Machine Learning, 2001 – バギングによって決定木を学習 – 理論的考察 2015/11/12 SBRA 2015 11 Randomized Decision Trees Randomized Decision Forests など様々な名前で呼ばれている
  12. 12. コンピュータビジョンへの応用 • 特徴点認識 [Lepetit CVPR 2005] • 画像分割&認識 [Shotton CVPR 2008] • 人体部位認識 [Shotton CVPR 2011] 2015/11/12 SBRA 2015 12
  13. 13. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 1. 基本構造 2. ランダムフォレストの学習 3. ランダムフォレストのテスト 4. 回帰などへの応用 5. ランダムフォレストの性質 3. ランダムフォレストの応用 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 13
  14. 14. 準備 • 対象とするデータ 𝒗𝒗 = 𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑑𝑑 ∈ ℝ𝑑𝑑 • 目標 𝑡𝑡 • 教師データ集合 𝑆𝑆 = {(𝒗𝒗, 𝑡𝑡)} 2015/11/12 SBRA 2015 14 𝑆𝑆 𝒗𝒗1, 𝑡𝑡1 学習 𝒗𝒗3, 𝑡𝑡3 𝒗𝒗4, 𝑡𝑡4 𝒗𝒗2, 𝑡𝑡2 + 未知 データ • クラス識別:c ∈ ℕ • 回帰: y ∈ ℝ𝑛𝑛テスト 𝒗𝒗 𝑡𝑡
  15. 15. 決定木(二分決定木) 2015/11/12 SBRA 2015 15 𝒗𝒗 𝑝𝑝(𝑡𝑡| 𝒗𝒗) ℎ( 𝒗𝒗, 𝜃𝜃) 分岐関数 ℎ 𝒗𝒗, 𝜃𝜃 = {0,1} パラメータ 10 𝒗𝒗 特徴空間
  16. 16. 決定木判定結果の統合(パターン識別) 2015/11/12 SBRA 2015 16 𝑝𝑝𝑡𝑡(𝑐𝑐|v) ∑𝑝𝑝𝑡𝑡(𝑐𝑐|v) 2クラス識別問題 𝑝𝑝𝑡𝑡(𝑐𝑐|v) +
  17. 17. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 1. 基本構造 2. ランダムフォレストの学習 3. ランダムフォレストのテスト 4. 回帰などへの応用 5. ランダムフォレストの性質 3. ランダムフォレストの応用 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 17
  18. 18. 学習アルゴリズムの流れ • 入力:学習データ集合 𝑆𝑆 = {𝒗𝒗, 𝑡𝑡} • 𝑇𝑇個の決定木 T1, T2, … , T𝑇𝑇 それぞれについて – 学習データ集合からサンプリング:𝑆𝑆 ⇒ 𝑆𝑆0 – サンプリングしたデータを根ノード(𝑗𝑗 = 0)に与え 以下を再帰的に繰り返す • ノード 𝑗𝑗 での最適な分岐関数 ℎ∗(𝒗𝒗, 𝜃𝜃∗) を求める • ℎ∗ に従って 𝑆𝑆𝑗𝑗 を分割して 𝑆𝑆𝑗𝑗 𝐿𝐿 と 𝑆𝑆𝑗𝑗 𝑅𝑅 を得る • 終了条件をみたす? No→𝑆𝑆𝑗𝑗 𝐿𝐿 と𝑆𝑆𝑗𝑗 𝑅𝑅 を子ノードに与えて学習継 続,Yes→それより深くはしない – すべての葉ノードが終了条件をみたす→木の学習終了 • すべての木の学習終了→Forestの学習終了 2015/11/12 SBRA 2015 18 並列化可能!!
  19. 19. 学習アルゴリズムの流れ • 入力:学習データ集合 𝑆𝑆 = {𝒗𝒗, 𝑡𝑡} • 𝑇𝑇個の決定木 T1, T2, … , T𝑇𝑇 それぞれについて – 学習データ集合からサンプリング:𝑆𝑆 ⇒ 𝑆𝑆0 – サンプリングしたデータを根ノード(𝑗𝑗 = 0)に与え 以下を再帰的に繰り返す • ノード 𝑗𝑗 での最適な分岐関数 ℎ∗(𝒗𝒗, 𝜃𝜃∗) を求める • ℎ∗ に従って 𝑆𝑆𝑗𝑗 を分割して 𝑆𝑆𝑗𝑗 𝐿𝐿 と 𝑆𝑆𝑗𝑗 𝑅𝑅 を得る • 終了条件をみたす? No→𝑆𝑆𝑗𝑗 𝐿𝐿 と𝑆𝑆𝑗𝑗 𝑅𝑅 を子ノードに与えて学習継 続,Yes→それより深くはしない – すべての葉ノードが終了条件をみたす→木の学習終了 • すべての木の学習終了→Forestの学習終了 2015/11/12 SBRA 2015 19
  20. 20. 学習データ集合からのサンプリング • ブートストラップサンプリング – 学習データ集合全体から個々の決定木の学習に 利用するデータをランダムに選ぶ • 重複を許す(w/ replacement) • 使われないデータがあっても良い 2015/11/12 SBRA 2015 20 𝑆𝑆 𝒗𝒗1, 𝑡𝑡1 𝒗𝒗3, 𝑡𝑡3 𝒗𝒗4, 𝑡𝑡4 𝒗𝒗2, 𝑡𝑡2 𝒗𝒗1, 𝑡𝑡1 𝒗𝒗3, 𝑡𝑡3 𝑆𝑆1 𝒗𝒗3, 𝑡𝑡3 𝑆𝑆2 𝒗𝒗4, 𝑡𝑡4 𝒗𝒗3, 𝑡𝑡3 𝒗𝒗4, 𝑡𝑡4
  21. 21. 学習アルゴリズムの流れ • 入力:学習データ集合 𝑆𝑆 = {𝒗𝒗, 𝑡𝑡} • 𝑇𝑇個の決定木 T1, T2, … , T𝑇𝑇 それぞれについて – 学習データ集合からサンプリング:𝑆𝑆 ⇒ 𝑆𝑆0 – サンプリングしたデータを根ノード(𝑗𝑗 = 0)に与え 以下を再帰的に繰り返す • ノード 𝑗𝑗 での最適な分岐関数 ℎ∗(𝒗𝒗, 𝜃𝜃∗) を求める • ℎ∗ に従って 𝑆𝑆𝑗𝑗 を分割して 𝑆𝑆𝑗𝑗 𝐿𝐿 と 𝑆𝑆𝑗𝑗 𝑅𝑅 を得る • 終了条件をみたす? No→𝑆𝑆𝑗𝑗 𝐿𝐿 と𝑆𝑆𝑗𝑗 𝑅𝑅 を子ノードに与えて学習継 続,Yes→それより深くはしない – すべての葉ノードが終了条件をみたす→木の学習終了 • すべての木の学習終了→Forestの学習終了 2015/11/12 SBRA 2015 21
  22. 22. 1. 根ノードから学習開始 2. 再帰的に以下を実行 A) ノード 𝑗𝑗 での最適な分 岐関数 ℎ∗ (𝒗𝒗, 𝜃𝜃∗ ) を求め る B) ℎ∗に従って 𝑆𝑆𝑗𝑗 を分割 した 𝑆𝑆𝑗𝑗 𝐿𝐿 と 𝑆𝑆𝑗𝑗 𝑅𝑅 を与えて 子ノードを生成 C) 終了条件をみたす? No→子ノードで学習 継続,Yes→終了 3. 全葉ノードで終了→終了 決定木学習の流れ 2015/11/12 SBRA 2015 22 n 0 1 2 𝑝𝑝(𝑡𝑡|v) ℎ∗ = arg max 𝐼𝐼0 𝑆𝑆0 根ノード 𝑆𝑆0 𝑆𝑆𝑛𝑛 終了?→Yes 𝑆𝑆1 = 𝑆𝑆0 𝐿𝐿 𝑆𝑆2 = 𝑆𝑆0 𝑅𝑅 𝑆𝑆0 𝐿𝐿 𝑆𝑆0 𝑅𝑅
  23. 23. 分岐関数の学習(1):イメージ 2015/11/12 SBRA 2015 23 𝑗𝑗 𝑆𝑆𝑗𝑗 𝑆𝑆𝑗𝑗 𝐿𝐿 𝑆𝑆𝑗𝑗 𝑅𝑅 𝑆𝑆𝑗𝑗 𝑆𝑆𝑗𝑗 𝐿𝐿 𝑆𝑆𝑗𝑗 𝑅𝑅 ランダムに選んだ 分岐関数候補から選ぶので たとえ同一の学習データでも 試行ごとに微妙に異なる 決定木となる
  24. 24. 分岐関数の学習(2):定式化 2015/11/12 SBRA 2015 24 𝑗𝑗 ℎ 𝒗𝒗, 𝜃𝜃𝑗𝑗 = {0, 1} 𝒗𝒗:入力データ 𝜃𝜃𝑗𝑗:パラメータ 𝑆𝑆𝑗𝑗 𝑆𝑆𝑗𝑗 𝐿𝐿 𝑆𝑆𝑗𝑗 𝑅𝑅 最適なパラメータ 𝜃𝜃∗ = arg max 𝜃𝜃𝑗𝑗∈ℑ𝑗𝑗 𝐼𝐼𝑗𝑗 目的関数: 𝐼𝐼𝑗𝑗= 𝐼𝐼 𝑆𝑆𝑗𝑗, 𝑆𝑆𝑗𝑗 𝐿𝐿 , 𝑆𝑆𝑗𝑗 𝑅𝑅 , 𝜃𝜃𝑗𝑗 パラメータ候補:ℑ𝑗𝑗 ∈ ℑ
  25. 25. 分岐関数の学習(3):目的関数(1) パターン識別の場合(クラスラベル集合𝐶𝐶) • エントロピー(平均情報量) 𝐻𝐻 𝑆𝑆 = − � 𝑐𝑐∈𝐶𝐶 𝑝𝑝 𝑐𝑐 log(𝑝𝑝 𝑐𝑐 ) 2015/11/12 SBRA 2015 25 2クラスの場合 𝐻𝐻 𝑆𝑆 𝑝𝑝 𝑐𝑐 それぞれのクラスが 等確率で存在するとき最大 𝐻𝐻 𝑆𝑆 :小 𝐻𝐻 𝑆𝑆 :大
  26. 26. 分岐関数の学習(3):目的関数(2) • 情報利得:分割前後のエントロピーの差 𝐼𝐼 = 𝐻𝐻 𝑆𝑆 − � 𝑖𝑖∈{𝐿𝐿,𝑅𝑅} 𝑆𝑆𝑖𝑖 𝑆𝑆 𝐻𝐻(𝑆𝑆𝑖𝑖 ) 2015/11/12 SBRA 2015 26 分割前 分割後(重み付き平均) 𝐻𝐻 𝑆𝑆 = 0.7 𝐼𝐼1 = 0.7 − 0.7 = 0 𝜃𝜃1 𝜃𝜃2 𝐼𝐼2 = 0.7 − 0 = 0.7
  27. 27. 分岐関数の学習(4):パラメータ候補 • すべてのパラメータ候補を試すのは非現実的 • 学習結果に適当な「ぶれ」を与える • ランダムに抽出したものを利用 2015/11/12 SBRA 2015 27 ℑ𝑗𝑗 ∈ ℑ 全パラメータ ノード𝑗𝑗の学習に 利用する パラメータ ランダム度合い: 𝜌𝜌 = |ℑ𝑗𝑗| |ℑ|
  28. 28. 1. 根ノードから学習開始 2. 再帰的に以下を実行 A) ノード 𝑗𝑗 での最適な分 岐関数 ℎ∗ (𝒗𝒗, 𝜃𝜃∗ ) を求め る B) ℎ∗に従って 𝑆𝑆𝑗𝑗 を分割 した 𝑆𝑆𝑗𝑗 𝐿𝐿 と 𝑆𝑆𝑗𝑗 𝑅𝑅 を与えて 子ノードを生成 C) 終了条件をみたす? No→子ノードで学習 継続,Yes→終了 3. 全葉ノードで終了→終了 決定木学習の流れ 2015/11/12 SBRA 2015 28 n 0 1 2 𝜃𝜃∗ = arg max 𝐼𝐼0 𝑆𝑆0 根ノード 𝑆𝑆0 𝑆𝑆𝑛𝑛 終了? 𝑆𝑆1 = 𝑆𝑆0 𝐿𝐿 𝑆𝑆2 = 𝑆𝑆0 𝑅𝑅 𝑆𝑆0 𝐿𝐿 𝑆𝑆0 𝑅𝑅
  29. 29. 決定木学習の終了 終了条件 1. あらかじめ定めた深さ𝐷𝐷に達 した場合 2. ノードに割り当てられた学 習データの個数|𝑆𝑆𝑛𝑛|が一定値 以下になったとき 3. 分割による情報利得𝐼𝐼𝑛𝑛が一定 値以下になったとき 終了すると𝑆𝑆𝑛𝑛から事後確率 𝑝𝑝(𝑡𝑡|v) の推定値を計算して保持 2015/11/12 SBRA 2015 29 n 𝑆𝑆𝑛𝑛 𝐷𝐷 𝑝𝑝(𝑡𝑡|v)
  30. 30. 学習アルゴリズムの流れ • 入力:学習データ集合 𝑆𝑆 = {𝒗𝒗, 𝑡𝑡} • 𝑇𝑇個の決定木 T1, T2, … , T𝑇𝑇 それぞれについて – 学習データ集合からサンプリング:𝑆𝑆 ⇒ 𝑆𝑆0 – サンプリングしたデータを根ノード(𝑗𝑗 = 0)に与え 以下を再帰的に繰り返す • ノード 𝑗𝑗 での最適な分岐関数 ℎ∗(𝒗𝒗, 𝜃𝜃∗) を求める • ℎ∗ に従って 𝑆𝑆𝑗𝑗 を分割して 𝑆𝑆𝑗𝑗 𝐿𝐿 と 𝑆𝑆𝑗𝑗 𝑅𝑅 を得る • 終了条件をみたす? No→𝑆𝑆𝑗𝑗 𝐿𝐿 と𝑆𝑆𝑗𝑗 𝑅𝑅 を子ノードに与えて学習継 続,Yes→それより深くはしない – すべての葉ノードが終了条件をみたす→木の学習終了 • すべての木の学習終了→Forestの学習終了 2015/11/12 SBRA 2015 30
  31. 31. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 1. 基本構造 2. ランダムフォレストの学習 3. ランダムフォレストのテスト 4. 回帰などへの応用 5. ランダムフォレストの性質 3. ランダムフォレストの応用 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 31
  32. 32. テスト • 与えられた入力を全ての決定木に入力して統合 2015/11/12 SBRA 2015 32 𝒗𝒗 𝑝𝑝1(𝑡𝑡|𝒗𝒗) 𝑝𝑝2(𝑡𝑡|𝒗𝒗) 𝑝𝑝𝑇𝑇(𝑡𝑡|𝒗𝒗) 𝑝𝑝 𝑡𝑡 v = 1 𝑇𝑇 � 𝑡𝑡=1 𝑇𝑇 𝑝𝑝𝑡𝑡(𝑡𝑡|𝒗𝒗) • 多数決 • 積をとる場合もある 並列化可能!!
  33. 33. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 1. 基本構造 2. ランダムフォレストの学習 3. ランダムフォレストのテスト 4. 回帰などへの応用 5. ランダムフォレストの性質 3. ランダムフォレストの応用 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 33
  34. 34. ランダムフォレストによる回帰 • 出力 – パターン識別問題:c ∈ ℕ – 回帰問題:y ∈ ℝ𝑛𝑛 2015/11/12 SBRA 2015 34 𝒗𝒗 𝒚𝒚 𝒗𝒗 𝒄𝒄 1 2 3
  35. 35. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 1. 基本構造 2. ランダムフォレストの学習 3. ランダムフォレストのテスト 4. 回帰などへの応用 5. ランダムフォレストの性質 3. ランダムフォレストの応用 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 35
  36. 36. ランダムフォレストの性質 • パラメータチューニング – 少々チューニングは必要だが比較的容易 • わかりやすさ – 決定木なので識別規則が一目瞭然 • 複雑な対象の取り扱い – 多クラス識別や回帰にもそのまま適用可能 – 非線形な対象の取り扱いも可能 • 処理コスト – テストは高速 – 学習・テスト共に並列化に適している 2015/11/12 SBRA 2015 36
  37. 37. RFの汎化誤差推定 • Out-of-Bag Estimates – ブートストラップサンプルに含まれなかったサン プルを使って汎化誤差を推定 – 交差検定(cross-validation)を実行する必要はな い 2015/11/12 SBRA 2015 37 𝒗𝒗 𝑝𝑝1(𝑡𝑡|𝒗𝒗) 𝑝𝑝𝑇𝑇(𝑡𝑡|𝒗𝒗) 𝒗𝒗 ∉ 𝑆𝑆1 𝒗𝒗 ∈ 𝑆𝑆2 𝒗𝒗 ∉ 𝑆𝑆𝑇𝑇
  38. 38. 変数重要度 • 目的関数の改善に貢献 した度合いを積算 • OOBサンプルのうちラ ンダムに選んだ変数を 置換 2015/11/12 SBRA 2015 38 𝑗𝑗 𝑆𝑆𝑗𝑗 𝑆𝑆𝑗𝑗 𝐿𝐿 𝑆𝑆𝑗𝑗 𝑅𝑅 𝜃𝜃∗ = arg max 𝐼𝐼 𝜃𝜃∗ に相当する変数に 対し 𝐼𝐼 を積算していく 𝒗𝒗𝑖𝑖 ∉ 𝑆𝑆 𝑣𝑣1 0 , 𝑣𝑣2 0 , 𝑣𝑣3 0 , … , 𝑣𝑣𝑑𝑑 0 𝑣𝑣1 1 , 𝑣𝑣2 1 , 𝑣𝑣3 1 , … , 𝑣𝑣𝑑𝑑 1 𝑣𝑣1 2 , 𝑣𝑣2 2 , 𝑣𝑣3 2 , … , 𝑣𝑣𝑑𝑑 2 性能の低下が 顕著であれば重要
  39. 39. 顔認識における変数重要度 2015/11/12 SBRA 2015 39 Scikit-learn のサンプル
  40. 40. 木の深さと過学習 • 木の深さ𝐷𝐷 – あまり深くしすぎると過学習を起こす 2015/11/12 SBRA 2015 40
  41. 41. 木の深さと過学習:実例 [Criminisi 2011] 2015/11/12 SBRA 2015 41 max tree depth, D overfittingunderfitting T=200, D=3, w. l. = conic T=200, D=6, w. l. = conic T=200, D=15, w. l. = conic Training points: 4-class mixed
  42. 42. ブースティングとの比較(1) 2015/11/12 SBRA 2015 42
  43. 43. ブースティングとの比較(2) 2015/11/12 SBRA 2015 43
  44. 44. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 3. ランダムフォレストの応用 1. CV問題への適用 2. 識別の応用例 3. 識別+回帰の応用例 4. 問題点と対策 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 44
  45. 45. CV問題への適用:入力データ • 入力データ 𝒗𝒗 = 𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑑𝑑 ∈ ℝ𝑑𝑑 – 画像/デプスマップ/3次元ボリュームの局所領 域を単位とする – 局所領域における以下の特徴量で 𝒗𝒗 を構成(例) • 輝度/色成分そのまま • フィルタリング結果(微分など) • HOGなどの特徴抽出結果 2015/11/12 SBRA 2015 45 𝒊𝒊 𝒗𝒗 𝒊𝒊 𝒆𝒆 𝒇𝒇 フィルタ 特徴検出
  46. 46. CV問題への適用:分岐関数 • 分岐関数の定義 ℎ 𝒗𝒗, 𝜃𝜃𝑗𝑗 = {0, 1} – データ 𝒗𝒗 の2要素の差分をとって閾値処理 – 一様な明度変化などに対してロバスト ( cf. Haar-like 特徴) 2015/11/12 SBRA 2015 46 𝜙𝜙 = − 𝜙𝜙 = 𝑥𝑥𝑖𝑖 − 𝑥𝑥𝑗𝑗, ( 𝑖𝑖, 𝑗𝑗 ∈ 1, … , 𝑑𝑑 2 ) ℎ 𝒗𝒗, 𝜃𝜃𝑗𝑗 = � 1 𝜙𝜙 ≥ 𝜏𝜏 , 0 𝜙𝜙 < 𝜏𝜏 . 𝒗𝒗
  47. 47. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 3. ランダムフォレストの応用 1. CV問題への適用 2. 識別の応用例 3. 識別+回帰の応用例 4. 問題点と対策 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 47
  48. 48. リアルタイム特徴点認識 2015/11/12 SBRA 2015 48 [Lepetit et al., 2006]
  49. 49. デプスマップからの身体部位推定 2015/11/12 SBRA 2015 49[Shotton et al. 2011] left hand right shoulder neck right foot Input depth image Visual features • 人間の身体を31個の部位 に分割 • 入力:デプスマップ • 出力:部位ラベル 2画素の奥行きの差
  50. 50. 身体部位推定結果 2015/11/12 SBRA 2015 50 [Shotton et al. 2011]
  51. 51. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 3. ランダムフォレストの応用 1. CV問題への適用 2. 識別の応用例 3. 識別+回帰の応用例 4. 問題点と対策 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 51
  52. 52. Hough Forest • 局所パッチ&投票ベースの物体検出 – Implicit Shape Model [Leibe et al. 2003] • ランダムフォレストで識別・回帰を行う 2015/11/12 SBRA 2015 52 [Gall et al. 2009] [Okada 2009] 11, xc 22 , xc 3c 44 , xc 5c ランダムフォレスト 入力: ・局所パッチ 出力: ・クラスラベル ・オフセット
  53. 53. Hough Forests の検出結果 2015/11/12 SBRA 2015 53 [Gall et al. 2009]
  54. 54. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 3. ランダムフォレストの応用 1. CV問題への適用 2. 識別の応用例 3. 識別+回帰の応用例 4. 問題点と対策 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 54
  55. 55. ランダムフォレストの問題点 • 高い能力を得るには – フォレストの規模が大きくなる – メモリ使用量大 2015/11/12 SBRA 2015 55 ・ 構造を工夫するもの ・ 構築(学習)過程を工夫するもの
  56. 56. Decision Jungles • ランダムフォレストとの違い – 複数の親ノードから一つの子ノードへの結合を 許す 2015/11/12 SBRA 2015 56 [Shotton NIPS 2013] Microsoft Azure に実装
  57. 57. ランダムフォレストの問題点 • 高い能力を得るには – フォレストの規模が大きくなる – メモリ使用量大 2015/11/12 SBRA 2015 57 ・ 構造を工夫するもの ・ 構築(学習)過程を工夫するもの
  58. 58. Alternating Decision Forests • 深さ優先ではなく,幅優先で木を構築する • 損失関数を大域的に最小化 • 通常の Random Forests よりも良い結果 2015/11/12 SBRA 2015 58 [Schulter CVPR 2013]
  59. 59. Boosted Random Forest • ブースティングで順に決定木の精度向上 2015/11/12 SBRA 2015 59 [Mishima VISIGRAPP 2014] 誤差 重みづけ 誤差 重みづけ
  60. 60. 構築したRFの最適化(1) • 葉ノードに与えられた予測値の最適化 2015/11/12 SBRA 2015 60 [Ren CVPR 2015] 𝑥𝑥 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0Φ(𝑥𝑥) Indicator Vector 𝑦𝑦 = 𝑊𝑊Φ(𝑥𝑥) Global Refinement of Random Forest 初期学習で葉ノードに 与えられた予測値の集合 • SVMと同様の目的関数で 最適な 𝑊𝑊 を導出できる • 木同士が相補的な働きを するようになる
  61. 61. 構築したRFの最適化(2) • 不要な葉ノードの統合(Pruning) 2015/11/12 SBRA 2015 61 [Ren CVPR 2015] 𝑤𝑤𝑡𝑡 • 隣接葉ノードでベクトルの L2 ノルムの和をとる • 全体の中で下位の組みあわせを統合する
  62. 62. RF meets Deep Learning (1) • Deep Neural Decision Forests 2015/11/12 SBRA 2015 62 [Kontschieder ICCV 2015] • ノードの分岐学習の学習を Deep CNN の枠組みで行う
  63. 63. RF meets Deep Learning (2) • Relating Cascaded RF to Deep CNN 2015/11/12 SBRA 2015 63 [Richmond arxiv 2015] • カスケード型 RF と Deep CNN に相互変換する
  64. 64. 本日の構成 1. ランダムフォレストの特徴 2. ランダムフォレストの基礎 3. ランダムフォレストの応用 4. ランダムフォレストの実際 2015/11/12 SBRA 2015 64
  65. 65. どの手法を使えばよいの? • Choosing the right estimator http://scikit-learn.org/stable/tutorial/machine_learning_map/ 2015/11/12 65SBRA 2015
  66. 66. 識別のところを拡大 2015/11/12 66SBRA 2015 線形サポートベクトルマシンや k 最近傍法でうまくいくときはそれを使うべき そうでないときにカーネルSVMはアンサンブル学習を
  67. 67. ランダムフォレストのパラメータ調整 • 基本的にはデータセット・タスク依存! • 一般的に目にする議論としては – 木を深くすると過学習につながるがあまり神経 質になる必要はない – 節点で試す分岐関数の個数はあまり多くてはい けない 2015/11/12 SBRA 2015 67
  68. 68. 利用可能なライブラリ • Open CV – CvRTrees • Python – scikit-learn – http://scikit-learn.org/stable/ • Waffles – http://waffles.sourceforge.net/ • Randomforest-matlab – http://code.google.com/p/randomforest-matlab/ • Leo Breiman – http://www.stat.berkeley.edu/~breiman/RandomF orests/cc_home.htm 2015/11/12 SBRA 2015 68
  69. 69. scikit-learn • Python で利用できる機械学習ライブラリ • ランダムフォレストを初めとしてSVM,ブー スティングなどよく利用されている機械学習 手法が実装されている • ドキュメントが非常に丁寧 2015/11/12 SBRA 2015 69
  70. 70. scikit-learn のサンプル 2015/11/12 SBRA 2015 70 IRISデータを使った比較 顔認識における変数重要度
  71. 71. 入手可能な参考資料(1) • Awesome Random Forest by Jungkwon Lee – http://jiwonkim.org/awesome-random-forest/ • ICCV 2009 tutorial by Jamie Shotton – http://www.iis.ee.ic.ac.uk/~tkkim/iccv09_tutorial • ICCV 2011 tutorial by Antonio Criminisi – http://research.microsoft.com/en-us/projects/decisionforests/ • ICCV 2013 tutorial by Jamie Shotton – http://research.microsoft.com/en-us/um/cambridge/projects/iccv2013tutorial/ • 中部大学機械知覚&ロボティクスグループ – http://mprg.jp/tutorials 2015/11/12 SBRA 2015 71
  72. 72. 入手可能な参考資料(2) • Elements of Statistical Learning (T. Hastie et al., 2009) – 和訳:統計的学習の基礎:データマイニング・ 推論・予測,共立出版,2014 • Decision Forests for Computer Vision and Medical Image Analysis (Antonio Criminisi et al., 2013) 2015/11/12 SBRA 2015 72
  73. 73. まとめ • ランダムフォレストの利点 – テストが高速/わかりやすい/そこそこ高性能 – 拡張が容易 • 今後 – 研究者/技術者の改良によって新たな展開? 2015/11/12 SBRA 2015 73
  74. 74. ご静聴ありがとうございました 2015/11/12 SBRA 2015 74

×