33
RandomForest 等について くつな なつまろ 朽名 夏麿 (東京大学 大学院新領域創成科学研究科 先端生命科学専攻) 2012-02-27 Kashiwa.R#2

Kashiwa.R#2 RandomForest 等について

  • Upload
    nmaro

  • View
    4.859

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Kashiwa.R#2 RandomForest 等について

RandomForest 等について

くつな なつまろ

朽名 夏麿

(東京大学 大学院新領域創成科学研究科 先端生命科学専攻)

2012-02-27 Kashiwa.R#2

Page 2: Kashiwa.R#2 RandomForest 等について

4. 教師データから分類森を作り,

課題データを分類

今回の plugin

JRI (Java/R)

JNI (Java/C)

R

ImageJ randomForest package

ImageJ から R を使って画像の学習と分類をする

1. 画像

2. 特徴等 6. 分類結果

7. 表示 5. 分類結果 3. 特徴等

ゴルジ体 リソソーム ?

教師画像群 課題画像

前回 (Kashiwa.R#1, 2011-11-11) スライドより

Page 3: Kashiwa.R#2 RandomForest 等について

人が判定済の物体

ラベル

分類器

ラベル 未知の物体 特徴抽出

特徴抽出

特徴量 学習

特徴量 分類

かたさ

重さ

?

ラベル

教師付き学習と分類

Page 4: Kashiwa.R#2 RandomForest 等について

人が判定済の物体

ラベル

未知の物体 ?

教師データの用意

例: 専門家によるアノテーションなど.

果物ハカセとか初生雛鑑別師とか.

※大抵のモデルでは,この時は「未知の物体」を利用しない.

Page 5: Kashiwa.R#2 RandomForest 等について

人が判定済の物体

ラベル 特徴抽出

特徴量

かたさ

重さ

ラベル

特徴抽出

どちらかで

十分そう.

分類に役立たなそう.

分類に役立たなそうだが

何かを示唆している.

※特徴の数(次元)に

決まりはない.

重さ

かたさ

Page 6: Kashiwa.R#2 RandomForest 等について

人が判定済の物体

ラベル

分類器 特徴抽出

特徴量 学習

かたさ

重さ

ラベル

ミカン側

リンゴ側

分類器の生成(学習フェイズ)

Page 7: Kashiwa.R#2 RandomForest 等について

分類器

かたさ

重さ

ミカン側

リンゴ側

分類器の具体的なモデルやデータ構造は多種多様

だが,結果的に(陰に)特徴を軸とする空間を複数の領域に

分割する決定境界ができている.

決定境界そのものと,どちら側がミカンでどちら側がリンゴか,

を覚えておけば,教師データそのものは忘れてよい場合が多い.

決定境界 (識別面)

分類器の生成(学習フェイズ)

Page 8: Kashiwa.R#2 RandomForest 等について

分類器

未知の物体

かたさ

重さ

ミカン側

リンゴ側

未知の物体がきた.

?

ここから分類器の利用(分類フェーズ)

Page 9: Kashiwa.R#2 RandomForest 等について

分類器

未知の物体

かたさ

重さ

ミカン側

リンゴ側 ?

特徴抽出

特徴量

未知の物体に対して…

?

分類フェーズにおける特徴抽出

分類器の生成時と同じ特徴

「かたさ」「重さ」を測定.

Page 10: Kashiwa.R#2 RandomForest 等について

分類器

未知の物体

かたさ

重さ

ミカン側

リンゴ側

特徴抽出

特徴量

未知の物体に対して…

?

分類

ラベル 分類

分類の結果,

ミカンと推定された.

Page 11: Kashiwa.R#2 RandomForest 等について

人が判定済の物体

ラベル

分類器

ラベル 未知の物体 特徴抽出

特徴抽出

特徴量 学習

特徴量 分類

かたさ

重さ

?

ラベル

教師付き学習と分類

どうやって分類器(決定境界)

を作るのか?

どのような表現(モデル)にするか?

Page 12: Kashiwa.R#2 RandomForest 等について

かたさ

重さ

教師付き学習の例: 最短距離法,[k-]最近傍法

・ 教師データを丸暗記する.

・ 分類対象の果物の近くに位置する果物とする.

・ 「近く」: 距離の定義はいくつかある.

・ 最も近い果物だけ考慮するか(k=1),

近くの k 個の果物から多数決する. ? k = 1 k = 3

k = 9 k = 17

2特徴,3クラス分類の例

Page 13: Kashiwa.R#2 RandomForest 等について

交差検証でbest

k=1 k=3 k=9 k=17

naive Bayes

教師付き学習のアルゴリズムと決定境界

default

k-最近傍法(NN)

SVM (RBF kernel)

Page 14: Kashiwa.R#2 RandomForest 等について

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の質問だった.

Page 15: Kashiwa.R#2 RandomForest 等について

あたった.

Is your character American ? : No

Is your character internationally famous? : No

Is your character a female? : Yes

Is your character famous thanks to television? : No

Is your character from your family? : No

Have you ever fallen in love with your character? : Yes

Have you kissed your character on the lips? : No

Is your character real? : No

Can your character fly? : No

Is your character a singer? : No

Does your character fight? : No

Does your character have a brother or sister? : No

Does your character have long hair? : No

Is your character a High School student? : No

Is your character English? : No

Is your character from a video game? : Yes

Is your character a maid? : Yes

Does your character love spicy food? : No

Is your character blond? : No

Is your character small? : No

雪さん

Page 16: Kashiwa.R#2 RandomForest 等について

Is your character American ? : No

Is your character internationally famous? : No

Is your character a female? : Yes

Is your character famous thanks to television? : No

Is your character from your family? : No

Have you ever fallen in love with your character? : Yes

Have you kissed your character on the lips? : No

Is your character real? : No

Can your character fly? : No

Is your character a singer? : No

Does your character fight? : No

Does your character have a brother or sister? : No

Does your character have long hair? : No

Is your character a High School student? : No

Is your character English? : No

Is your character from a video game? : Yes

Is your character a maid? : Yes

Does your character love spicy food? : No

Is your character blond? : No

Is your character small? : No

末端の場合の数は520通り (86 Ti.95兆).

実際は5分岐

木構造で分類ができる.

分類は速い (N 個のデータ → log N 回の探索).

特徴は数値に限らない(名義尺度等も可).欠測も許容できる.

特徴のスケールや距離尺度にあまり影響されない.

Page 17: Kashiwa.R#2 RandomForest 等について

かたさ

重さ

かたさ

重さ

a

かたさ

重さ b

「かたさ」は a 以下?

START

Yes No

ミカン

「重さ」は b 以下?

Yes No

かたさ

重さ

c

決定木の決定境界は特徴軸に平行な線分となる.

Page 18: Kashiwa.R#2 RandomForest 等について

かたさ

重さ

かたさ

重さ

a

かたさ

重さ b

「かたさ」は a 以下?

START

Yes No

「重さ」は b 以下?

Yes No

かたさ

重さ

「かたさ」は c 以下?

Yes No

c

ミカン

ミカン ゾーン

リンゴ ゾーン1

リンゴ ゾーン2

決定木による分類のようす

Page 19: Kashiwa.R#2 RandomForest 等について

決定木の作り方 (CART の場合)

かたさ

重さ

a 「かたさ」は a 以下?

START

Yes No

かたさ

重さ b

2択式の質問なので,質問

ごとに2つのグループに

分かれる.グループ内には

1種の果物が入るように

したい.もしくは,果物の

比率を偏るようにしたい.

言い換えると

グループを「純粋」にしたい.

P(E): Eの起こる確率

I(E): Eが起きた際に得られる情報量

H: 情報エントロピー

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

質問 b で得られる2群のエントロピーの重み付き平均は

6/20 * 左のエントロピー(0.25) + 14/20 * 右のエントロピー(0.40) = 0.35

質問 a で低下するエントロピー: 0.49-0.34=0.15

質問 b で低下するエントロピー: 0.49-0.35=0.14 → 質問 a の方がいい

N=20

N=16 N=4

N=4

N=16

N=6

N=14

= エントロピー(乱雑さ)を小さくしたい.

Page 20: Kashiwa.R#2 RandomForest 等について

完全に展開した決定木の決定境界

naive Bayes

他の分類器に比べて,木は不器用に見える.→ 分類精度はこのままでは低い.

SVM best k-最近傍法(NN)

k=1 k=3 k=9 k=17

Page 21: Kashiwa.R#2 RandomForest 等について

木から森へ

Page 22: Kashiwa.R#2 RandomForest 等について

集団学習: 複数の学習器 (base learner, weak learner) を組み合わせるアプローチ

base learner は

模範解答全部

でなく乱択した

一部から学ぶ.

互いに異なる

模範解答を用いるので

個性が出る.

bagging

Random Forest (RF)

Bagging + Local RS

模範解答も特徴も乱択.

base learner は CART.

random subspace (RS)

base learnerは特徴全部

でなく,乱択した一部を用いる.

global RS: 学習開始時乱択

local RS: 分岐毎乱択

Extremely Randomized

Trees (Extra Trees)

Local RS か RF に基き,

さらに base learner (決定木)

の枝分かれ位置を乱択で決定.

(CARTでは枝分かれ位置を

網羅的に探索する)

1994

1995

2001 2006

多数決

random

random

図は Global RS

Bagging/tree

Page 23: Kashiwa.R#2 RandomForest 等について

base learner (決定木) の本数と決定境界

Random Forest

Extra Trees

2本 4本 8本 16本 32本 64本

naive Bayes

CART k-最近傍法(NN)

SVM (RBF kernel)

Page 24: Kashiwa.R#2 RandomForest 等について

乱択(ランダムに選択)するもの 教師データ 特徴 枝わかれ位置 Bagging ○ ー ー Random Subspace ー ○ ー Random Forest ○ ○ ー Extra Trees ー / ○ ○ ○

教師データを乱択する利点:

学習しつつ,分類精度や類似度行列を求められる.

特徴を乱択する利点:

学習が速い.学習しつつ,特徴の重要性をスコアリングできる.

枝わかれ位置を乱択する利点:

学習が速い.

base learner に決定木を用いる利点:

分類が速い.特徴のスケーリングや特徴間の関係を無視できる.

決定木と乱択による集団学習アルゴリズムの比較

Page 25: Kashiwa.R#2 RandomForest 等について

RandomForest, ExtraTrees と他手法との比較

サンプル数 特徴数 クラス数 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

20種のベンチマークデータを用いて,各手法の分類精度と所要時間を

交差検定(8-fold)で求め,平均順位を得た.

Page 26: Kashiwa.R#2 RandomForest 等について

優秀

高速

ExtraTrees

SVM RBF

best

Random Forest kNN

SVM linear

default

CART

SVM RBF

default

naive Bayes

MLP/BP

RandomForest, ExtraTrees と他手法との比較

Page 27: Kashiwa.R#2 RandomForest 等について

Iris flower data set

別名: Fisher's Iris data set, Anderson's Iris data set

150サンプル,4次元,3クラス.

アメリカのアヤメ3種(50サンプル/種)の花の形から,種を分類する問題.

Fischerが判別分析の論文(1936)で用いた為,最も有名な多変量データとなった.

特徴量: ガク(sepal)の長さ,ガクの幅,花弁(petal)の長さ,花弁の幅.

I. setosa I. virginica I. versicolor

ヒオウギアヤメ

R では

> iris

とすると表示される.

Page 28: Kashiwa.R#2 RandomForest 等について

R で RandomForest を使う (1. 学習) > iris Sepal.Length Sepal.Width Petal.Length ... Species 1 5.1 3.5 1.4 ... setota : : : : : > library(randomForest) > f1 <- randomForest(formula=Species ~ ., data=iris) > f1 Call: randomForest(formula = Species ~ ., data = iris) Type of random forest: classification Number of trees: 500 No. of variables tried at each split: 2 OOB estimate of error rate: 4% Confusion matrix: setosa versicolor virginica class.error setosa 50 0 0 0.00 versicolor 0 47 3 0.06 virginica 0 3 47 0.06

Page 29: Kashiwa.R#2 RandomForest 等について

R で RandomForest を使う (1. 学習)

> iris Sepal.Length Sepal.Width Petal.Length ... Species 1 5.1 3.5 1.4 ... setota 2 4.9 3.0 1.4 ... setosa : : : : : 149 6.2 3.4 5.4 ...virginica 150 5.9 3.0 5.1 ...virginica > library(randomForest) > iris.f <- randomForest(formula=Species ~ ., data=iris)

Andersen氏が同定した花

種名

分類森 特徴抽出

(by Andersen E)

特徴量 'randomForest'

種名 iris.f

iris (150点,4特徴,3クラス)

Page 30: Kashiwa.R#2 RandomForest 等について

> 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

R で RandomForest を使う (2. 特徴の評価)

Page 31: Kashiwa.R#2 RandomForest 等について

R で RandomForest を使う (3. 未知の花の分類)

ラベル 種名がわからない花 特徴抽出

特徴量

'predict'

> 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

p versicolor

Andersen氏が同定した花

種名

分類森 特徴抽出

(by Andersen E)

特徴量 'randomForest'

種名 iris.f

iris (150点,4特徴,3クラス) I. setosa I. virginica I. versicolor

Page 32: Kashiwa.R#2 RandomForest 等について

開発者のページ.

Department of Statistics

University of California, Berkeley にある.

2004年に最新バージョンが出ている.

すぐにnew versionが出る予定らしい.

FORTRAN77

Leo Breiman (1928-2005)

CART や Bagging も Breiman の仕事.

R の RandomForest パッケージの中心部も Breiman のコードが元になっている.

Page 33: Kashiwa.R#2 RandomForest 等について

まとめ

RandomForest , ExtraTrees について紹介した.

* ユーザーがチューニングすべきところがほとんどない.

* ブラックボックスではない(動作自体は単純).

* 幅広い分類問題に使える.

* 分類以外にも有用な情報が得られる.

* 学習も分類も速い.データ数,特徴数の増加に強い.

…といった良いツールである.とくに R からは手軽に扱える.

発表に盛り込めなかったこと,考えていることなど:

本家以外の実装(R 用にも他に2つくらいありそう).

欠点(メモリを食うとか,統計学的?に解析しにくいとか).

out-of-bag データからの混同行列や特徴スコアリングの仕方.

回帰への利用.

「教師無し」での利用法.クラスタリングやプロトタイピング.

実用的な利用例.

kd-tree やボトムアップなクラスタリング法との比較.