SlideShare a Scribd company logo
1 of 19
モデルの精度向上を目指す前に考える
キホンのキ
2019/3/30 Rio Kurihara
~画像認識の例~
はじめに
本日は私の実体験をもとに、
機械学習サービス開発のPoCで何を気を付けるべきかお話します
2
話すこと
• 画像解析モデルを組み込んだサービスを開発するにあたって、
PoCで何を検討すべきか
• 失敗談
話さないこと
• 画像処理・画像解析の細かい技術
• 画像処理・画像解析以外の話(とはいえ基本的な考え方は共通しているはず)
Ajenda
• 機械学習サービス開発の流れ
• 実体験をもとにした失敗談
• まとめ
3
機械学習サービス開発の流れ
4
機械学習サービス開発の流れ
5
PoC
プロトタイプ
作成
実地検証 本開発 運用保守
• 何のためのPoC?よく考える。
• 最終的な運用を見据えた上で、PoCで何を検証するかを決める必要がある
• なぜ?
• 「課題が機械学習で解けるか」「精度がどれくらい出るか」だけをPoCで検証しても、
結局運用上の制約を考慮したらモデル組みなおし・・・等になることもあり得る
本日お話する部分
こわい話
6
PoC
プロトタイプ
作成
実施検証 本開発 運用保守
超高精度モデルできたww
クオリティ高めのプロトタイプもできたわww
7
PoC
プロトタイプ
作成
実施検証 本開発 運用保守
こわい話
作ったはいいけど
現場の人に使ってもらえない・・・ 全然運用に耐え得る
精度じゃない・・・
新商品が出る度に開発に
こんな時間かけられないよ・・・ 時間経過とともにモデルの精度が
下がっているような・・・
本番環境の撮像環境が
PoCと違う・・・
PoC貧乏
PoC疲れ
実際に失敗しました
9
今回例に出す麻雀PJの概要
• 画像をインプットにして麻雀牌を検出し、点数計算を自動化したい
• サービス/アプリ化しようとしたときに失敗した ←具体例をお話します
• 元々は自己研鑽目的だったのでアプリ化なんて考えていなかった
プロセスイメージ
入力(画像)
※Sample
牌の識別
役名 1p 2p 3p … 8m 9m p f c
平和 1 1 1 … 0 0 0 0 0
断ヤオ 0 1 1 … 1 0 0 0 0
混一 0 0 0 … 1 1 3 0 0
点数計算
ルールベース
麻雀点数自動計算モデルのユースケース
画像取得
画像前処理
誤判別データの収集
前処理後画像での物体検出
ルールベースの点数計算
継続活用
新しい麻雀牌・マット等への対応
新しい麻雀牌の定義
(アノテーション)
画像収集
モデル性能の評価
モデルの調整と再学習
アプリケ―ションへのデプロイ
モデル挙動のモニタリング
ユーザーからのFB
挙動NG
評価NG
ユーザが使うときの流れ
モデルの改良や機能追加のために
開発者が実施する流れ
“3000オール”
ユーザ
アップロード
アプリとかサービスを作る時って、こういったユースケースを考えるかと思います
継続活用
新しい麻雀牌・マット等への対応
新しい麻雀牌の定義
(アノテーション)
画像収集
モデル性能の評価
モデルの調整と再学習
アプリケ―ションへのデプロイ
モデル挙動のモニタリング
ユーザーからのFB
挙動NG
評価NG
モデルの改良や機能追加のために
開発者が実施する流れ
麻雀点数自動計算モデルのユースケース
画像取得
画像前処理
誤判別データの収集
前処理後画像での物体検出
ルールベースの点数計算
ユーザが使うときの流れ
“3000オール”
ユーザ
アップロード
どのくらいの頻度?
完全自動化?
何を性能とする?
定量評価は?
完全自動化?
どの程度の
スピードで?
どんなフォーマット
で出力?
アノテーション方法?
質は?量は?誰が?
オンプレ?
クラウド?
カメラの性能は?
撮像環境は?
誰が何を
モニタリング?
どんなデータが
必要?
頻度?基準?
どうやって?
カメラの性能は?
ユースケースとPoCの設計の紐づけが甘かったことが失敗した原因
ハードウェア?
失敗談 (3つ)
12
継続活用
新しい麻雀牌・マット等への対応
新しい麻雀牌の定義
(アノテーション)
画像収集
モデル性能の評価
モデルの調整と再学習
アプリケ―ションへのデプロイ
モデル挙動のモニタリング
ユーザーからのFB
挙動NG
評価NG
モデルの改良や機能追加のために
開発者が実施する流れ
麻雀点数自動計算モデルのユースケース
画像取得
画像前処理
誤判別データの収集
前処理後画像での物体検出
ルールベースの点数計算
ユーザが使うときの流れ
“3000オール”
ユーザ
アップロード
どのくらいの頻度?
完全自動化?
何を性能とする?
定量評価は?
完全自動化?
どの程度の
スピードで?
どんなフォーマット
で出力?
どうやって?
カメラの性能は?
アノテーション方法?
質は?量は?誰が?
オンプレ?
クラウド?
カメラの性能は?
誰が何を
モニタリング?
どんなデータが
必要?
頻度?基準?
失敗談 その1 カメラ性能・撮像環境
14
iPhone撮影
(学習データ)
RasPiカメラ撮影
(本番環境)
PoCはiPhoneカメラで撮影しNNモデルを構築。本番はRasPiで推論
⇒ PoCで出ていた検出精度が本番環境で出ない (1000万画素vs500万画素)
(見るからに画質がちがう)
継続活用
新しい麻雀牌・マット等への対応
新しい麻雀牌の定義
(アノテーション)
画像収集
モデル性能の評価
モデルの調整と再学習
アプリケ―ションへのデプロイ
モデル挙動のモニタリング
ユーザーからのFB
挙動NG
評価NG
モデルの改良や機能追加のために
開発者が実施する流れ
麻雀点数自動計算モデルのユースケース
画像取得
画像前処理
誤判別データの収集
前処理後画像での物体検出
ルールベースの点数計算
ユーザが使うときの流れ
“3000オール”
ユーザ
アップロード
どのくらいの頻度?
完全自動化?
何を性能とする?
定量評価は?
完全自動化?
どの程度の
スピードで?
どんなフォーマット
で出力?
どうやって?
カメラの性能は?
アノテーション方法?
質は?量は?誰が?
オンプレ?
クラウド?
カメラの性能は?
誰が何を
モニタリング?
どんなデータが
必要?
頻度?基準?
16
失敗談 その2 推論時
LINEbot化しようとした
推論時に通信のオーバーヘッドがかかり、Messaging APIの仕様にひっかかる
ユーザー LINE bot サーバ herokuサーバ GPGPU
画像
送信受信
学習 推論
GPGPU
LINE bot のシステム構成図
17
失敗談 その3 推論時
通信のオーバーヘッドをなくすために、エッジ推論を試してみた
⇒ SSD(PoCで組んでいた物体検出モデル)が基盤に載らない。MobileNetSSDで
モデルを組みなおす
⇒ スピードの問題は無くなったが、精度はがた落ち
画像撮影・物体検出・結果出力
Vision Kit
Vision Kitのシステム構成図
GCP
MLEngine
推論学習
継続活用
新しい麻雀牌・マット等への対応
新しい麻雀牌の定義
(アノテーション)
画像収集
モデル性能の評価
モデルの調整と再学習
アプリケ―ションへのデプロイ
モデル挙動のモニタリング
ユーザーからのFB
挙動NG
評価NG
モデルの改良や機能追加のために
開発者が実施する流れ
麻雀点数自動計算モデルのユースケース
画像取得
画像前処理
誤判別データの収集
前処理後画像での物体検出
ルールベースの点数計算
ユーザが使うときの流れ
“3000オール”
ユーザ
アップロード
どのくらいの頻度?
完全自動化?
何を性能とする?
定量評価は?
完全自動化?
どの程度の
スピードで?
どんなフォーマット
で出力?
どうやって?
カメラの性能は?
アノテーション方法?
質は?量は?誰が?
オンプレ?
クラウド?
カメラの性能は?
誰が何を
モニタリング?
どんなデータが
必要?
頻度?基準?
その他の処理の部分でも
PoCの設計が甘いことによる失敗は様々起き得ます
まとめ
• PoCで精度だけ検証しても、使われないシステム/アプリができてしまう
• ユースケースを考えた上で、逆算してPoCの設計をする必要がある
• 実際に機械学習サービスを作ってみて、高精度なモデルが作れるだけではユー
ザーへの価値提供ができないことを身を以て感じた
• ユースケースを踏まえた分析設計、実装ができるようなエンジニアになりたい
19

