Successfully reported this slideshow.
Your SlideShare is downloading. ×

ランダムフォレスト

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 74 Ad

More Related Content

Slideshows for you (20)

Viewers also liked (8)

Advertisement

Similar to ランダムフォレスト (20)

Recently uploaded (20)

Advertisement

ランダムフォレスト

  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

×