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
本来期待される場所
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. チーム構成(つづき)[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. 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. データ駆動ペルソナ(つづき)[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. 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. デザインパターン検出(つづき)[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
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
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
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. 性能・網羅性: メタモルフィックテスティング
• メタモルフィック関係に基づき大量に試験
• 入力への変化により、出力の変化を予想できる関係
– 例: 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
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. 全体: 機械「教育」(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・・・
プログラミング言語 ラベル、特徴量、スキーマ・・・
プログラミングへの熟練 「教育」への熟練
デバッグ デバッグ
バージョン管理 バージョン管理
開発プロセス 「教育」プロセス