Download - Deep forest
Deep Forest~ニューラルネットの代替えに向けて~
森山 直人
自己紹介• 森山 直人(もりやま なおと)
• もともと中国国籍 ⇒ 帰化 (国籍変更 )して日本人に
• 趣味で pythonを始める(仕事はエンジニアではない)
• 勢いでディープラーニング始める(自然言語)
• 趣味で Kaggleやってます
おことわり
• すべて個人の見解による内容であり、所属会社、団体の公式見解ではありません
• 概念理解を優先しているため、一部厳密の定義は割愛しています
今日話すこと
Deep forestという論文が界隈で注目され、論文に込められた並々ならぬ情熱に感銘を受け、(論文通りに動くのなら)機械学習界隈に大きなインパクトをもたらす可能性を感じた
Deep Forest: Towards An Alternative to Deep Neural Networks https://arxiv.org/pdf/1702.08835.pdf
論文のサマリ
ニューラルネットと同等な計算精度を持つアンサンブル決定木モデルを用いて、ニューラルネットの代替えを提案
•パラメータ調整の簡易化がもたらす計算速度
• GPUリソースを必要としない低リソース•木構造の性質である簡易な並列化
•小規模なデータから効率よく学習可能
事前知識 -決定木関連決定木 -規則を設けて識別境界を設ける
アンサンブル学習 -複数の決定木の結果を合わせて識別器を作る
バギング -複数の識別器の結果から多数決で出力を決める
ランダムフォレスト -バギングに制限を設けて分散を抑える
この本がわかりやすいです
事前知識 -ニューラルネットワーク
入力層
中間層
出力層
中間層(隠れ層)をもつ全結合の有向グラフ
■強み• 単調な非線形表現を積み重なることで、複雑な非線形表現(合成関数)を獲得
• パターン認識問題が得意
■弱み• 現在のデータだけでなく、過去の情報が必要な問題は苦手
• 初期に学習された情報は忘れてしまう
ニューラルネットのココがだめ
• 大量なデータがないと精度が出ない• ↑このデータを作るコストが高い• 大量な計算資源を要する• パラメータが多く、そのチューニングが大変• 人の手を介さずに特徴を抽出できるのが利点と言われるが、実際のところかなり細かいチューニングが必要
• 論理的な理解が難しい
gcForestのココが素晴らしい※gcForestは本論文が提案するアンサンブル決定木モデル
• 少量なデータで学習できる
• パラメータが少なく、チューニングが簡易
• CPUのみの gcForestと GPUありのニューラルネットの計算速度が互角
• 論理解析が簡単
以降 gcForestの概念を論文に沿って説明して行きます
gcForestの概念• gcForestはmulti-Grained Cascade forestの略• Cascadeはこんなイメージ
上流から下流へたくさんの段を構成し情報が流れる
写真では不変な水が流れるが、本モデルでは段ごとにそれぞれ計算がなされる
http://www.geocities.jp/emkj20002000/newpage53.htmlより引用
Cascade forest3クラス分類の問題を gcForestで解くケースを例を考える
https://arxiv.org/pdf/1702.08835.pdf
Cascade forest①学習データ入力
②前ページのような複数の cascade
(段 )を構築
③各段ではそれぞれ決定木と ランダムフォレストの2種類の 分類器を設ける
④出力段では3クラスそれぞれの 確率を出力
https://arxiv.org/pdf/1702.08835.pdf
Cascade forest一つの段の中で起きている計算は下記のようになる
https://arxiv.org/pdf/1702.08835.pdf
①それぞれの決定器(ランダムフォレストで計算を行い、出力クラスの推定を行う
②最終出力では全てのフォレストの出力の平均を取る
※学習時には、過学習を防ぐためのクロスバリデーションは行われる
Multi-Grained ScanningRNN(LSTM)の入力ミニバッチと CNNの畳込み概念を用いて学習データから特徴量の抽出を行うことでさらに近い性能を引き出す
①時系列データを一定区間ごとにずらしてミニバッチを作る。(どちらかと言えばword2vecに近い)
②おなじみの CNNプーリング
gcForestの処理流れ
①Multi-Grained Scanningで前処理 ここでは 3種類のプーリングを合算 ②Cascade forestで出力計算
ベンチマークMNISTの画像分類 ORLデータセットの顔認識
GTZANデータセットの音楽分類 生体データ(手の動き)認証
その他多数あり
まとめ• 決定木ベースのアンサンブル学習であるランダムフォレストを更に多層(段)で構築した gcForestを紹介した
• 著者のニューラルネットへの代替えに対する情熱が凄まじく、理論的に可能であることも感覚的に理解できる
• 利便性と低リソース観点から、 XGBoostに次ぐ学習器として期待できそう(個人感)
• Pythonか Rで実装できたら Kaggleで流行ると思われる