More Related Content

Similar to Ml15minutes 190330

【evar7】web担当者forum事例_part3
【evar7】web担当者forum事例_part3【evar7】web担当者forum事例_part3
【evar7】web担当者forum事例_part3
Shinichiro Oho
 
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPANパーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
Yahoo!デベロッパーネットワーク
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 

Similar to Ml15minutes 190330 (20)

【evar7】web担当者forum事例_part3
【evar7】web担当者forum事例_part3【evar7】web担当者forum事例_part3
【evar7】web担当者forum事例_part3
 
俺 と ご褒美 Bot
俺 と ご褒美 Bot俺 と ご褒美 Bot
俺 と ご褒美 Bot
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
 
connpass特徴と開発の流れ
connpass特徴と開発の流れconnpass特徴と開発の流れ
connpass特徴と開発の流れ
 
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPANパーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
 
【eVar7】web担当者forum part3-6番外編
【eVar7】web担当者forum part3-6番外編【eVar7】web担当者forum part3-6番外編
【eVar7】web担当者forum part3-6番外編
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
20160416 プロジェクトの始め方【超入門】
20160416 プロジェクトの始め方【超入門】20160416 プロジェクトの始め方【超入門】
20160416 プロジェクトの始め方【超入門】
 
スマートフォンアプリエンジニアのための最新プロトタイピング講座
スマートフォンアプリエンジニアのための最新プロトタイピング講座スマートフォンアプリエンジニアのための最新プロトタイピング講座
スマートフォンアプリエンジニアのための最新プロトタイピング講座
 
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
「まちの本屋の総合情報サイト」の紹介 カスタマイズ編
「まちの本屋の総合情報サイト」の紹介 カスタマイズ編「まちの本屋の総合情報サイト」の紹介 カスタマイズ編
「まちの本屋の総合情報サイト」の紹介 カスタマイズ編
 
LT13(前半)Workshipにおけるレコメンドエンジン実装
LT13(前半)Workshipにおけるレコメンドエンジン実装LT13(前半)Workshipにおけるレコメンドエンジン実装
LT13(前半)Workshipにおけるレコメンドエンジン実装
 
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
 
ML Opsのススメ
ML OpsのススメML Opsのススメ
ML Opsのススメ
 
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」  佐野正太郎明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」  佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
 
20180920_【ヒカ☆ラボ】【データサイエンティストが教える 】 機械学習、人工知能を使った「ビジネスになる」アプリケーションの作り方
20180920_【ヒカ☆ラボ】【データサイエンティストが教える 】 機械学習、人工知能を使った「ビジネスになる」アプリケーションの作り方20180920_【ヒカ☆ラボ】【データサイエンティストが教える 】 機械学習、人工知能を使った「ビジネスになる」アプリケーションの作り方
20180920_【ヒカ☆ラボ】【データサイエンティストが教える 】 機械学習、人工知能を使った「ビジネスになる」アプリケーションの作り方
 
Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_upload
 

Ml15minutes 190330