Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

っていう状況で プロジェクトマネジメント しないといけなくなった⼈人たち に捧げる話

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Serving  Mode

Slide 11

Slide 11 text

Learning  Mode

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

PoC/デモ開発プロジェクトの進⾏行行 1. 要望のヒアリング /  要件の整理理 2. 全体のラフ案の整理理 3. ラフ案の実現可能性の検証 4. ラフ案から設計の起こし 5. 実装!実装! 6. テスト!テスト! 7. 制約条件やオペレーションの整理理 8. 納品(デモならセットアップやサポートなども) この辺まで精度度の良良い⾒見見積もり ができないが時間がないので、 エイヤでやらざるを得ない

Slide 17

Slide 17 text

顧客要望の機械学習的観点での整理理 テーブルの上にあるお菓⼦子を認識識して、ロボットで掴 むと⾯面⽩白いと思うんですよね。⾳音声で⼊入⼒力力してお薦め をレコメンドする感じです。 レコメンドロジックの構築から逆算し、 ロボットの操作に⽬目処をつけなければいけない案件 ⾳音声認識識と物体認識識(画像処理理)は確 実に出て来るな。お勧めのレコメンド をどうするかがポイントの案件だな。 あとロボットの所もどうするかだな。

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

レコメンドロジックを決めるとこうなります ⾳音声認識識 による ⽂文字起こし お菓⼦子画像の切切 り出し Word2vec による 特徴量量化 ⽬目標物認識識 発話 テーブル の上の お菓⼦子 CNNによる画 像の特徴量量化 ベクトルの 内積 レコメンドロジック ⽬目標物取得 ロボットの操作

Slide 20

Slide 20 text

実現可能性の検証に⼊入ります • ⾳音声認識識での⽂文字起こし • お菓⼦子画像の画像切切り出し • word2vecをどう実現するか • CNNをどう実現するか • ロボットの操作はそもそもどうするのか? – ロボット⾃自体の選定 – 選定したロボットの精度度などの動作まわり パーツパーツが全体の シナリオにあった形で うごくのか?という 観点での選定/検証

Slide 21

Slide 21 text

実現可能性検証〜~実装のポイント • 基本的に⾃自前でモデルやアルゴリズムを作らない • モデルやアルゴリズムは差し替えしやすくしておく • 実装は基本エイヤーで頑張るしかない – たぶんプログラミング⾔言語選定はPython⼀一択

Slide 22

Slide 22 text

⾃自前で作らず検証 ⾳音声認識識 Cloud Speech  API Web  Speech  API ⽂文字起こしの形態素解析 Cloud  NL  API ⽂文字起こしの特徴量量化 Gensim +  word2vec-‐‑‒ Googlenews-‐‑‒vectors 画像の切切り出し OpenCV 画像の特徴量量化 TensorFlow +  Inception  V3 今回はGoogle  Cloudのイベントだったのでこんな感じですが、 もちろんGoogle製品じゃなくてもできることはありますね ここの選び⽅方を   失敗すると死にます  

Slide 23

Slide 23 text

センスの良良いあなたによって 実現可能性が確認できました! モデルの精度度やら⾊色々気になりますが、 動きそうならこの時点ではOKとします ※この時点でOKしたやつがだいたい最終化されます

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

実装 • まあ基本は気合でエイヤーの世界となります • 機械学習系のライブラリはPythonが充実しているので、 必然的にPythonで作ると効率率率が良良くなります • なので、Flaskあたりで薄いAPIを作って裏裏側でほげほげ、 みたいな感じになるかと Web  API By  Flask ML  App

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

その他どうでも良良いTips

Slide 29

Slide 29 text

その他どうでも良良いTips • ベンダーが複数出てくる時、インターフェースの責務を こっちに寄せる – 調整するコストの⽅方が⾼高いので、よっぽどの事がない限り相⼿手 が欲しがるプロトコルで欲しいデータを作って上げる • 転ばぬ先の杖は多めに⽤用意する – 特にデモの場合(かつハードウェアが絡む場合)⽤用意周到過ぎ る準備をしたとしても、それでも不不⾜足の⾃自体が起こる

Slide 30

Slide 30 text

「何とかなる」 という強い⼼心を持つことが ⼀一番⼤大事でしょう ほぼ毎⽇日「できそう」と「できないかも」 を往復復する不不安定な⽇日々が続きます

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

おまけ(TFUG告知) • 発表者はいつでも募集中!   – TFがちょっとでもかすってたらOKです!     • 運営側の参加者募集中!   – めっちゃ肥⼤大化してますが今のところ2⼈人体制なので⾟辛いで す!   – 今ならやりたい放題やっていただけます!

Slide 33

Slide 33 text

Thanks!!