Kashiwa.R#2 RandomForest 等について

5,817 views

Published on

Kashiwa.R #2 ( http://www14.atwiki.jp/kashiwar/pages/14.html ) での発表スライドを微調整したもの.

Published in: Technology

Kashiwa.R#2 RandomForest 等について

  1. 1. 2012-02-27 Kashiwa.R#2 RandomForest 等について くつな なつまろ 朽名 夏麿 (東京大学 大学院新領域創成科学研究科 先端生命科学専攻)
  2. 2. 前回 (Kashiwa.R#1, 2011-11-11) スライドより ImageJ から R を使って画像の学習と分類をする ? ゴルジ体 リソソーム 課題画像 4. 教師データから分類森を作り, 教師画像群 課題データを分類 ImageJ randomForest package1. 画像 7. 表示 3. 特徴等 5. 分類結果 今回の plugin R2. 特徴等 6. 分類結果 JRI (Java/R) JNI (Java/C)
  3. 3. 教師付き学習と分類人が判定済の物体 特徴量 分類器 特徴抽出 学習 ラベル ラベル 未知の物体 特徴量 ラベル? 特徴抽出 分類 かたさ 重さ
  4. 4. 教師データの用意人が判定済の物体 ラベル 例: 専門家によるアノテーションなど. 果物ハカセとか初生雛鑑別師とか. 未知の物体? ※大抵のモデルでは,この時は「未知の物体」を利用しない.
  5. 5. 特徴抽出人が判定済の物体 特徴量 特徴抽出 ラベル ラベル どちらかで 十分そう. かたさ 重さ かたさ 分類に役立たなそう. ※特徴の数(次元)に 決まりはない. 分類に役立たなそうだが 重さ 何かを示唆している.
  6. 6. 分類器の生成(学習フェイズ)人が判定済の物体 特徴量 分類器 特徴抽出 学習 ラベル ラベル かたさ リンゴ側 ミカン側 重さ
  7. 7. 分類器の生成(学習フェイズ) 分類器分類器の具体的なモデルやデータ構造は多種多様だが,結果的に(陰に)特徴を軸とする空間を複数の領域に分割する決定境界ができている.決定境界そのものと,どちら側がミカンでどちら側がリンゴか,を覚えておけば,教師データそのものは忘れてよい場合が多い. かたさ リンゴ側 ミカン側 決定境界 (識別面) 重さ
  8. 8. ここから分類器の利用(分類フェーズ) 分類器未知の物体がきた. ? 未知の物体 かたさ リンゴ側 ミカン側 重さ
  9. 9. 分類フェーズにおける特徴抽出 分類器未知の物体に対して… 分類器の生成時と同じ特徴 「かたさ」「重さ」を測定. ? 未知の物体 特徴抽出 特徴量 かたさ ? リンゴ側 ミカン側 重さ
  10. 10. 分類 分類器未知の物体に対して… ? 未知の物体 特徴抽出 特徴量 分類 ラベル 分類の結果, かたさ ミカンと推定された. リンゴ側 ミカン側 重さ
  11. 11. 教師付き学習と分類人が判定済の物体 特徴量 分類器 特徴抽出 学習 ラベル ラベル 未知の物体 特徴量 ラベル? 特徴抽出 分類 かたさ どうやって分類器(決定境界) を作るのか? どのような表現(モデル)にするか? 重さ
  12. 12. 教師付き学習の例: 最短距離法,[k-]最近傍法かたさ ・ 教師データを丸暗記する. ・ 分類対象の果物の近くに位置する果物とする. ・ 「近く」: 距離の定義はいくつかある. ・ 最も近い果物だけ考慮するか(k=1), ? 近くの k 個の果物から多数決する. k=1 k=3 重さ k=9 k = 17 2特徴,3クラス分類の例
  13. 13. 教師付き学習のアルゴリズムと決定境界 k-最近傍法(NN) naive Bayesk=1 k=3 k=9 k=17 SVM (RBF kernel) default 交差検証でbest
  14. 14. Is your character American ?Is your character internationally famous?Is your character a female?Is your character famous thanks to television?Is your character from your family?Have you ever fallen in love with your character?Have you kissed your character on the lips?Is your character real?Can your character fly?Is your character a singer?Does your character fight?Does your character have a brother or sister?Does your character have long hair?Is your character a High School student?Is your character English?Is your character from a video game?Is your character a maid?Does your character love spicy food?Is your character blond?Is your character small?* Yes* Probably/Parially* I don’t know* Probably not / Not really* Noの5択で,上記の利用例では20の質問だった.
  15. 15. Is your character American ? : NoIs your character internationally famous? : NoIs your character a female? : YesIs your character famous thanks to television? : NoIs your character from your family? : NoHave you ever fallen in love with your character? : YesHave you kissed your character on the lips? : NoIs your character real? : NoCan your character fly? : NoIs your character a singer? : NoDoes your character fight? : NoDoes your character have a brother or sister? : NoDoes your character have long hair? : NoIs your character a High School student? : NoIs your character English? : NoIs your character from a video game? : YesIs your character a maid? : YesDoes your character love spicy food? : NoIs your character blond? : NoIs your character small? : No 雪さん あたった.
  16. 16. Is your character American ? : No 実際は5分岐Is your character internationally famous? : NoIs your character a female? : YesIs your character famous thanks to television? : NoIs your character from your family? : NoHave you ever fallen in love with your character? : YesHave you kissed your character on the lips? : NoIs your character real? : NoCan your character fly? : NoIs your character a singer? : NoDoes your character fight? : NoDoes your character have a brother or sister? : NoDoes your character have long hair? : NoIs your character a High School student? : NoIs your character English? : NoIs your character from a video game? : YesIs your character a maid? : YesDoes your character love spicy food? : NoIs your character blond? : No 末端の場合の数は520通り (86 Ti.95兆).Is your character small? : No 木構造で分類ができる. 分類は速い (N 個のデータ → log N 回の探索). 特徴は数値に限らない(名義尺度等も可).欠測も許容できる. 特徴のスケールや距離尺度にあまり影響されない.
  17. 17. 決定木の決定境界は特徴軸に平行な線分となる. START かたさ「かたさ」は a 以下?Yes No 「重さ」は b 以下? Yes Noミカン 重さかたさ かたさ かたさ c a 重さ b 重さ 重さ
  18. 18. 決定木による分類のようす START かたさ「かたさ」は a 以下?Yes No リンゴ ゾーン1 「重さ」は b 以下? Yes No リンゴ ゾーン2 「かたさ」は c 以下? … ミカン ゾーン Yes No … ミカン 重さかたさ かたさ かたさ c a 重さ b 重さ 重さ
  19. 19. 決定木の作り方 (CART の場合)かたさ START 2択式の質問なので,質問 ごとに2つのグループに N=20 分かれる.グループ内には 1種の果物が入るように N=16 「かたさ」は a 以下? したい.もしくは,果物の a Yes No 比率を偏るようにしたい. N=4 言い換えると グループを「純粋」にしたい. = エントロピー(乱雑さ)を小さくしたい. 重さ N=4 N=16かたさ P(E): Eの起こる確率 I(E): Eが起きた際に得られる情報量 H: 情報エントロピー N=6 P(リンゴ)=0.5, P(ミカン)=0.5 で最大. P(リンゴ)=0, P(ミカン)=1 や P(リンゴ)=1, P(ミカン)=0 で最小. 情報エントロピーを極力,低下させる質問 = 情報を多く得られる質問 最初のエントロピーは I(ミカン) * P(ミカン) + I(リンゴ) * P(リンゴ) = 0.23 + 0.26 = 0.49 質問 a で得られる2群のエントロピーの重み付き平均は 4/20 * 下のエントロピー(0) + 16/20 * 上のエントロピー(0.42) = 0.34 N=14 質問 b で得られる2群のエントロピーの重み付き平均は 6/20 * 左のエントロピー(0.25) + 14/20 * 右のエントロピー(0.40) = 0.35 質問 a で低下するエントロピー: 0.49-0.34=0.15 b 重さ 質問 b で低下するエントロピー: 0.49-0.35=0.14 → 質問 a の方がいい
  20. 20. 完全に展開した決定木の決定境界 k=1 k=3 k=9 k=17 naive Bayes k-最近傍法(NN) SVM best他の分類器に比べて,木は不器用に見える.→ 分類精度はこのままでは低い.
  21. 21. 木から森へ
  22. 22. 集団学習: 複数の学習器 (base learner, weak learner) を組み合わせるアプローチ1994baggingbase learner は模範解答全部でなく乱択した一部から学ぶ.互いに異なる模範解答を用いるので個性が出る. Bagging/tree1995random subspace (RS) 2001 多数決 2006base learnerは特徴全部 Random Forest (RF) Extremely Randomizedでなく,乱択した一部を用いる. Bagging + Local RS Trees (Extra Trees)global RS: 学習開始時乱択 模範解答も特徴も乱択.local RS: 分岐毎乱択 base learner は CART. Local RS か RF に基き, さらに base learner (決定木) の枝分かれ位置を乱択で決定. (CARTでは枝分かれ位置を 網羅的に探索する) random 図は Global RS random
  23. 23. base learner (決定木) の本数と決定境界 2本 4本 8本 16本 32本 64本Random Forest Extra Trees k-最近傍法(NN) CART SVM (RBF kernel) naive Bayes
  24. 24. 決定木と乱択による集団学習アルゴリズムの比較 乱択(ランダムに選択)するもの 教師データ 特徴 枝わかれ位置Bagging ○ ー ーRandom Subspace ー ○ ーRandom Forest ○ ○ ーExtra Trees ー / ○ ○ ○教師データを乱択する利点: 学習しつつ,分類精度や類似度行列を求められる.特徴を乱択する利点: 学習が速い.学習しつつ,特徴の重要性をスコアリングできる.枝わかれ位置を乱択する利点: 学習が速い.base learner に決定木を用いる利点: 分類が速い.特徴のスケーリングや特徴間の関係を無視できる.
  25. 25. RandomForest, ExtraTrees と他手法との比較20種のベンチマークデータを用いて,各手法の分類精度と所要時間を交差検定(8-fold)で求め,平均順位を得た. サンプル数 特徴数 クラス数 australian 690 14 2 breast-cancer 683 10 2 colon-cancer 62 2000 2 connect-4 1000 126 3 covtype 1000 54 2 diabetes 768 8 2 german.numer 1000 24 2 glass 214 9 6 heart 270 13 2 ionosphere 351 34 2 iris 150 4 3 liver-disorder 345 6 2 mnistt 500 774 10 : : : : wine 178 18 3
  26. 26. RandomForest, ExtraTrees と他手法との比較 MLP/BP naive Bayes SVM RBF default CART SVM linear Random Forest default kNN SVM RBF best ExtraTrees優秀 高速
  27. 27. Iris flower data set別名: Fishers Iris data set, Andersons Iris data set150サンプル,4次元,3クラス.アメリカのアヤメ3種(50サンプル/種)の花の形から,種を分類する問題.Fischerが判別分析の論文(1936)で用いた為,最も有名な多変量データとなった.特徴量: ガク(sepal)の長さ,ガクの幅,花弁(petal)の長さ,花弁の幅. I. setosa I. versicolor I. virginicaヒオウギアヤメ R では > iris とすると表示される.
  28. 28. R で RandomForest を使う (1. 学習)> iris Sepal.Length Sepal.Width Petal.Length ... Species1 5.1 3.5 1.4 ... setota: : : : :> library(randomForest)> f1 <- randomForest(formula=Species ~ ., data=iris)> f1Call: randomForest(formula = Species ~ ., data = iris) Type of random forest: classification Number of trees: 500No. of variables tried at each split: 2 OOB estimate of error rate: 4%Confusion matrix: setosa versicolor virginica class.errorsetosa 50 0 0 0.00versicolor 0 47 3 0.06virginica 0 3 47 0.06
  29. 29. R で RandomForest を使う (1. 学習)Andersen氏が同定した花 特徴量 分類森 特徴抽出 randomForest 種名 (by Andersen E) 種名 iris.f iris (150点,4特徴,3クラス)> iris Sepal.Length Sepal.Width Petal.Length ... Species1 5.1 3.5 1.4 ... setota2 4.9 3.0 1.4 ... setosa: : : : :149 6.2 3.4 5.4 ...virginica150 5.9 3.0 5.1 ...virginica> library(randomForest)> iris.f <- randomForest(formula=Species ~ ., data=iris)
  30. 30. R で RandomForest を使う (2. 特徴の評価)> round(importance(iris.f),1) 各特徴の分類精度への寄与 ... MeanDecreaseAccuracy ...Sepal.Length ... 1.3 ...Sepal.Width ... 0.7 ...Petal.Length ... 2.6 ...Petal.Width ... 2.5 ... bad good good
  31. 31. R で RandomForest を使う (3. 未知の花の分類)Andersen氏が同定した花 特徴量 分類森 特徴抽出 randomForest 種名 (by Andersen E) 種名 iris.fI. setosa I. virginica iris (150点,4特徴,3クラス) I. versicolor 種名がわからない花 特徴量 ラベル 特徴抽出 predict p versicolor > p <- data.frame(cbind(5.8, 3, 4.35, 1.3)) > colnames(p) <- colnames(iris)[-5] > p Sepal.Length Sepal.Width Petal.Length Petal.Width 1 5.8 3 4.35 1.3 > predict(iris.f, p) 1 versicolor Levels: setosa versicolor virginica
  32. 32. FORTRAN77 開発者のページ. Department of Statistics University of California, Berkeley にある. 2004年に最新バージョンが出ている. すぐにnew versionが出る予定らしい. Leo Breiman (1928-2005)CART や Bagging も Breiman の仕事.R の RandomForest パッケージの中心部も Breiman のコードが元になっている.
  33. 33. まとめRandomForest , ExtraTrees について紹介した. * ユーザーがチューニングすべきところがほとんどない. * ブラックボックスではない(動作自体は単純). * 幅広い分類問題に使える. * 分類以外にも有用な情報が得られる. * 学習も分類も速い.データ数,特徴数の増加に強い. …といった良いツールである.とくに R からは手軽に扱える.発表に盛り込めなかったこと,考えていることなど: 本家以外の実装(R 用にも他に2つくらいありそう). 欠点(メモリを食うとか,統計学的?に解析しにくいとか). out-of-bag データからの混同行列や特徴スコアリングの仕方. 回帰への利用. 「教師無し」での利用法.クラスタリングやプロトタイピング. 実用的な利用例. kd-tree やボトムアップなクラスタリング法との比較.

×