ぼくのかんがえたさいきょうの機械学習プロジェクト進行法(PoC/デモ編)

 ぼくのかんがえたさいきょうの機械学習プロジェクト進行法(PoC/デモ編)

第13回 Machine Learning 15 minutes (https://machine-learning15minutes.connpass.com/event/49020/) の発表資料です

B5e4cea01a88ca6e79a962b3e0004405?s=128

Norihiro Shimoda

June 24, 2017
Tweet

Transcript

  1. ぼくのかんがえたさいきょうの 機械学習プロダクト進⾏行行法 (PoC/デモ開発編) by  Norihiro Shimoda

  2. ⾃自⼰己紹介 • 下⽥田倫倫⼤大(@rindai87) • データ分析専業の企業のエンジニアマネージャー • TensorFlow User  Group(TFUG)主催者 •

    GDE(Google  Developer  Expert)のML  Expert
  3. 今⽇日お話すること 機械学習要素が⼊入った プロダクト開発の ベストプラクティスっぽい何か ただし、PoCやデモフェーズまで そこから先は⾊色々とアレなので含んでいません

  4. 注意 結果うまく⾔言った話を 後から整理理したので キレイに⾒見見えますが 実際はすごく泥泥臭いです

  5. 想定オーディエンス お客様 (つよい) わたしたち (よわい) ⼀一ヶ⽉月後までにイベント⽤用 の機械学習のデモ作りたい んだけど は、はひぃぃぃ ⼆二ヶ⽉月後までにPoC終わら

    して成果をエライ⼈人の前で デモしたいんだけど
  6. っていう状況で プロジェクトマネジメント しないといけなくなった⼈人たち に捧げる話

  7. (機械学習)エンジニア データサイエンティスト プロジェクト推進役 PM  /  PO的な⼈人 最近の問題意識識 案外⼈人材はいる 圧倒的不不⾜足

  8. プロジェクト推進役 • データサイエンティストと機械学習っぽい話をする • エンジニアとシステムや開発っぽい話をする • クライアントと要件やビジネスっぽい話をする • 全部まとめてやるべきこと/やらないことを決める こういう⼈人がいないと

    カジュアルに炎上します
  9. 1ヶ⽉月くらい 5⼈人くらい (公開できる)私の経験その1

  10. Serving  Mode

  11. Learning  Mode

  12. https://sho-‐‑‒soar.github.io/slides/tfug5/#/ https://goo.gl/Vi7hTE 技術的な細かい話は以下からどうぞ

  13. 1.5ヶ⽉月くらい 5⼈人くらい (公開できる)私の経験その2

  14. None
  15. 期間の割にボリュームあるな­− って思いました? 通常の案件でもだいたい 似たようなものだったりします だいたい3〜~5⼈人で1〜~2ヶ⽉月くらい

  16. PoC/デモ開発プロジェクトの進⾏行行 1. 要望のヒアリング /  要件の整理理 2. 全体のラフ案の整理理 3. ラフ案の実現可能性の検証 4.

    ラフ案から設計の起こし 5. 実装!実装! 6. テスト!テスト! 7. 制約条件やオペレーションの整理理 8. 納品(デモならセットアップやサポートなども) この辺まで精度度の良良い⾒見見積もり ができないが時間がないので、 エイヤでやらざるを得ない
  17. 顧客要望の機械学習的観点での整理理 テーブルの上にあるお菓⼦子を認識識して、ロボットで掴 むと⾯面⽩白いと思うんですよね。⾳音声で⼊入⼒力力してお薦め をレコメンドする感じです。 レコメンドロジックの構築から逆算し、 ロボットの操作に⽬目処をつけなければいけない案件 ⾳音声認識識と物体認識識(画像処理理)は確 実に出て来るな。お勧めのレコメンド をどうするかがポイントの案件だな。 あとロボットの所もどうするかだな。

  18. こんな案件っぽいな、と分かるわけです ⾳音声認識識 画像処理理 レコメンド ロジック ロボットの 操作

  19. レコメンドロジックを決めるとこうなります ⾳音声認識識 による ⽂文字起こし お菓⼦子画像の切切 り出し Word2vec による 特徴量量化 ⽬目標物認識識

    発話 テーブル の上の お菓⼦子 CNNによる画 像の特徴量量化 ベクトルの 内積 レコメンドロジック ⽬目標物取得 ロボットの操作
  20. 実現可能性の検証に⼊入ります • ⾳音声認識識での⽂文字起こし • お菓⼦子画像の画像切切り出し • word2vecをどう実現するか • CNNをどう実現するか •

    ロボットの操作はそもそもどうするのか? – ロボット⾃自体の選定 – 選定したロボットの精度度などの動作まわり パーツパーツが全体の シナリオにあった形で うごくのか?という 観点での選定/検証
  21. 実現可能性検証〜~実装のポイント • 基本的に⾃自前でモデルやアルゴリズムを作らない • モデルやアルゴリズムは差し替えしやすくしておく • 実装は基本エイヤーで頑張るしかない – たぶんプログラミング⾔言語選定はPython⼀一択

  22. ⾃自前で作らず検証 ⾳音声認識識 Cloud Speech  API Web  Speech  API ⽂文字起こしの形態素解析 Cloud

     NL  API ⽂文字起こしの特徴量量化 Gensim +  word2vec-‐‑‒ Googlenews-‐‑‒vectors 画像の切切り出し OpenCV 画像の特徴量量化 TensorFlow +  Inception  V3 今回はGoogle  Cloudのイベントだったのでこんな感じですが、 もちろんGoogle製品じゃなくてもできることはありますね ここの選び⽅方を   失敗すると死にます  
  23. センスの良良いあなたによって 実現可能性が確認できました! モデルの精度度やら⾊色々気になりますが、 動きそうならこの時点ではOKとします ※この時点でOKしたやつがだいたい最終化されます

  24. モデルの差し替え • 最初は公開されているモデルやライブラリでとにかく試 してみる • 全部作り終わってから精度度向上を検討する時にモデル⾃自 体は再考する – word2vecの辞書を別のものに変える –

    CNNのモデルをInception-‐‑‒v3から別のものに変える – あるいは⾃自前で作る
  25. 実装 • まあ基本は気合でエイヤーの世界となります • 機械学習系のライブラリはPythonが充実しているので、 必然的にPythonで作ると効率率率が良良くなります • なので、Flaskあたりで薄いAPIを作って裏裏側でほげほげ、 みたいな感じになるかと Web

     API By  Flask ML  App
  26. テスト〜~制約条件の洗い出し • 実装ができたらひたすらテスト • テストの⽬目的はバグの洗い出しだけではなく、実装され たものの制約条件を洗い出す • 制約条件はお客様にお伝えしてご理理解/ご納得いただく – 制約条件がそのままデモシナリオに反映されていくイメージ

  27. ということで、、、 • ここまできちんと進めると「特定条件下」で「要望を満 たすように」動いている何かができてきます • そこから可能な範囲で精度度の向上など頑張りましょう

  28. その他どうでも良良いTips

  29. その他どうでも良良いTips • ベンダーが複数出てくる時、インターフェースの責務を こっちに寄せる – 調整するコストの⽅方が⾼高いので、よっぽどの事がない限り相⼿手 が欲しがるプロトコルで欲しいデータを作って上げる • 転ばぬ先の杖は多めに⽤用意する –

    特にデモの場合(かつハードウェアが絡む場合)⽤用意周到過ぎ る準備をしたとしても、それでも不不⾜足の⾃自体が起こる
  30. 「何とかなる」 という強い⼼心を持つことが ⼀一番⼤大事でしょう ほぼ毎⽇日「できそう」と「できないかも」 を往復復する不不安定な⽇日々が続きます

  31. まとめ • 機械学習は⽇日々進化しており、それを使ったプロジェク トは⽇日々難易易度度が増し、特にプロジェクト推進役には職 ⼈人化/属⼈人化が加速しています。 • 知⾒見見を共有し合う場が欲しいと思う今⽇日このごろです。

  32. おまけ(TFUG告知) • 発表者はいつでも募集中!   – TFがちょっとでもかすってたらOKです!     • 運営側の参加者募集中!

      – めっちゃ肥⼤大化してますが今のところ2⼈人体制なので⾟辛いで す!   – 今ならやりたい放題やっていただけます!
  33. Thanks!!