10分でわかる
Random Forest
尾崎安範
Random Forest
 識別問題と回帰問題が一般的に解ける機械学習モデル
 従来手法(SVM)と比べてのメリット
 特徴量の重要度がわかる
 学習にかかる計算量が比較的少なく、分散処理が簡単
 学習とモデルの性能評価が同時にできる
 アルゴリズムがシンプルなのでカスタマイズしやすい
 おすすめの使い方
 がんばって集めた数百~数万個のデータをもとに問題を解いてみたい、
かつ、原因も分析したいときの一手目
Random Forestとは
※識別問題:入力データから離散的な値を推定する問題(e.g., リンゴかミカンかを見分ける問題)
※回帰問題:入力データから連続的な値を推定する問題(e.g., リンゴの糖度を見た目から推定する問題)
・・・
決定木1 決定木2
Random Forestの活用例
 基礎研究よりも応用研究・実務向けで活躍
 応用研究・製品例:Kinectの姿勢推定 [1]
 トップカンファレンスCVPR 2011のベストペーパー
 モーションキャプチャの値段を3000万円から2万円にした
 趣味例:競技系プログラミング( KaggleやTopCoder)
 デフォルトのアルゴリズム扱い。
ほかのアルゴリズムと組み合わせるとつよい (e.g., stacking, blending)
[1] Shotton et al., “Real-Time Human Pose Recognition in Parts from Single Depth
Images”, 2011, CVPR (Best Paper)
[1]より引用
 文字認識を解く実装
識別フェーズ学習フェーズ
機械学習ライブラリ(Scikit-learn)に
よる実装例
Random Forest 学習済Random Forest
0
# -*- coding: utf-8 -*-
#おまじない
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
#データセット読み込み
digits = datasets.load_digits()
#モデル生成
classifier = RandomForestClassifier()
#学習フェーズ
classifier.fit(digits.data,digits.target)
#識別フェーズ
result = classifier.predict(digits.data[0])
print result http://scikit-learn.org/0.11/auto_examples/plot_digits_classification.htmlより図を引用
Random Forestのアルゴリズム概要:
識別問題編
 学習フェーズ
 たくさんの決定木をそれぞれにランダム要素を入れて作る
 決定木:if文っぽく識別問題を解くモデル
 例:文字認識の決定木 (特徴量はあくまでイメージです)
Random Forest
・・・
決定木1 決定木2
丸の数≧2 丸の数<2
細長い=はい
8
1
細長い=いいえ
4
Random Forestのアルゴリズム概要:識
別問題編
 識別フェーズ
 各決定木に入力データを入れて、多数決をとる
学習済みRandom Forest
決定木1 決定木2
0
0 6
多数決
決定木3
0
まとめ
 Random Forest
 識別問題と回帰問題が一般的に解ける機械学習モデル
 画像認識以外にも自然言語処理などにも使えます
 詳しい使い方は相談ください
 うまく使うには前処理やパラメータ調整などの
ノウハウが必要となります
Random Forest
・・・
決定木1 決定木2
参考文献
[1] Leo Breiman, “Random Forest”,
http://link.springer.com/article/10.1023%2FA%3A101093340
4324
[2] 藤吉弘亘, “CVIMチュートリアル”,
http://www.vision.cs.chubu.ac.jp/CVTutorial/PDF/04Rando
mForests.pdf
おまけ
どんなやつがかいてるのこの文章
 尾崎安範
 某民間研究所
 専門はロボットによるマルチモーダル・インタラクション
 Random Forest歴:3年
主観と偏見に満ちた
各アルゴリズムのメリット・デメリット
Random
Forest
非線形SVM ディープラーニング
(多層CNN+全結合層)
汎化能力 ○ ○ ○○○
前処理の手間 △ × △
学習時間 ○ △ ×
原因分析しやすさ ○ ×× ×
認識時間 ○ ○ △
少量のサンプルで学習可 △ △ ×× (最低数万、
できれば数千万)
パラメータ調整が楽 △ × ××(黒魔術)

10分でわかるRandom forest