deep forest

18
Deep Forest ~ ニニニニニニニニニニニニニニニニ ~ ニニ ニニ

Upload: naoto-moriyama

Post on 05-Apr-2017

1.866 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Deep forest

Deep Forest~ニューラルネットの代替えに向けて~

森山 直人

Page 2: Deep forest

自己紹介• 森山 直人(もりやま なおと)

• もともと中国国籍 ⇒ 帰化 (国籍変更 )して日本人に

• 趣味で pythonを始める(仕事はエンジニアではない)

• 勢いでディープラーニング始める(自然言語)

• 趣味で Kaggleやってます

Page 3: Deep forest

おことわり

• すべて個人の見解による内容であり、所属会社、団体の公式見解ではありません

• 概念理解を優先しているため、一部厳密の定義は割愛しています

Page 4: Deep forest

今日話すこと

Deep forestという論文が界隈で注目され、論文に込められた並々ならぬ情熱に感銘を受け、(論文通りに動くのなら)機械学習界隈に大きなインパクトをもたらす可能性を感じた

Deep Forest: Towards An Alternative to Deep Neural Networks https://arxiv.org/pdf/1702.08835.pdf

Page 5: Deep forest

論文のサマリ

ニューラルネットと同等な計算精度を持つアンサンブル決定木モデルを用いて、ニューラルネットの代替えを提案

•パラメータ調整の簡易化がもたらす計算速度

• GPUリソースを必要としない低リソース•木構造の性質である簡易な並列化

•小規模なデータから効率よく学習可能

Page 6: Deep forest

事前知識 -決定木関連決定木  -規則を設けて識別境界を設ける

アンサンブル学習  -複数の決定木の結果を合わせて識別器を作る

バギング  -複数の識別器の結果から多数決で出力を決める

ランダムフォレスト  -バギングに制限を設けて分散を抑える

この本がわかりやすいです

Page 7: Deep forest

事前知識 -ニューラルネットワーク

入力層

中間層

出力層

中間層(隠れ層)をもつ全結合の有向グラフ

■強み• 単調な非線形表現を積み重なることで、複雑な非線形表現(合成関数)を獲得

• パターン認識問題が得意

■弱み• 現在のデータだけでなく、過去の情報が必要な問題は苦手

• 初期に学習された情報は忘れてしまう

Page 8: Deep forest

ニューラルネットのココがだめ

• 大量なデータがないと精度が出ない• ↑このデータを作るコストが高い• 大量な計算資源を要する• パラメータが多く、そのチューニングが大変• 人の手を介さずに特徴を抽出できるのが利点と言われるが、実際のところかなり細かいチューニングが必要

• 論理的な理解が難しい

Page 9: Deep forest

gcForestのココが素晴らしい※gcForestは本論文が提案するアンサンブル決定木モデル

• 少量なデータで学習できる

• パラメータが少なく、チューニングが簡易

• CPUのみの gcForestと GPUありのニューラルネットの計算速度が互角

• 論理解析が簡単

Page 10: Deep forest

以降 gcForestの概念を論文に沿って説明して行きます

Page 11: Deep forest

gcForestの概念• gcForestはmulti-Grained Cascade forestの略• Cascadeはこんなイメージ

上流から下流へたくさんの段を構成し情報が流れる

写真では不変な水が流れるが、本モデルでは段ごとにそれぞれ計算がなされる

http://www.geocities.jp/emkj20002000/newpage53.htmlより引用

Page 12: Deep forest

Cascade forest3クラス分類の問題を gcForestで解くケースを例を考える

https://arxiv.org/pdf/1702.08835.pdf

Page 13: Deep forest

Cascade forest①学習データ入力

②前ページのような複数の cascade

(段 )を構築

③各段ではそれぞれ決定木と ランダムフォレストの2種類の 分類器を設ける

④出力段では3クラスそれぞれの 確率を出力

https://arxiv.org/pdf/1702.08835.pdf

Page 14: Deep forest

Cascade forest一つの段の中で起きている計算は下記のようになる

https://arxiv.org/pdf/1702.08835.pdf

①それぞれの決定器(ランダムフォレストで計算を行い、出力クラスの推定を行う

②最終出力では全てのフォレストの出力の平均を取る

※学習時には、過学習を防ぐためのクロスバリデーションは行われる

Page 15: Deep forest

Multi-Grained ScanningRNN(LSTM)の入力ミニバッチと CNNの畳込み概念を用いて学習データから特徴量の抽出を行うことでさらに近い性能を引き出す

①時系列データを一定区間ごとにずらしてミニバッチを作る。(どちらかと言えばword2vecに近い)

②おなじみの CNNプーリング

Page 16: Deep forest

gcForestの処理流れ

①Multi-Grained Scanningで前処理 ここでは 3種類のプーリングを合算 ②Cascade forestで出力計算

Page 17: Deep forest

ベンチマークMNISTの画像分類 ORLデータセットの顔認識

GTZANデータセットの音楽分類 生体データ(手の動き)認証

その他多数あり

Page 18: Deep forest

まとめ• 決定木ベースのアンサンブル学習であるランダムフォレストを更に多層(段)で構築した gcForestを紹介した

• 著者のニューラルネットへの代替えに対する情熱が凄まじく、理論的に可能であることも感覚的に理解できる

• 利便性と低リソース観点から、 XGBoostに次ぐ学習器として期待できそう(個人感)

• Pythonか Rで実装できたら Kaggleで流行ると思われる