Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データ分析・機械学習OSSの新潮流とその活用

 データ分析・機械学習OSSの新潮流とその活用

2月2日に開催された「情報処理学会・ソフトウェアジャパン2018・ITフォーラムセッション・ビッグデータ活用実務フォーラム」の資料。

https://www.ipsj.or.jp/event/sj/sj2018/ITF_Bigdata.html

Shinichi Takayanagi

February 02, 2018
Tweet

More Decks by Shinichi Takayanagi

Other Decks in Technology

Transcript

  1. TensorFlow •Dataflow Graph(DFG)による機械学習ライブラリ •Dataflowグラフを作って、その後計算(Define and Run) • 即時実行(eager execution)の機能も…(v1.5~) •TensorFlowの上に載っているライブラリが、逆に

    TensorFlowから叩ける方向に • Edward(確率的プログラミング) https://discourse.edwardlib.org/t/edward-is-officially-moving-into-tensorflow/387 • Keras(Deep Learning)
  2. Stan •確率的プログラミング言語 • データに確率モデルを当てはめる • Domain Specific Language (ドメイン特化言語) •HMCベースの推定

    • Hamiltonian Monte Carlo ※その中でもNo-U-Turn Samplerを使用 •事後分布からのモデルパラ メータのサンプリングが可能 •ビジネスに必要な統計モデリ ングを行える 単回帰モデルの例
  3. Prophet •テストデータに対する予測モデル構築 •prophet()にデータを食わせるだけ > tail(df) # A tibble: 6 x

    2 ds y <date> <dbl> 1 2014-05-22 60.52 2 2014-05-23 61.35 3 2014-05-27 63.48 4 2014-05-28 63.51 5 2014-05-29 63.83 6 2014-05-30 63.30
  4. Prophet • version 0.2以降の新機能 • ここからが日本語情報として新しい • 時系列に対する予測精度検証機能の追加 • Simulated

    Historical Forecast/Cross Validation • version 0.3ではMAE等の指標計算も追加(現在開発中) # A tibble: 6 x 6 ds y yhat yhat_lower yhat_upper cutoff <dttm> <dbl> <dbl> <dbl> <dbl> <dttm> 1 2014-05-22 60.52 57.32036 53.94323 60.50448 2014-05-21 2 2014-05-23 61.35 57.38214 54.24548 60.61913 2014-05-22 3 2014-05-27 63.48 56.58093 53.35988 59.91789 2014-05-26 4 2014-05-28 63.51 57.19061 54.08438 60.61684 2014-05-27 5 2014-05-29 63.83 57.90791 54.37177 61.32794 2014-05-28 6 2014-05-30 63.30 58.28859 55.04133 61.55597 2014-05-29
  5. LIME • KDD2016にて公表された以下の論文 • "Why Should I Trust You?": Explaining

    the Predictions of Any Classifier, Marco Tulio Ribeiro, Sameer Singh, Carlos Guestrin • Local Interpretable Model-agnostic Explanations • モデルフリーに局所的に(複雑な)モデルを解釈する手法 • LIMEにより各説明変数の寄与が読める・意思決定に資する http://www.kdd.org/kdd2016/papers/files/rfp0573-ribeiroA.pdf より
  6. LIME •lime()にデータとモデルを食わせる •explain()で指定したデータの局所解釈を作成 • glmnet(L1+L2なロジスティック回帰)で説明 case label feature feature_weight feature_desc

    data 1 116 virginica Sepal.Length 0.0095341177 5.8 < Sepal.Length <= 6.4 6.4, 3.2, 5.3, 2.3, 3.0 2 116 virginica Petal.Length 0.4583012101 5.10 < Petal.Length 6.4, 3.2, 5.3, 2.3, 3.0 3 36 setosa Species 0.0008123117 Species = setosa 5.0, 3.2, 1.2, 0.2, 1.0 4 36 setosa Petal.Length 0.4377915136 Petal.Length <= 1.60 5.0, 3.2, 1.2, 0.2, 1.0 5 4 setosa Sepal.Width -0.0010979380 3.0 < Sepal.Width <= 3.3 4.6, 3.1, 1.5, 0.2, 1.0 6 4 setosa Petal.Length 0.4591607286 Petal.Length <= 1.60 4.6, 3.1, 1.5, 0.2, 1.0 7 111 virginica Species 0.0042950996 Species = virginica 6.5, 3.2, 5.1, 2.0, 3.0 8 111 virginica Petal.Width 0.4008624393 1.8 < Petal.Width 6.5, 3.2, 5.1, 2.0, 3.0 9 37 setosa Sepal.Length 0.0097798516 5.1 < Sepal.Length <= 5.8 5.5, 3.5, 1.3, 0.2, 1.0 10 37 setosa Petal.Length 0.4625155191 Petal.Length <= 1.60 5.5, 3.5, 1.3, 0.2, 1.0
  7. まとめ •OSSの新潮流とその活用について簡単に紹介 • TensorFlow/Stan/scikit-learn • Prophet • Lime •道具(TOOL)は揃ってきている •

    これらを活用して何をやるかが重要 (…という話をパネルディスカッションするんだと思っています) 29
  8. その他(動向を見ておきたい) • Rust • サードパーティー製のライブラリがある程度 • https://github.com/AtheMathmo/rusty-machine • https://github.com/sebcrozet/nalgebra •

    Go • https://github.com/gonum/gonum • https://github.com/sjwhitworth/golearn • Facebook Research • https://github.com/facebookresearch • Facebook • https://github.com/facebook