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
700
受託分析屋がKubeflowを使って思うこと_KubeflowMeetup_1.pdf
tkazusa
2
2.4k
機械学習システム開発及び運用にかかる 不確実を考慮した要件定義の考察および提案
tkazusa
0
290
【論文読み】GCVAE-GAN Fine-Grained Image Generation through Asymmetric Training
tkazusa
0
130
【論文読み】Graph Convolutional Networks for Classification with a Structured
tkazusa
0
62
Other Decks in Technology
See All in Technology
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
170
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
670
【LT】ソフトウェア産業は進化しているのか? #Agilejapan
takabow
0
120
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
12
1.6k
Engineer Career Talk
lycorp_recruit_jp
0
200
日経電子版のStoreKit2フルリニューアル
shimastripe
1
160
"とにかくやってみる"で始めるAWS Security Hub
maimyyym
2
110
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
【平成レトロ】へぇボタンハック👨🔧
vanchan2625
0
120
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
130
組織成長を加速させるオンボーディングの取り組み
sudoakiy
3
320
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
660
Featured
See All Featured
Building Adaptive Systems
keathley
38
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
24k
Side Projects
sachag
452
42k
4 Signs Your Business is Dying
shpigford
180
21k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Designing the Hi-DPI Web
ddemaree
280
34k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Automating Front-end Workflow
addyosmani
1366
200k
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/ 株式会社ブレインパッドの採用情報見て下さい