What Does it Mean to Deploy a Machine Learning Model? (Deployment Series: Guide 01) - ML in Productionを読んでいたら途中で引用されていたスライド。興味があったので読んでみた。
スライドでは、機械学習プロジェクトのうち、プロジェクトの外観と、プロジェクト計画(目標設定、達成基準の決め方、ベンチマークの決め方)の説明をしている。
英語苦手なのでどのページにどういうこと書いてあったかインデックスがわりにメモっとく。理解できないところは先頭に?マークつけとく
講義の目的(p.2)
この講義で考えるケーススタディ(p.3)
- grasp model(ロボットアームがものを掴むために)pose estimationをする
- センサ情報からあるものがどこにあって、どの方角を向いているかを推定する
MLプロジェクトのフレームワーク(p.6)
ML prjのライフサイクル
- ①企画と立ち上げ
- 内容:
- pose estimationすることを決める
- そのための要件と目標を決める
- リソースを割り当てる
- 内容:
- ②データ収集とラベリング
- 内容
- 学習データを集める
- センサ(カメラなど)のセットアップ
- 画像をキャプチャ
- ラベリングする
- ②をやってみて①へ戻ることも(p.10~11)
- 要因
- データ取得が難しい
- ラベル付けが難しい
- 要因
- 内容
- ③ 学習とデバッグ(p.12)
- ④デプロイとテスト(p.18)
- 内容
- ④から③へ戻ることも(p.19)
- 要因: 開発環境の段階で(期待した通りに)動かないので、精度改善を継続
- ④から②へ戻ることも(p.20)
- 要因
- 実験時のデータと、本番データに差異があった。
- データをもっとあつめる。
- Mine hard cases(多分、推論が難しいデータを探す こと。)
- 要因
- ④から①へ戻ることも(p.21)
- 要因
- 設定したメトリクスは実際のユーザの行動に適ったものではなかった(The metric you picked doesn’t actually drive downstream user behavior. )ため、考え直す。
- 本番環境でのモデルの性能が良くないので、要求を見直す。(例えば、より速さが必要だったり、より精度が必要だったり)
- 要因
※↑は、個々のプロジェクトにおける進め方。プロジェクト横断するとなると、企画にはチーム編成や採用活動、それ以降ではインフラ構築やツールの開発を考える必要がある。(p.22~24)
他に知っておく必要のあること(p.25)
- 自分の取り組んでいるドメインにおけるSoTA技術を知ること: 何ができるのかを理解し、次に何を試すべきかを知る
①~④実際にはもっと詳細なステップがある(p.27)
今回の講義では①に関して扱っていく。
- プロジェクトの優先順位決め、目標の選定
- メトリクスの選定
- ベースラインの選定
1. プロジェクトの優先順位決め、目標の選定
優先順位決めに大事なポイント(p.31)
- A インパクトの大きいMLの問題
- 低コストで予測できることが価値のある
- 複雑なパイプライン
- B 実現可能性(Feasibility)
- ML pro.にかかるコストは、データがどれだけ使えるかによる。しかし、精度の要求も大きな要素である。
A. インパクトの大きいMLの問題
インパクトが大きくて、実現可能性があるところが、取り組む優先順位が高い場所である。(p.32)
影響の大きいMLプロジェクトのためのメンタルモデル(p.33,34 )
- predictionを安価にすることがメリットがある場所はどこか
手作業でやっている複雑な作業のパイプラインのうち、どこが自動化できるか
The economics of AI
- AIは予測のコストを下げる
- 予測は意思決定の中心的存在
- 低コストで予測できることが意味するのは
- どんな問題にでも予測が使える
- それまでコストが高かった問題でさえも。(例えば、hiring a driver (?ドライバーを雇う?))
- すなわち:予測コストを安価にできるとビジネスのインパクトがでかい場所を探そう
- Karpathyのツイート(p.35)
- 「悪いね、勾配降下法は君よりいいコードを書くんだ。」
- 訳注: 複雑なルールベースの推論ロジックを人がコーディングするよりも、MLモデルで推論をさせた方が結果がいい、みたいな意味だと思う。
- 「悪いね、勾配降下法は君よりいいコードを書くんだ。」
- ソフトウェア2.0(p. 36)
まとめ: 複雑なルールベースのソフトウェアを探し、それをMLに置き換えよう。
B. 実現可能性(Feasibility)
機械学習プロジェクトの実現可能性をコストの面で見積もる(p.38〜44)
- プロジェクトにかかるコスト要因は3層。
- 下がData availability
- データ入手の困難さ
- アノテーションコスト
- どれだけデータが必要か
- 真ん中がAccuracy requirement:
- 間違った推論をするとどれだけコストがかかるか。
- (? 何回くらいシステムを正せば使い物になるか)
- 上がproblem difficulty
- すでに類似の問題を解く良い方法が世に出回っているか(問題は新しいほど、リスクが高く、技術開発面で骨が折れる)
- (? 学習は必要?)
- (? デプロイできる?)
- 下がData availability
Accuracy requirement(p.44~p.46)
- 要求する精度を高くするほどプロジェクトのコストが高くなる。増え方は線形では済まない(super linear)
- Product design can reduce need for accuracy(p.47)
- (正直、画像だけで何も書かれていないが、多分言いたいのは次のようなこと)
- AIによる作業の完全な自動化(それ故の高い精度)を目指すのではなく、人に任せる部分も設けることで、精度の要件をへらすようにサービスをデザインする。
- MLに何をどこまでさせるか(逆にどこからは人が)を設計すれば精度要件の負担を減らせるかを考えよう。
- Designing Collaborative AI - Ben Reinhardt - Medium -https://medium.com/@Ben_Reinhardt/designing-collaborative-ai-5c1e8dbc8810
- (正直、画像だけで何も書かれていないが、多分言いたいのは次のようなこと)
- 実現可能性を見積もるにあたってのヒューリスティクス(p.48)
- Andrew Ng「普通の人が1秒未満でできることのほとんどは今のAIで自動化できる」
- 1秒でできる例:
- 画像の認識
- 音声の認識(理解)
- 音声翻訳
- 物体認識
- できない例
-ユーモア、皮肉の理解
- 手を使う作業をロボットにさせること
- Generalize to new scenarios(Scenario Generalizationというタスクがあるらしい)
- 1秒でできる例:
- Andrew Ng「普通の人が1秒未満でできることのほとんどは今のAIで自動化できる」
自分のpose estimationプロジェクトの見積もりをやってみる(p.49)
- Impact
- Feasibility
- Data availability
- データは集めやすい
- アノテーションはchallengeな課題だけど、実験部屋にセンサーを取り付けることはできる
- Accuracy requirement
- ものをつかむには高いaccuracyが必要。誤差0.5cm以内。
- だけど、失敗は低コスト。単位時間あたりのつかむ回数が大事。掴むのに成功した回数はそれほど重要ではない。
- Data availability
- Problem difficulty
- 既存研究が自分のところに流用できない
2. メトリクスの選定(p. 51)
メトリクスの選び方、組み合わせ方
- メトリクスの選定に重要なこと
- 実世界は乱雑(messy)。つねに多くのメトリクスを気を払っておくこと。
- とはいっても、MLシステムは一つのメトリクスを最適化する時はbest
- 結果として、数あるメトリクスを組み合わせて一つのメトリクス(formula)をつくればいい
- この式は変えることができるし、変わるだろう。
- どうメトリクスを組み合わせるか
- Thresholding metricsで考えるべきこと(p.64)(ここ、意味がわからなくて訳が思い浮かばなかった。)
- Thresholding metricsの例(p.66)
- より複雑、ドメイン固有なメトリクスを作る。(p.69~74)
メトリクス選定の例として自分のpose estimationタスクにあてはめてみる(p.75~p.81)
- 要件
- 最終的にはロボットが現実世界でものをつかめるようになりたい。
- 位置の誤差は 一旦<1cmとする。このしきい値が本当に適切かはわからない。
- 角度の誤差は5°以内。
- 現実世界で100ms以内で動く
- 実験:
- いくつかモデルを学習
- 今のパフォーマンスを要件と比べる
- 位置エラーは0.75cm~1.25cmある(ハイパーパラメータによる)。
- 角度誤差は60°くらいある。
- 推論時間は最大300ms
- → 角度誤差の対策が優先。位置エラーのしきい値は1cm。実行時間の遅さはここでは無視する。
- 数値が改善したら、メトリクスを見直す(予定)
3. ベースラインの選定(p.82)
- Key points for choosing baselines(p.83)
- ベースラインを決めることで、MLモデルに期待する性能の下限を決める事ができる
- 下限が厳しいほど。ベースラインとして有用
- 既存の研究結果
- 念入りにチューニングされたパイプライン
- human baselineなど)
- なぜベースラインは重要か(p.85)
- 定めるベースラインが異なれば。自分のモデルの性能とベースラインの差も異なり、その差に応じて次に打つ試作も異なるから。
- ベースラインをどこで見つけるか(p.86)
- human baselineをどう作るか(p.92)
- human baselineのリスト。下に行くほどベースラインの質は高く、また、そのためのデータ入手が困難
- How to create good human baselines(p.93)
"More on labeling in data lecture" (? より詳しくはデータ回の講義で述べる)