Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ビジネス利用における長期的な学習モデルの評価
Search
Intel0tw5727
November 16, 2019
Technology
0
250
ビジネス利用における長期的な学習モデルの評価
Intel0tw5727
November 16, 2019
Tweet
Share
More Decks by Intel0tw5727
See All by Intel0tw5727
PyConJP2021に行ってきたログ.pdf
intel0tw5727
0
12
読みやすいコードを書く技術
intel0tw5727
1
95
Other Decks in Technology
See All in Technology
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
540
C++26 エラー性動作
faithandbrave
2
770
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
200
kargoの魅力について伝える
magisystem0408
0
210
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
130
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
270
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
540
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
350
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
210
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
98
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Navigating Team Friction
lara
183
15k
Optimising Largest Contentful Paint
csswizardry
33
3k
Code Review Best Practice
trishagee
65
17k
BBQ
matthewcrist
85
9.4k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Bash Introduction
62gerente
608
210k
KATA
mclloyd
29
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Transcript
ビジネス利⽤における ⻑期的な学習モデルの評価 いんてる(@Intel0tw5727) © 2019 Chura DATA inc. PROPRIETARY &
CONFIDENTIAL.
Who am I?(お前誰) • いんてる(@Intel0tw5727) です。 • 県内⼩中⾼⼤を経て今年新卒で⼊社 • ちゅらデータの筋⾁アナリスト
• バーベル110kgスクワットできます • ダンベルプレス⽚⼿20kgできます • ⾃分の好きな筋⾁は上腕三頭筋 です © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
AGENDA © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. •
⻑期的な学習モデル開発に必要なもの • モデルをいろんな⽅⾯から評価する • ⾯倒なモデル評価を楽にする⽅法 今⽇話す内容
© 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ⻑期的な学習モデル開発に必要なもの
趣味開発だとやりがちな評価例 • とりあえず精度指標だけを表⽰して判断する • 学習⽤・テスト⽤・評価⽤でデータを分割してればOK © 2019 Chura DATA inc.
PROPRIETARY & CONFIDENTIAL.
趣味開発だとやりがちな評価例 • とりあえず精度指標だけを表⽰して判断する • 学習⽤・テスト⽤・評価⽤でデータを分割してればOK © 2019 Chura DATA inc.
PROPRIETARY & CONFIDENTIAL. モデルは︖
ブラックボックスで済ませてはいけない • ビジネスでは作成したモデルが妥当である説明が必要 • なぜこのアルゴリズムが問題に適しているのか︖ • 予測結果は期待したものになっているのか︖ • 実サービスで収集されて増加するデータにも対応できるのか︖ •
ただ⾼精度なモデルを作るだけではいけない(戒め) © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
正しいフローで分析を回す • ⼀般的なモデル開発案件では納品で完了するが、⻑期的なモデル 開発では、増えたデータに対して継続的に更新を⾏う必要が、 ある。 © 2019 Chura DATA inc.
PROPRIETARY & CONFIDENTIAL.
⻑期的なモデル開発に必要なもの • モデルの問題を早期に発⾒できて改善できる仕組み • 学習データが偏っている可能性 • 前処理が適切に⾏われていない • 学習⼿法が悪い •
パラメータチューニングに失敗している • 各フローでの評価するポイントについて話します。 © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
© 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. モデルをいろんな⽅⾯から評価する
(機械学習)特徴量に注⽬した評価 • 基本的な前処理を⾏った特徴量をベースに、新しい特徴量を 加える前後で精度変化を⾒る。 • 例: 体重を予測するために「炭⽔化物」の特徴量の有無で精度変化を⾒る © 2019 Chura
DATA inc. PROPRIETARY & CONFIDENTIAL. 精度:50% 精度:80% 精度が向上︕
(機械学習)特徴量に注⽬した評価 • 決定⽊アルゴリズムなどでは特徴量が分岐する⽊に何回 使⽤されたかを数えることで寄与度を測る⽅法もある。 © 2019 Chura DATA inc. PROPRIETARY
& CONFIDENTIAL. 決定⽊の学習結果を可視化 分岐に使⽤された回数
⼿法に注⽬した評価 • 学習に使⽤する⼿法を複数⽤意し、それぞれに最適化された ハイパーパラメータとその結果を同じ精度指標で⽐較する。 © 2019 Chura DATA inc. PROPRIETARY
& CONFIDENTIAL.
⼿法に注⽬した評価のポイント • 学習とチューニングに時間がかかるため、開発時間が限られている 場合はミニマムな環境でサイクルを回す必要がある。 • データを最⼩限にして事前にどれくらいの精度が出せるかを確認する (数万あるデータを数百程度で回してみる) • 学習回数を制限する (数⼗回程度を最⼤として学習を回す)
• グリッド・ランダムサーチを制限する (試⾏するパラメータを減らす・ランダムサーチの試⾏回数を減らす) © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
パラメータに注⽬した評価 • 学習に使⽤する⼿法を統⼀して、複数のパラメータチューニング 結果を⽐較する⽅法 © 2019 Chura DATA inc. PROPRIETARY
& CONFIDENTIAL. 学習率(learning_late) 分岐する⽊の数(n_estimators) に注⽬してパラメータ評価を ⾏うことで、サイクルを回す 過程で局所解に陥ることを 避けるような働きがある
パラメータに注⽬した評価のポイント • 収集して増え続けるデータでの学習に対して、データの異常検知を ⾏うことができる。 • 最適化されたパラメータを固定して、データを増える前後で学習させる ことで予期しない情報を含んだデータが増えているかを検知できる © 2019 Chura
DATA inc. PROPRIETARY & CONFIDENTIAL. 学習率 = 0.05 分岐⽊数 = 1024 データ数 = 10000 学習⽇ = 2019-10-15 学習率 = 0.05 分岐⽊数 = 1024 データ数 = 15000 学習⽇ = 2019-11-15 学習率 = 0.05 分岐⽊数 = 1024 データ数 = 20000 学習⽇ = 2019-12-15 精度: 85% 精度: 87% 精度: 69%
© 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ⾯倒なモデル評価を楽にする⽅法
MLFlowがおすすめ • 機械・深層学習フローにおいて実⾏環境・パラメータ・評価結果 などの管理を⾏うライブラリ © 2019 Chura DATA inc. PROPRIETARY
& CONFIDENTIAL. 今回の話はTrackingの機能
パッとみてパラメータの変化を知ることができる © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ・試⾏内容
・使⽤パラメータ ・評価指標 が表で⼀⽬ みるだけで わかる︕
理想的な開発環境 • これをDockerでドカドカしたい (希望・これからやる・コーナーで差をつけろ) © 2019 Chura DATA inc. PROPRIETARY
& CONFIDENTIAL. 分析環境 コード管理 ワークフロー管理 学習モデル・パラメータ保存 モデル・パラメータ管理
© 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. まとめ
⻑期的にモデルを評価すること • モデルの問題を早期に発⾒できて改善 • 経験則ではなくデータやモデルに基づいて修正できる • モデルの性能が良い・悪い根拠を様々なフローから解き明かす • ブラックボックスを少しでも解き明かすことで、⾃分の作ったモデルに ⾃信が⽣まれる
• MLFlowを使うことでグラフィカルに性能評価ができる • 現状MLFlowを使っているだけなので、もっと便利な学習マネジメント ライブラリが出たら触ってみたいな © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
⼒がほしいか・・・ • ちゅらデータでは筋⾁アナリストを募集中︕((( • 健康的な体を⼿に⼊れながら、データ分析もできる︕ • もれなくintelが⾷事から運動まで全⾯サポートします • データ分析に興味があるなら、⾃分の⾝体のデータを集めて 分析してみませんか︖
• 不定期ですがだいたい隔週⽊曜⽇に筋トレ会をしているので、 興味がある⽅は懇親会でお声がけください︕ © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
ビジネス利⽤における ⻑期的な学習モデルの評価 ご清聴ありがとうございました © 2019 Chura DATA inc. PROPRIETARY &
CONFIDENTIAL.
Appendix • 超細かく説明してくれる神参考リンク • mlflowを使ってデータ分析サイクルの効率化する⽅法を考える • https://qiita.com/masa26hiro/items/574c48d523ed76e76a3b • MLflow 1.0.0
リリース︕機械学習ライフサイクルを始めよう︕ • https://qiita.com/fam_taro/items/155912068ff475a53e44 • 機械学習で泣かないためのコード設計 • https://www.slideshare.net/takahirokubo7792/2018-97367311 © 2019 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.