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.

機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)

897 views

Published on

鷲崎弘宜, 機械学習とデータ駆動システム&ソフトウェアエンジニアリング, 組込みシステムシンポジウム ESS2018 招待講演 2018年8月30日 - Cynefin, AI-SEAL・自動化レベル・, RAISE研究動向, ML品質保証技術整理, メタモルフィックテスティング, MLアーキテクチャ, 機械「教育」, GQM+Strategies

Published in: Software
  • Be the first to comment

  • Be the first to like this

機械学習エンジニアリング・品質保証 (ESS2018招待講演 鷲崎弘宜)

  1. 1. 機械学習とデータ駆動システム &ソフトウェアエンジニアリング 鷲崎 弘宜 早稲田大学グローバルソフトウェアエンジニアリング研究所 所長 国立情報学研究所 客員教授 システム情報 取締役(監査等委員) エクスモーション 社外取締役 Twitter: @Hiro_Washi washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/ 組込みシステムシンポジウム ESS2018 招待講演 2018年8月30日
  2. 2. 目次 • 機械学習によるパラダイム転換と体系 • 機械学習ベースエンジニアリング事例 • 機械学習の適用における品質の確保 • まとめ+ご紹介 2
  3. 3. Volvoの場合(発話・地図データを除く)[Bosch18] 3 Jan Bosch, Why Digitalization Will Kill Your (Software) Company Too, ICSE 2018 Industry Forum 1.5 4.9 10.9 18.6 20.6 117.5 97 917 0 100 200 300 400 500 600 700 800 900 1000 S80/1998 XC90/2002 S80/2006 V70/2007 XC60/2008 V60/2011 V40/2012 SPA/2014 MB ダウンロード可能なソフトウェアサイズ
  4. 4. 機械学習適用の背景 • 要求や環境の変化の速さ、多様さ • 境界や問題のオープン化 • 複雑さ、不確実性の増大 • ビッグデータ • GPU、オープンFW • アジャイル、DevOps、UX 4 機械学習 データ プロセス 実行プロダクト
  5. 5. Cynefin フレームワーク [Forsyth14][中谷16] 解法 既知 Known 解法 未知 Unknown 問題複雑 Complex 問題単純 Simple Emergent 突発・創発 Best practice ベストプラクティス Good practice グッドプラクティス New 新規(の研究) 機械学習のよくある適用 参考: 中谷多哉子, “要求工学”, 日科技連SQiP研究会2016年1月 参考: Brad Forsyth, Which Parts of Your Business are Complex and Which are just Complicated? 2014 https://www.linkedin.com/pulse/20140627164952-26162172-which-parts-of-your-business-are-complex-and-which-are-just-complicated 本来期待される場所
  6. 6. 機械学習によるパラダイム転換 6 目標 学習データ 学習済み モデル 活動 / システム(動作) 目標 モデル 活動 / システム(動作) データ 従来のエンジニアリング: 演繹的(モデルが最初に与えられる) 機械学習ベース: 帰納的(モデル・アルゴリズムがデータで決まる) プロセス 実行プロダクト 機械学習ベース・データ駆動エンジニアリング 機械学習システム 参考: 丸山 宏, 機械学習工学に向けて, JST機械学習型システム開発へのパラダイム転換, 2017
  7. 7. AI in SE Application Levels (AI-SEAL)[Feldt18] 7 Robert Feldt, et al., Ways of Applying Artificial Intelligence in Software Engineering, CoRR abs/1802.02033 (2018) 7. 自動意思 決定・実装・ 通知 10. 必要と判断し 初めて自動意思 決定・実装・通知 プロセス 自動化 レベル 適用対象 プロダクト 実行 低リスク 高リスク 中リスク 1. 人手による 代替候補群の 検討 4. 代替候補 群と一つの案 を自動推薦
  8. 8. アルゴリズムの分類(部族)[Domingos15] • 記号 Symbolist: 逆推論など • 結合 Connectionist: 逆伝搬など • 進化 Evolutionist: 遺伝的プログラミングなど • ベイズ Bayesians: 確率的推論など • 類推 Analogizer: パターン認識など 8 P. Domingos, “The master algorithm: How the quest for the ultimate learning machine will remake our world”, Basic Books, 2015
  9. 9. RAISE’15-16研究動向[Feldt18] 9 1. 人手による 代替候補群の 検討 4. 代替候補 群と一つの案 を自動推薦 7. 自動意思 決定・実行・ 通知 10. 必要と判断し 初めて自動意思 決定・実行・通知 プロセス 自動化 レベル 適用対象 プロダクト 実行時 類推 記号 進化 Robert Feldt, et al., Ways of Applying Artificial Intelligence in Software Engineering, CoRR abs/1802.02033 (2018) RAISE: International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering
  10. 10. 目次 • 機械学習によるパラダイム転換と体系 • 機械学習ベースエンジニアリング事例 • 機械学習の適用における品質の確保 • まとめ+ご紹介 10
  11. 11. 機械学習ベース・エンジニアリング 11 目標 学習データ 学習済み モデル 活動(戦略) 要求 定義 設計 実装 テスト ・品質 運用 体制 企画 2.データ駆動 ペルソナ 3. デザイン パターン検出 4. 品質測定 評価 1. チーム構成 画像: ぱくたそ
  12. 12. 1. 体制・企画: チーム構成 [TETC’16] • 難しさ: 多様なメンバ・活動の存在、最適構成不明 • 取組み: 個人特性(Five Factor Stress)と効果のデータ 化、5年蓄積、決定木によるチーム構成学習 12Y. Sunaga, H. Washizaki, et al., “Relation between Combinations of Personal Characteristic Types and Educational Effectiveness for a Controlled Project-based Learning Course,” IEEE Transactions on Emerging Topics in Computing 5(1) 2016 T L M A 個 人 学 習 効 果
  13. 13. チーム構成(つづき)[TETC’16] • 個人特性の「組み合わせ」「偏り」が学習にもたらす影響特定 • 国内外への展開: ニューヨーク州立大学オスウェゴほか 13 M有,T有, L無 その他 チーム 学習 効果 Y. Sunaga, H. Washizaki, et al., “Relation between Combinations of Personal Characteristic Types and Educational Effectiveness for a Controlled Project-based Learning Course,” IEEE Transactions on Emerging Topics in Computing 5(1) 2016
  14. 14. 2. 要求: データ駆動ペルソナ [ICSE’18] 14Y. Watanabe, H. Washizaki, et al., Retrospective based on Data-Driven Persona Significance in B-to-B Software Development, ICSE 2018 NIER QAQAQA 自然言語処理 +機械学習 アンケート回答 ユーザの 行動ログ インタビュー (定性調査) 専門家 データ駆動ペルソナ (従来の)ペルソナ 田中 25歳 男 会社員 システム に習熟 佐藤 25歳 女 会社員 システム 不慣れ • 難しさ: 様々かつ変化する状況下での正しいユーザ像と要求把握 • 取組み: 自然言語処理+クラスタリングによるユーザ像の導出 ユーザ側と開発側の突き合せによるデータに基づく振り返り 画像: ぱくたそ
  15. 15. データ駆動ペルソナ(つづき)[ICSE’18] 15Y. Watanabe, H. Washizaki, et al., Retrospective based on Data-Driven Persona Significance in B-to-B Software Development, ACM/IEEE 40th International Conference on Software Engineering 2018 NIER 売買 営業: 物件参照 顧客開拓 行動ログ ペルソナ例 ターゲット となったユーザ ① Pa Pb Pc ペルソナ リリース 1 2 3 ペルソナの 重視度 ③ サービス死角 ・重視されない ペルソナの特定 s 単なるバグ修正 ・全体的に重視度低 ・特定の目的ユーザが いない → リリース目的の特定 • 不動産業務の支援システムのリリース振り返り トピックモデル+ クラスタリング tx ty tz 1 2 F1 F3F3 F3 リリース トピックモデル ② 画像: ぱくたそ
  16. 16. 3. 設計: デザインパターン検出[JSEA’14] • 難しさ: デザインパター ンの様々な適用、規模 • 取組み: メトリクス+ニ ューラルネットワーク で学習と自動検出 16S. Uchiyama, A. Kubo, H. Washizaki, Y. Fukazawa, “Detecting Design Patterns in Object-Oriented Program Source Code by using Metrics and Machine Learning”, Journal of Software Engineering and Applications, 7(12) 2014
  17. 17. デザインパターン検出(つづき)[JSEA’14] 17S. Uchiyama, A. Kubo, H. Washizaki, Y. Fukazawa, “Detecting Design Patterns in Object-Oriented Program Source Code by using Metrics and Machine Learning”, Journal of Software Engineering and Applications, 7(12) 2014
  18. 18. 4. テスト・品質: 品質評価改善[QRS’18] • 難しさ: 多様なコンテキストに応じた測定や基準 18 コンポーネント ECROBOT API 走行系 判定処理系 3重多数決 + 走行ステータス更新() : 走行ステータス + 開始判定() : boolean + 総合判定() : void 戦略 + 目標切替ポイント取得() : 切替ポイント 切替ポイント - 灰色検知フラグ - 座標 - 推定時間 審判 + 難所判定(切替ポイント) : boolean + フェイルセーフ判定(走行ステータス) : boolean 時間判定 - 現在時間 + 時間判定(推定時間) : void - 時間更新() : void 位置判定 - 現在位置 + ロケーション判定(座標) : void - 現在位置更新() : void 色判定 - 現在色 + 灰色検知(灰色検知フラグ) : void - 現在色更新() : void Main + 初期化() : void + 走行開始() : void 走行ステータス - IN/OUTフラグ + getter() : void + setter() : void <<enum>> 走行種別 - キャリブレーション - 走行 - 停止 <<enum>> 難所種別 - ライントレース - 階段 - シーソー通過 - ガレージイン 戦術 - 走行 + 走行クラス取得(走行ステータス) : 走行 走行 + 走る() : void ライントレース走行 階段走行 シーソー通過走行 ガレージイン走行 ロケーション + 現在座標取得() : void まいまい式 - 補正ライトセンサ値 - 定周期ライトON() : void - 定周期ライトOFF() : void + 補正ライトセンサ値取得() : void PID制御 - PID算出() : void + 進行方向取得() : 進行方向 インテリジェントモーター - 補正係数 + モーター出力補正() : void + モーター出力設定(右出力, 左出力) : void タッチセンサ + センサ値取得() : boolean タイマー + 時間取得() : 時間 ジャイロセンサ + センサ値取得() : ジャイロセンサ値 ライトセンサ + センサ値取得() : ライトセンサ値 + ランプ設定(ON/OFF) : void モーター + モーター出力設定(出力) : void + 回転数取得() : 回転数 1 走行クラスを 取得する 1 切替ポイントを 取得する * 1 3 難所を判定する 1 走行ステータスを取得する 1 走る 4 生成する 1 センサ値を 取得する 1 1 時間を取得 する 1 1 現在座標を 取得する 1 1 センサ値を 取得する 1 1 ライトセンサ値を 取得する 1 1 センサ値を 取得する 1 1 モーター値を設定する 2 1 モーター値を 設定する 1 1 進行方向を 取得する 1 1 ライトセンサ値を 取得する 1 1 回転数を取得する 2 鷲崎, 阿佐美, 田邉, ETロボコンの事例で学ぶモデル活用の効能: 第2回参加チームの事例,日経エレクトロニクス, 2011年9月5日 N. Tsuda, H. Washizaki, et al., “Machine Learning to Evaluate Evolvability Defects: Code Metrics Thresholds for a Given Context,” The 18th IEEE International Conference on Software Quality, Reliability & Security (QRS 2018) ファイル名 関数名 サイクロマ ティック複雑度 関数の 物理行数 Magi.cpp decideSynthetic() 12 55 Tactics.cpp getDriver(DriveStatus::eDifficultKind) 12 51 StepDriver.cpp drive(bool) 11 119 SeesawDriver.cpp drive(bool) 8 100 GarageDriver.cpp driveIn(void) 8 73 Main.cpp TASK(TaskDrive) 7 91 Magi.cpp getDriveStatus() 7 37 PositionDecision.cpp updateLocation() 6 81 Tactics.cpp ~Tactics(void) 5 15 ファイル名 関数名 サイクロマ ティック複雑度 関数の 物理行数 Magi.cpp decideSynthetic() 12 55 Tactics.cpp getDriver(DriveStatus::eDifficultKind) 12 51 StepDriver.cpp drive(bool) 11 119 SeesawDriver.cpp drive(bool) 8 100 GarageDriver.cpp driveIn(void) 8 73 Main.cpp TASK(TaskDrive) 7 91 Magi.cpp getDriveStatus() 7 37 PositionDecision.cpp updateLocation() 6 81 Tactics.cpp ~Tactics(void) 5 15
  19. 19. 品質評価改善(つづき)[QRS’18] • 取組み: 品質データ(レビュー等)、決定木でメトリクスや基準学習 19N. Tsuda, H. Washizaki, et al., “Machine Learning to Evaluate Evolvability Defects: Code Metrics Thresholds for a Given Context,” The 18th IEEE International Conference on Software Quality, Reliability & Security (QRS 2018) 人手レビュー 品質 測定 機械学習 改善 M. 呼び出し先 モジュール数 G. 変更されやすい 箇所を特定できている Q. モジュールの依存 関係はどの程度か? M. 呼び出し元 モジュール数 A. あちこちと依存するモ ジュールは変更されやすい 測定目的 仮定 質問 測定 データ 10 25 300 150 M. 関数の数 M.実行行数 OK NG 71 M. 関数の数 M.実行行数 OK NG
  20. 20. 取組みの整理 20 1. 人手による 代替候補群の 検討 4. 代替候補 群と一つの案 を自動推薦 7. 自動意思 決定・実行・ 通知 10. 必要と判断し 初めて自動意思 決定・実行・通知 プロセス 自動化 レベル 適用対象 プロダクト 実行 類推 デザインパ ターン検出 チーム構成 データ駆動 ペルソナ 品質評価改善 結合
  21. 21. 留意してきた(したい)こと • 前提条件 – データ量 – 「正解」を用意することの難し さ(New, Emergent) • 学習データ – 各特徴量が有益 [Breck17] – 入力データをチェック • モデル – 説明性 – シンプル(複雑にするならばシ ンプルなモデルより優れること [Breck17]) • 目標・活動 – 合目的性とアクショナブル 21 ビジネス の理解 データ の理解 モデリ ン グ データ の準備 展開 評価 データ CRISP-DM: Cross-Industry Standard Process for Data Mining Eric Breck et al., The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction, IEEE Big Data 2017
  22. 22. 目次 • 機械学習によるパラダイム転換と体系 • 機械学習ベースエンジニアリング事例 • 機械学習の適用における品質の確保 • まとめ+ご紹介 22
  23. 23. 機械学習システム がもたらす問題例 [石川17] 23 Google, 黒人画像を「ゴリ ラ」と自動認識, 2015 Tesla, まぶしい空に対して白いト レーラーを認識できず, 2016 https://www.straitstimes.com/world/united-states/tesla-car-on-autopilot-crashes-killing-driver https://www.youtube.com/watch?time_continue=40&v=9I5rraWJq6E https://www.theguardian.com/technology/2015/jul/01/google- sorry-racist-auto-tag-photo-app Microsoft, Twitterボット が問題発言, 2016 https://www.theverge.com/2016/3/24/11297050/tay- microsoft-chatbot-racist 石川冬樹,機械学習における品質保証のチャレンジ, トップエスイーシンポジウム2017 性能 合目的性 想定外への対応 性能 網羅性
  24. 24. 品質の観点と施策 [Breck17]を拡張 24 学習データ 学習済み モデル 内平 直志, 「人工知能とソフトウェア工学・品質管理」, 第33年度ソフトウェア品質管理研究会第7回特別講義, 2017 活動 / システム インフラ ミスの無さ、偏りの無さ、 網羅性 データ 性能、頑健さ、 解釈・説明性 組み入れ正しさ 品質保証全体 合目的性、 想定外対応 データテスト Skew/メタモルフィ ックテスティング モデルテスト 複数モデル 感度分析・逆追跡 アーキテクチャ 段階的設計・検証 機械「教育」 モニタリング 失敗対策 上位目標 Eric Breck et al., The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction, IEEE Big Data 2017
  25. 25. 性能・網羅性: メタモルフィックテスティング • メタモルフィック関係に基づき大量に試験 • 入力への変化により、出力の変化を予想できる関係 – 例: A の検索結果数 ≧ A かつ B の検索結果数 – 例: sin(x) = sin(x + 360度) 25 入力の変化 出力の変化 並び変え 無し ノイズの追加 意味的に同じもの 統計的に同じもの 経験的に近いもの 僅か 定数の加算、乗算 定数の加算、乗算 狭める 部分集合 全く異なるもの 互いに素 x t(x) f(x) g(f(x)) 変換t 変換g 参考: S. Segura et al., "Metamorphic Testing of RESTful Web APIs," IEEE Transactions on Software Engineering, 2017 参考: C. Murphy, “Applications of Metamorphic Testing”, http://www.cis.upenn.edu/~cdmurphy/pubs/MetamorphicTesting-Columbia-17Nov2011.ppt f(t(x))= 変換f 変換f
  26. 26. 機械学習による画像認識のテスト • ノイズ追加等によるメタモルフィックテスト 26 明度 レンズ の汚れ 障害物 自動運転車の場合 [Tian’18]文字認識の場合[本田18] Y Tian, et al., DeepTest: Automated Testing of Deep-Neural-Network-driven Autonomous Cars, ICSE 2018 https://arxiv.org/pdf/1708.08559.pdf 参考: 本田澄,アーキテクチャ・品質エンジニアリング, スマートエスイー講義資料, 2018
  27. 27. 組み入れ: IoT+機械学習アーキテクチャ[Azure][鄭18] 27 ActionsThings Insights Data Stream Data Stream IoT Devices Cloud Gateway (IoT Hub) Stream Processing Warm Path Store UI & Reporting Tools Business Integration Device management Store data Integrate with business process Visualize data and learningStream processing and rules evaluation over data Data Stream Data Stream IoT Edge Devices Data Transfor mation Cold Path Store Machine Learning User Management Microsoft, Azure IoT Reference Architecture, https://aka.ms/iotrefarchitecture 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018 Dataset Transfor mer Storage Trainer Modelbatch Model API Exper iment 久保隆宏, 機械学習モデル構築のパターン, 2018 https://www.slideshare.net/takahirokubo7792/2018-97367311 機械学習のアーキテクチャ詳細 [久保18]
  28. 28. 全体: 機械「教育」(Teaching) [Simard17] 28 ソースコード ハイパーパラメータ データセット スキーマ I. 検査 II. ラベルや特徴量の編集 III. 学習 IV. テスト Patrice Y. Simard, et al., Machine Teaching: A New Paradigm for Building Machine Learning Systems. CoRR abs/1707.06742 (2017) 清 雄一, 機械学習・深層学習, スマートエスイー講義資料 2018 プログラミング 機械「教育」 コンパイラ 機械学習アルゴリズム OS/サービス/IDE 学習、サンプリング・・・ フレームワーク ImageNet, word2vec・・・ プログラミング言語 ラベル、特徴量、スキーマ・・・ プログラミングへの熟練 「教育」への熟練 デバッグ デバッグ バージョン管理 バージョン管理 開発プロセス 「教育」プロセス
  29. 29. 合目的性: 目標・戦略・データの整合化(例 GQM+Strategies) 29 顧客からの不具合 報告を削減できて いる G: コードの 保守性を定量 評価できている ソフトウェアの保守 性を改善する テスト効率を改善 する 開発時にコードの 保守性評価を20% 改善できている 製品の品質を改善 する 顧客満足度を向上 できている 製品の品質が 高ければ・・・ Q1 Q2 M1 M2 ビジネス レベル ソリューション 事業部 (ソフトウェア レベル) 組織 目標 戦略 品質保証 チーム 開発チーム テストプロセスを 改善する G: 不具合報告を カウントできている G: 顧客満足度を 定量評価できている 仮定・ 事実 Victor Basili, et al., 著, 鷲崎弘宜ほか訳, “ゴール&ストラテジ入門: 残念なシステムの無くし方 (GQM+Strategies)”, オーム社, 2015
  30. 30. 目次 • 機械学習によるパラダイム転換と体系 • 機械学習ベースエンジニアリング事例 • 機械学習の適用における品質の確保 • まとめ+ご紹介 30
  31. 31. まとめ • 機械学習ベースのエンジニアリング&システム – 演繹から帰納へ – AI-SEAL: プロセス、プロダクト、実行、自動化レベル – 事例: 体制、要求、設計、品質 • 品質の確保 – 性能・網羅性: メタモルフィックテスト – 組み入れ・全体: アーキテクチャ、機械「教育」 – 合目的性: GQM+Strategies • 関連活動や展望 – enPiT-Proスマートエスイー 31
  32. 32. ご紹介: enPiT-Pro スマートエスイー 32  文部科学省社会人教育事業 ‘17-’21 http://smartse.jp/  第3回セミナー「メタモルフィックテスティング」 2018年12月3日(月)(予定) クラウド センサ・IoT 人工 知能 ビッグ データ 生成 知識 抽出 革新 アプリケーション ビジネス 価値 創造 通信・物理 情報処理 総合実践 連携校( 1 3 校) 茨城大学 群馬大学 東京学芸大学 東京工業大学 大阪大学 九州大学 工学院大学 東京工科大学 東洋大学 鶴見大学 北陸先端科学技術大学院大学 奈良先端科学技術大学院大学 情報・システム研究機構 (国立情報学研究所) 協力校( 2 校) 立命館大学 The BigClouT Project 教材・指導 地区展開 進学・共同 研究接続 連携企業・業界団体( 2 3 団体) 日本電気 富士通 日立製作所 東芝 いい生活 ヤフー モバイルコンピューティング推進コンソーシアム 次世代センサ協議会 日本IT団体連盟 IT検証産業協会 コンピュータソフトウェア協会 組込みシステム技術協会 電子情報技術産業協会 全脳アーキテクチャ・イニシアティブ 新経済連盟 先端IT活用推進コンソーシアム 日本オープンオンライン教育推進協議会 デンソー ハレックス 情報医療 システム情報 題材・事例 教材・指導 受講生派遣 外部評価 想定受講者 情報系の一定知識を 持っている人 組込み・ IoTプロフェッショナル クラウド・ ビジネスイノベー ター システムオブシステムズ・ 品質アーキテクト 目標人材像 環境連携 BigClouT (日欧ビックデータ・クラウド・IoT融合基盤)JMOOC (オンライン大学講座) オンライン全国展開 実施拠点 W ASEDA NEO (コレド日本橋内) 社会人教育プログラム スマートエスイーSm a rtSE IoT・ビッグデータ・AI ×ビジネス IoT・クラウド、ビッ グデータ、人工知 能を活用し、高セ キュリティかつプラ イバシを考慮した スマートシステム &サービスを開発 運用し、技術領域 や分野を超え価値 創造をグローバル にリード可能な実 践的人材の育成と 全国展開

×