機械学習プロジェクトの実験デザインについて
以下のブログを日本語に見砕いて解釈したまとめをする。
How you Should Design ML Engineering Projects
MLプロジェクトはソフトウェア開発で一般的に用いられているプロセスのイテレーションを採用することができない。
きちんと実験を計画しないと無限に続く実験を繰り返すことになってしまう。
ML Enginnering Template
Problem Statement
Goals
Softwear goals
構築したいソフトウェアシステムと機能を決める
Metrics Goals
仕事の成果を評価するときの基準は何を用いるのか、なぜその基準が用いられるのかを決める
以下、例
- Bad Example: Improve model’s performance
- OK Example: Improve AUC by X% for the model
- Good Example: Improve recall by X% for the class of false negatives without decreasing recall for any other classes by more than Y%.
Expected metrics tradeoffs, if any: For example: Increase recall without decreasing precision by more than 5%.
Experiment Design
MLプロジェクトはソフトウェアの設計とは異なり、データの収集、実験、失敗、設計の変更が起こりえます。プロジェクトを成功させるには潜在的な分岐点を適切にレイアウトすることがカギになります。またすべての実験は単純なアルゴリズムやヒューリスティックな解法と比較され、評価されなければいけません。
Data Motivation
本当に解決すべき問題なのか、解決するだけの価値、影響があるのもなのかを判断します。
Hypothesis
仮説1:Aという操作をするとBという評価基準がBaselineと比べてCだけ向上する。
Method : 実行しようとしている操作を説明する
Metric : Methodを評価するときの基準を説明する
Succes Criteria : Methodが成功したと評価されるときの基準を明らかにする
Timebox : 何日間かけて実施するのかを決める
Failure Next Step : 実験が失敗したときに何を実行するかを明らかにする(例:仮説2を検証する)
Success Next Step : 実験が成功した時に何を実行するか明らかにする(例:モデルをプロダクトに乗せる)
Softwear Design
プロジェクトのためにどのようなデータパイプライン、データベース、ソフトウェアが必要になるのか決める。
crawl
ソフトウェアの開発に時間を費やす前にその変更がどれだけの効果をもたらすのかを考える
walk
コンポーネントのより厳密な設計
run
より長期的な設計。
Considerations
Success criteria to launch?
モデルを稼働させる、もしくは入れ替えるときの評価基準について明確にする
What could go wrong?
モデルを実行させたときにうまくいかないと考えられるすべてのことを明らかにする
- どのプロダクトがモデルの影響を受ける可能性があるか
- 顧客に対してどんな影響を与えるか
- どのように監視するか
- ロールバックするにはどうすればいいか
Security & Privacy Considerations
- この変更にはセキュリティ上どんな影響があるか
- この変更がプライバシーに対してどのような影響があるか
Appendix: Experiment log
テストされた各実験の結果、途中で行われた決定、分岐点、学習結果、否定された仮説など。このような結果を後で見返したり、チームのメンバーと共有することはとても有益である。