Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~

10,740 views

Published on

PFNの丸山宏がソフトウェア科学会 第20回プログラミングおよびプログラミング言語ワークショップ(PPL2018) で行った招待講演「演繹から帰納へ~新しいシステム開発パラダイム~」のスライドです。

Published in: Technology

20180305_ppl2018_演繹から帰納へ~新しいシステム開発パラダイム~

  1. 1. 演繹から帰納へ ~新しいシステム開発パラダイム~ 3/5, 2018 Preferred Networks, 丸山 宏 PPL2018招待講演
  2. 2. 自己紹介:  1983 東京工業大学修士課程修了 – (米澤明憲先生の下で)論理型言語、自然言語処理  1983-2009 日本IBM東京基礎研究所 – 形式言語理論、構文解析、全文検索、手書き文字認識 – 分散処理(XML、Webサービス) – セキュリティ いわゆるコン ピュータサイ エンス 統計・ 機械学習  2011-2016 統計数理研究所 — 統計モデリング、ビッグデータ解析  2016年4月: 株式会社Preferred Networks — 深層学習
  3. 3. 人工知能とは「CSを進化させる営み」 1956-1974 第1次人工知能ブーム • 記号処理 (LISP) • Means-End Analysis • 自然言語処理 1980-1987 第2次人工知能ブーム • 知識表現 (e.g. フレーム) • エキスパートシステム • オントロジー 2008 第3次人工知能ブーム • 統計的機械学習・深層学習 - 動的メモリ管理 - 探索アルゴリズム - 形式言語理論 - : - オブジェクト指向 - モデリング言語 - セマンティックWeb - : 帰納的システム開発 (機械学習工学) 「人工知能」技術はコアのCSへ コンピュータサ イエンティスト から見ると
  4. 4. Software 2.0? https://petewarden.com/2017/11/13/deep-learning-is-eating-software/
  5. 5. 深層学習とは何か – (状態を持たない*)関数 Y = f(X)X Y 超多次元、(連 続変数・カテゴ リ変数の任意の 組み合わせ) 判別・制御なら ば比較的低次元、 生成ならば超多 次元 *推論時にパラメタ更新を行うオンライン学習についてはこの限りでない
  6. 6. 普通の関数の作り方: 例 摂氏から華氏への変換 double c2f(double c) { return 1.8*c + 32.0; } 入力: C 出力: F ただし、FはCを華氏で表したもの 仕様 アルゴリズム F = 1.8 * C + 32モデル 人が持つ 先験的知識 モデルが既知/アルゴリズムが構成可能である必要
  7. 7. 深層学習のやり方 – 訓練データを用いる 訓練データセット 観測 訓練(ほぼ自動でパラメタθを決定)
  8. 8. 機械学習(=統計モデリング)すると… モデル: 線形回帰式 モデル・アルゴリズムが未知でよい
  9. 9. 機械学習における、モデル選択の重要性 過学習に陥らずに、適切なモデルを選ぶには? この訓練データ をよく再現する モデルは? パラメタが多す ぎると過学習に
  10. 10. 先ほどの例を深層学習で訓練してみると… … … 出力Y 入力X 2層10ノード の中間層 合計141個の パラメタ 程よい近似 各ノードの入力は線 形結合。活性化関数 はランプ関数 ロス関数は平均2乗 誤差。これを逆伝搬 することで学習 モデルの形によらず(あまり)過学習しない!
  11. 11. 汎用計算機構としての深層学習  桁違いに多いパラメタ – 任意の多次元非線形関数を近似可能*  疑似的にチューリング完全! 出力(超多次元) 入力(超多次元) * G. Cybenko. Approximations by superpositions of sigmoidal functions. Mathematics of Control, Signals, and Systems, 2(4):303–314, 1989.
  12. 12. 訓練はどのように動くか (Facebook Yann LeCunによる動画) https://code.facebook.com/pages/1902086376686983
  13. 13. 自動運転のためのセグメンテーション https://www.youtube.com/watch?v=lGOjchGdVQs モデルが不明:人手による正解アノテーション(1)
  14. 14. ロボットビジョン: Amazon Picking Challenge 2016 2nd Place in the Picking Task モデルが不明:人手による正解アノテーション(2)
  15. 15. 音声によるロボットのコントロール モデルが不明:人手による正解アノテーション(3)
  16. 16. Consumer Electronics Show (CES) 2016 CESにおける自動運転デモ アルゴリズムが不明:逆問題として定式化(1)
  17. 17. 強化学習によるシステム開発 https://research.preferred.jp/2015/06/distributed-deep-reinforcement-learning/
  18. 18. 線画への自動着色アプリPaintsChainer アルゴリズムが不明:逆問題として定式化(2)
  19. 19. 統計的機械学習の本質的限界 (1) 訓練データ モデル 将来が過去と同じでないと正しく予測できない 時間軸 過去に観測されたデー タに基づいて訓練 訓練 訓練済みモデルに基いて 新しい値を予測
  20. 20. 統計的機械学習の本質的限界 (2)  訓練データに現れない、希少な事象に対して無力 訓練データセット 内挿 外挿 ?? 機械学習はひらめかない、臨機応変な対応をしない
  21. 21. 統計的機械学習の本質的限界 (3)  本質的に確率的 元分布 独立・同分布(i.i.d.) 訓練データ 学習済みモデル サンプリングに バイアスが入る ことは避けられ ない!
  22. 22. 深層学習とは何か(まとめ)  関数(プログラム)の作り方 – 演繹でなくて帰納  モデルやアルゴリズムがわからなくても、訓練データセットがあれば 作れる – 教師信号の与え方次第で、驚くようなことが…  本質的に統計モデリング – 元分布が独立・同分布であることが前提 – 近似しかできない(バイアスが入ることを避けられない)
  23. 23. 新しいプログラミングパラダイムとしての 深層機械学習
  24. 24. 典型的な機械学習応用システム 収集 前処理 訓練 推論 前処理 入力 正解データ 出力 訓練済みモデル生データ 収集 訓練データ 入力 推論パイプライン 訓練パイプライン
  25. 25. 訓練誤差と汎化誤差 未学習領域 • モデルの複雑 さが 足りない 過学習領域 • モデルを簡単化する • 汎化テクニックを使う • 訓練データを増やす Daniel Beckstein, “Practical Methodology”, Chapter 11 of Goodfellow, I., Bengio, Y., Courville, A., Deep Learning, MIT Press, 2016. 汎化誤差 訓練誤差
  26. 26. Assessment PoC Pilot Deployment Maintenance • お客様の理解度 • ビジネス目標 • 機械学習への適 合度 • データの入手可 能性 : • データの量・ 品質は足りて いるか • 期待する精度 が達成できそ うか : • ビジネスプロセ スへの組み込み はうまくいった か • ビジネス目標は 達成できたか : CP1 CP2 CP3 CP4 • 性能の監視 • データ・ドリ フトの監視 : 典型的なシステム構築サイクル より探索的
  27. 27. 課題(1)品質: 機械学習システムは、高金利クレジット! • CACE (Changing Anything Changes Everything) 原理 – すべてが絡み合っている https://static.googleusercontent.com/media/rese arch.google.com/en//pubs/archive/43146.pdf • どのArtifactも推論の精度に影響を与える。 しかし、個別に正しさを保証することは困難
  28. 28. 深層学習におけるテスト: データの分割と、漏れ データ セット 訓練用データ 汎化性能テスト 用データ 評価用データ 評価 訓練 訓練済みモデルX 評価用データの情 報が、訓練に使わ れてはならない
  29. 29. 確率的なシステムに対する社会受容? Wall Street Journal, 7/7, 2016 http://jp.wsj.com/articles/SB11860788629023424577004582173882125060236 テスラの事故 ただし… V字開発をすれば100%安全なのか? 出典:Wikipedia
  30. 30. 典型的なバグ密度(アセンブラ相当1,000行あたりのバグ 数) http://www.softrel.com/Current%20defect%20density%20statistics.pdf
  31. 31. 品質指標 – 多くの場合プロセス品質指標 http://www.ipa.go.jp/files/000028859.pdf この車の安全性は? 例: どのくらいレビュー に時間を割いたか?
  32. 32. 第3者による客観的な品質指標の可能性 非公開の評価用データ 自動化された、第3者による評価 評価 評価結果のみ を返す この車の安全性は?
  33. 33. 課題(2)再利用:訓練済みモデルの再利用パターン 同タスク 新タスク 同タスク 2. Fine Tuning White box再利用 1. Copy : 4. Distillation Black box再利用 同タスク 3. Ensemble 元モデルをそのまま使う NNの一部あるいは全部を再利用、 新たな訓練データを加えて、似た 領域の異なるタスクに利用する 元モデルを教師として、新 たなモデルを訓練する 複数の元モデルの出力を組 み合わせて精度を向上させ る
  34. 34. 訓練済みモデルフォーマットの標準化(1) 訓練 https://www.khronos.org/nnef 推論
  35. 35. 訓練済みモデルフォーマットの標準化(2): ONNX message ModelProto { optional int64 ir_version = 1; : optional GraphProto graph = 7; }; message GraphProto { repeated NodeProto node = 1; optional string name = 2; repeated TensorProto initializer = 5; optional string doc_string = 10; repeated ValueInfoProto input = 11; repeated ValueInfoProto output = 12; repeated ValueInfoProto value_info = 13; } message TensorProto { repeated int64 dims = 1; optional DataType data_type = 2; optional Segment segment = 3; repeated float float_data = 4 [packed = true]; : optional string name = 8; } message NodeProto { repeated string input = 1; repeated string output = 2; optional string name = 3; optional string op_type = 4; repeated AttributeProto attribute = 5; optional string doc_string = 6; } Node Tensor Tensor
  36. 36. 課題(3)アーキテクチャ・パターン: モデルベース開発か、モデルフリー開発か? モデルベース開発 (演繹的) モデルフリー開発 (帰納的) • モデルがよく知られている • モデルを明快に書き下せる • モデルと現実世界のギャッ プが小さい • モデルは時間とともに(あ まり)変化しない • 教師信号がない • モデルが不明 • モデルを書き下せない • モデルと現実世界の ギャップが大きい • モデルは時間とともに大 きく変化する • 教師信号が得られる 適材適所
  37. 37. B-TreeをDeep Learningに置き換える https://www.arxiv-vanity.com/papers/1712.01208v1/ Keyから アドレス の予測 予測モデル をDNNに置 き換え
  38. 38. AlphaGoは離散的な木探索とDLの融合 Silver, David, et al. "Mastering the game of Go with deep neural networks and tree search." nature 529.7587 (2016): 484-489.
  39. 39. 難しい問題の解法:非決定的探索問題としての定式化 探索オラクル NP困難問題に対する新しいアーキテクチャ・パターン
  40. 40. 課題(4): PPLコミュニティの方に考えていただきたいこと 1. 多次元の “Shape” を対象とした型システム 2. 機械学習システムの訓練速度、推論精度、推論速度、モニタリングなど クロスカッティング・コンサーンを表現できるプログラミング
  41. 41. 2/27「機械学習・ディープラーニングでPythonを使う嬉しさ とツラミを分かちあう会」でのPFN酒井さんのプレゼン https://www.slideshare.net/sakai/mlxse20180227-python
  42. 42. https://www.slideshare.net/sakai/mlxse20180227-python
  43. 43. https://www.slideshare.net/sakai/mlxse20180227-python
  44. 44. https://www.slideshare.net/sakai/mlxse20180227-python
  45. 45. “Programming by Optimization” の考え方 パラメト リックな ソース Weaving ドメイン依存 の入力分布 最適化ツール Hoos, Holger H. "Programming by optimization." Communications of the ACM 55.2 (2012): 70-80. ドメイン依存のパフォーマンスをクロ スカッティングコンサーンとしたアス ペクト指向??
  46. 46. “Instrumentation” の重要性 概念ドリフトの モニタリング 推論精度の モニタリング 訓練ハイパーパ ラメタの設定 前処理パラメタ の設定 「推論精度」「学習速度」「モニタリ ング」などをクロスカッティング・コ ンサーンとするWeaving??
  47. 47. 終わりに:AI人材不足論 7/31/2017 MONOist http://monoist.atmarkit.co.jp/mn/articles/1707/31/news037.html
  48. 48. いつか来た道:ソフトウェア危機 (1960年代)  ソフトウェア工学の夜明け
  49. 49. ソフトウェア科学会「機械学習工学研究会」が発足します!! ソフトウェア科学会 機械学習工学研究会 5/17、学士会館にて キックオフシンポジウム開催!
  50. 50. Thank You

×