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
機械学習どこから手をつけよう? Google DevFest 2018 Tokyo
Search
Kazusa
September 01, 2018
Technology
2
1.2k
機械学習どこから手をつけよう? Google DevFest 2018 Tokyo
Google DevFest 2018 Tokyo (
https://tokyo2018.gdgjapan.org/ml
)
Kazusa
September 01, 2018
Tweet
Share
More Decks by Kazusa
See All by Kazusa
20190208_MLSE_NeurIPS2018_tkazusa.pdf
tkazusa
1
720
受託分析屋がKubeflowを使って思うこと_KubeflowMeetup_1.pdf
tkazusa
2
2.4k
機械学習システム開発及び運用にかかる 不確実を考慮した要件定義の考察および提案
tkazusa
0
310
【論文読み】GCVAE-GAN Fine-Grained Image Generation through Asymmetric Training
tkazusa
0
130
【論文読み】Graph Convolutional Networks for Classification with a Structured
tkazusa
0
63
Other Decks in Technology
See All in Technology
地方企業がクラウドを活用するヒント
miu_crescent
PRO
1
110
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
160
消し忘れリソースゼロへ!私のResource Explorer活用法
cuorain
0
140
攻撃者の視点で社内リソースはどう見えるのかを ASMで実現する
hikaruegashira
4
2.1k
RevOpsへ至る道 データ活用による事業革新への挑戦 / path-to-revops
pei0804
3
810
Fin-JAWS第38回reInvent2024_全金融系セッションをライトにまとめてみた
mhrtech
1
120
Site Reliability Engineering on Kubernetes
nwiizo
6
4.4k
Japan AWS Jr. Championsがお届けするre:Invent2024のハイライト ~ラスベガスで見てきた景色~
fukuchiiinu
0
1.1k
Agentic AI時代のプロダクトマネジメントことはじめ〜仮説検証編〜
masakazu178
3
400
カスタムインストラクションでGitHub Copilotをカスタマイズ!
07jp27
6
530
srekaigi2025-hajimete-ippo-aws
masakichieng
0
240
トレードオフスライダーにおける品質について考えてみた
suzuki_tada
3
180
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
427
64k
Building Applications with DynamoDB
mza
93
6.2k
Documentation Writing (for coders)
carmenintech
67
4.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Gamification - CAS2011
davidbonilla
80
5.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
990
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Done Done
chrislema
182
16k
Adopting Sorbet at Scale
ufuk
74
9.2k
Designing for Performance
lara
604
68k
Transcript
機械学習どこから 手をつけよう? 2018/9/1 Google DevFest 2018 Tokyo
自己紹介 • 上総 虎智 Taketoshi Kazusa • Github: tkazusa /
Twitter: @tkazusa • BrainPad Inc. 分析官 • 最近の興味範囲 機械学習システムの継続的デプロイ
このセッションで話すこと ✕:機械学習とはなにか ✕:アルゴリズムそのものの話 ✕:機械学習のフレームワークについて ✕:機械学習サービスの使い方について ◯:機械学習使った「手元で動く何か」を作るまでの考え方 ◯:機械学習アプリのプロトタイプを作るために便利なものの整理 ◯:プロトタイプを作った後の話を少し
Agenda • 機械学習で今何ができるんだっけ • 実際どこから手をつければいいんだろう • ちゃんとプロダクトに仕上げるために • まとめ
機械学習で今何ができるんだっけ
Solving problems with AI for everyone
自動運転での活用:Waymo
目をスキャンして心疾患を予測
Google Glassでスマートファクトリー AI on Google Glass Drives the Factory to
the Future (Cloud Next '18) https://www.youtube.com/watch?v=yL-LXKrpcvE&feature=
機械学習どこから手を付けよう
さっさと プロトタイプ つくっちゃおう
プロトタイプから作っちゃいましょう • 機械学習はどこまでも“やってみないとわからない”がつきまとう • プロトタイプを作る難易度は圧倒的に下がってきている • 実際に使えるプロダクトにするのは結構距離がある プロトタイプ作ってみて、取り組む価値のあるものだと思ったら プロダクトに仕上げて行くので良いのでは?!
プロトタイピングするときに考えること • 機械学習モデルの学習・実装 「どれだけ楽できるか」、「どれだけシンプルにできるか」 • 学習済モデルのデプロイ先 どこにあるリソースとデータで推論を実行するか? まずは「いったん動くものを作ってみる」という観点では下記を検 討すれば良いと思います。
プロトタイピングするときに考えること よく言われる「機械学習は技術的負債になりやすい」は実感としてあり、 なるべく使わない、使うにしてもシンプルにする意識が必要そうです。 機械学習が 本当に必要? 新たなデータの 学習が必要? 手元にモデルが 必要? 新たにモデル作る
必要がある? 論文などから モデルを実装 既存モデルへ 独自データを学習 APIサービス 既存モデルの 推論活用 転移学習 既存モデルの 微調整じゃ無理? ルールベースで対応 データ可視化&人の判断 No Yes
プロトタイピングするときに考えること 今まで一般的だったのはPythonやRでモデルを作ってWebアプリとして デプロイだったが、様々なサービスの発展でデプロイ先の選択肢も増え てきました
プロトタイピングするときに考えること 今まで一般的だったのはPythonやRでモデルを作ってWebアプリとして デプロイだったが、様々なサービスの発展でデプロイ先の選択肢も増え てきました • 遅延が少ない • オフライン環境でも動く • データがデバイス上に留まる
• 電力効率が良い • センサーデータを直接扱える
プロトタイピングするときに考えること 今まで一般的だったのはPythonやRでモデルを作ってWebアプリとして デプロイだったが、様々なサービスの発展でデプロイ先の選択肢も増え てきました • 遅延が少ない • オフライン環境でも動く • データがデバイス上に留まる
• 電力効率が良い • センサーデータを直接扱える
プロトタイピングするときに考えること 今まで一般的だったのはPythonやRでモデルを作ってWebアプリとして デプロイだったが、様々なサービスの発展でデプロイ先の選択肢も増え てきました
どうやってモデルを実装する? どこにデプロイする? を整理したら あとはアイデアを 形にしていく
統計や数学について、 学ばなくて良いんですか?
プロトタイプを作る中で、 必要になったタイミングで 学べば良いのでは?
機械学習モデル開発に便利なサービス
プロトタイピングするときに考えること よく言われる「機械学習は技術的負債になりやすい」は実感としてあり、 なるべく使わない、使うにしてもシンプルにする意識が必要そうです。 機械学習が 本当に必要? 新たなデータの 学習が必要? 手元にモデルが 必要? 新たにモデル作る
必要がある? 論文などから モデルを実装 既存モデルへ 独自データを学習 APIサービス 既存モデルの 推論活用 転移学習 既存モデルの 微調整じゃ無理? ルールベースで対応 データ可視化&人の判断 No Yes
プロトタイピングするときに考えること よく言われる「機械学習は技術的負債になりやすい」は実感としてあり、 なるべく使わない、使うにしてもシンプルにする意識が必要そうです。 機械学習が 本当に必要? 新たなデータの 学習が必要? 手元にモデルが 必要? 新たにモデル作る
必要がある? 論文などから モデルを実装 既存モデルへ 独自データを学習 APIサービス 既存モデルの 推論活用 転移学習 既存モデルの 微調整じゃ無理? ルールベースで対応 データ可視化&人の判断 No Yes • まずは特定のタスクに対応したAPIサービ スを探す • 機械学習を適用したいデータを入力する と結果が帰ってくる • 手元にモデルはない状態、モデルの変更 もできない
プロトタイピングするときに考えること よく言われる「機械学習は技術的負債になりやすい」は実感としてあり、 なるべく使わない、使うにしてもシンプルにする意識が必要そうです。 機械学習が 本当に必要? 新たなデータの 学習が必要? 手元にモデルが 必要? 新たにモデル作る
必要がある? 論文などから モデルを実装 既存モデルへ 独自データを学習 APIサービス 既存モデルの 推論活用 転移学習 既存モデルの 微調整じゃ無理? ルールベースで対応 データ可視化&人の判断 No Yes • 世界中の研究者やエンジニアが開発した 学習済機械学習モデルを借りてきて使う • 「(タスク名) 有名なモデル」とかでググ ると大体出てくる • 最近はTensorFlow Hubにまとめられつつ ある
プロトタイピングするときに考えること よく言われる「機械学習は技術的負債になりやすい」は実感としてあり、 なるべく使わない、使うにしてもシンプルにする意識が必要そうです。 機械学習が 本当に必要? 新たなデータの 学習が必要? 手元にモデルが 必要? 新たにモデル作る
必要がある? 論文などから モデルを実装 既存モデルへ 独自データを学習 APIサービス 既存モデルの 推論活用 転移学習 既存モデルの 微調整じゃ無理? ルールベースで対応 データ可視化&人の判断 No Yes • 学習済モデルだと作者が想定したタスク& 対象しかしか対応できない • 似たタスクだけど独自の対象に適応したい ような場合は既存モデルに独自のデータ セットを学習させるのが良い • 手元の環境で学習させたり、マネージドな 環境を使うなどから選択する
プロトタイピングするときに考えること よく言われる「機械学習は技術的負債になりやすい」は実感としてあり、 なるべく使わない、使うにしてもシンプルにする意識が必要そうです。 機械学習が 本当に必要? 新たなデータの 学習が必要? 手元にモデルが 必要? 新たにモデル作る
必要がある? 論文などから モデルを実装 既存モデルへ 独自データを学習 APIサービス 既存モデルの 推論活用 転移学習 既存モデルの 微調整じゃ無理? ルールベースで対応 データ可視化&人の判断 No Yes • 解決したいタスクに対して独自のアイデアで 挑む場合 • 学習については既存モデルと同様手元の環境 で学習させたり、マネージドな環境を使うな どから選択する • データに併せて独自のモデルを構築してくれ るAutoMLの登場でここも自動化の波が
機械学習モデルのデバイスへの デプロイに便利なサービス
None
TensorFlow Lite デバイス上でTensorFlowのモデルを動かすために、モデルを軽量化して保存し、 デバイス上で動かすためのランタイムを提供する仕組み。アプリからのインタ フェースはJava/C/C++/Pythonなどで実装可能。 https://www.youtube.com/watch?v=ByJnpbDd-zc
None
ML Kit for Firebase Firebaseでのアプリ開発に機械学習モデルを便利に組み込むためのの仕 組み。 • iOSとAndroidのSDKがある • Base
APIsとカスタムモデルの両方をサポート • On-DeviceとCloud AI inference APIsを使い分けられる
None
TensorFlow.js JavascriptでTensorflowが取り扱えるようになりました。 • JavascriptでTensorflowのモデルを書いたり学習させたりできる • 既存の学習済モデルを簡単にインポートしてくることができる • インポートしたモデルを再学習させることもできる Machine Learning
in JavaScript (TensorFlow Dev Summit 2018) https://www.youtube.com/watch?v=YB-kfeNIPCE
None
None
自作TFモデルを色んなところにデプロイしたい toco TensorFlow.js converter Bonnet Compiler モデル構築 フォーマット 変換 モデルの実行
自作TFモデルを色んなところにデプロイしたい toco TensorFlow.js converter Bonnet Compiler モデル構築 フォーマット 変換 モデルの実行
Demo
Observableとは
Observableとは Jupyter notebookのJavascript版みたいなもの
Observableとは
物体検出をブラウザ上で動かしてみる https://goo.gl/vF2oV4
物体検出をブラウザ上で動かしてみる https://goo.gl/vF2oV4
プロダクトに仕上げるために
プロダクトに仕上げるために • 機械学習モデルは使い続けてこそ価値がある しかし、機械学習モデル(というかデータ)は水物 開発し終わった瞬間からメンテし続けないとだめ • その機械学習モデルは本当に使って良いモデル? 機械学習モデルの公平性 機械学習アプリのプロトタイプを作ることはかなりハードル下がっ て来ましたが、あくまでもプロトタイプ。機械学習モデルを使うと
いう観点から考えなければいけないことがたくさんあります。
機械学習システムの継続的デプロイ 機械学習は1回学習させて「モデルができました!」となるような ものは少なく、データの傾向の変遷などから定期的に学習をさせて モデルを刷新させなければいけないような場合があります。 • 製品の需要予測、季節の変化や新製品の投入、プロモーションの 変化をモデルに取り込まなければ • ニュース記事についての分析、時代とともに「やばい」の意味が 変わってきているのに対応しなければ
機械学習システムの継続的デプロイ • モデルの再学習は定期的?それとも精度の劣化がトリガー? • 再学習させるデータの質はどの程度変化しているのか? • 新しいデータを学習させたモデルは以前のモデルとどのように挙 動が変化しているのか? • データ、機械学習モデル、コンフィグ、学習スクリプトのバー
ジョン管理は? • その再学習後のモデル、本番にデプロイしていい?テストどうす る? 機械学習は1回学習させて「モデルができました!」となるような ものは少なく、データの傾向の変遷などから定期的に学習をさせて モデルを刷新させなければいけないような場合があります。
機械学習モデルの公平性 機械学習モデルを使うことによって差別を生み出してしまうかもしれない ことに注意を払って置く必要があるのではないでしょうか。 https://developers.google.com/machine-learning/fairness-overview https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencing
まとめ
まとめ • 「機械学習モデルの開発が簡単」はもちろん、機械学習アプリのプ ロトタイプ開発のハードルも下がってきた • 重要な課題を解決するのに、必ずしも難しい手法を使う必要はない 機械学習の応用ではシンプルな方法が継続活用には良いかもしれ ない • 今ある技術で解決できる/すべき課題はなにかを考えて実際に手を
動かすのが大事になってきているのでは
ありがとうございました http://www.brainpad.co.jp/recruit/ 株式会社ブレインパッドの採用情報見て下さい