Mais conteúdo relacionado
Semelhante a MANABIYA Machine Learning Hands-On (20)
MANABIYA Machine Learning Hands-On
- 1. 本 気 で 機 械 学 習 や る 人
の た め の ハ ン ズ オ ン
来栖川電算 取締役 山口陽平MANABIYA 2017.6.19
- 4. 山 口 陽 平
@melleo1978
• 所属 & 経歴
– 有限会社 来栖川電算 取締役
– 名古屋工業大学大学院 博士前期課程修了
– IPA未踏ソフトウェア創造事業 採択
– Mashup Awards 9 優秀賞受賞
• 自己紹介 企画から実装まで全部やる人
– AI技術 & アルゴリズム の研究開発
• 文字認識,物体認識,動作認識,行動認識
– 言語処理系 の研究開発
• 分散DB,仮想機械,コンパイラ
• 好きなサービス AWS Lambda
※実物に髪の毛はありません。
4
- 5. 山 口 陽 平
@melleo1978
• [実践]画像認識 を執筆 WEB+DB PRESS Vol.83
– これから画像認識をはじめる人におススメ
5
– OpenCV の使い
方や実装例
– SIFTなどの各種
アルゴリズムや
特定物体認識の
しくみ
– 精度改善への取
り組み方
- 6. 来栖川電算
設立 2003年(名古屋工業大学発ベンチャー) 従業員 45人
• SF世界の技術を実現し、社会に役立てる
– AI技術のライセンス販売・研究・SI
• 類似検索,物体認識,動作認識,文字認識,…
– スマホアプリの企画・制作・運営
メイドさん
もふくめて
6
走行データ解析
周辺環境を認識し、様々な解析に活用
動作推定API
加速度センサで人の行動を推定
車両メーカー様 NTTドコモ様
- 8. テクノロジー企業
様々なアルゴリズムを駆使する技術者集団
• 様々な AI 技術
– 類似検索,物体認識,動作認識,文字認識
• 限界性能を引き出す優れた実装技術
– 機械学習・コンパイラ・データベース・仮想
機械などのアルゴリズムとバイナリハック
• 高速化,並列化,分散化,省空間化,高精度化
• ビジネスを差別化する認識エコシステム
– スケールに応じた仕組,競争力の自動強化
8
- 16. プログラマ視点
機械学習 = 自動プログラミングの一種
• 仕様(法則)が不明でも適用可能
– 具体的なデータ(現象)で仕様を雑に規定
• 不正確な推論
– データの網羅性・正確性に依存
16
現象
既知のデータ
法則
モデル
現象
未知のデータ
学習 推論
伝統的手法:モデルを直接記述
機械学習:データでモデルを間接記述
- 19. 構成要素
機械学習プロジェクトにはデータが必要
1. タスク設計 重要度:40%
• サービスのデータフローから機械学習を適用す
る機能の決定,入出力・要求性能の明確化
2. データ収集・アノテーション 重要度:40%
• ツール・ルールの整備・明確化,質と量の調整
3. アルゴリズム実装 重要度:10%
• パイプライン(学習・推論)の実装・調整
4. サービス運営 重要度:10%
• ギャップ・想定外の事態の把握・対応
19
- 25. 体操採点
スマホ を持って体操 ⇒ 腕の動きを採点
• 健康体操
– ラジオ体操第1・第2
– アクティブ体操®partⅡ
• ご当地キャラ体操
– くまモン体操 ※近日追加予定
25
- 34. ひねりだした方式
ビッグデータ × 頑健なアルゴリズム × 軽量な実装
• 分類タスクへの還元(頑健なアルゴリズム)
– 腕の軌道のズレが分かるほどのセンサではな
いが、腕の動きの種類なら分かりそう。
• 網羅的なデータ収集(ビッグデータ)
– 個人差により全く異なるデータになる上、影
響を受けない分析方法がなさそう(データが多
様体を形成 ⇒ 部分空間ごとに異なる法則に支配)。
• リアルタイム採点(軽量な実装)
– 待たせることなく採点できれば良さそう。
34
- 42. 実験:大規模
事例が増えるとパラメータが多い深層学習が有利に
42
手法 集団学習 改
膨大な軽量特徴の組み合わせ
深層学習 改
パラメータ数:ほどほど
事例数
オーグメント:なし
訓練 27,822,604 個 27,822,604 個
検証 27,453,840 個 27,453,840 個
処理時間
測定環境:サーバ
訓練 8.0 h
CPU
23.7 h
29.4 epoch GPU
検証 0.9 h
CPU 1 core
6.2 h
CPU 1 core
予測性能
Accuracy 83.2 % 86.8 %
Recall 84.3 % 87.1 %
Precision 82.8 % 87.6 %
F-Measure 83.4 % 87.1 %
※どちらの手法も同じ改良が施されているので、それらを比較することはできる
が、前の実験とは単純には比較できない。
- 43. 実験:大規模&リッチ
深層学習はパラメータを増やすとどんどん賢くなる
43
手法 深層学習 改
パラメータ数:ほどほど
深層学習 改
パラメータ数:リッチ(9倍)
事例数
オーグメント:なし
訓練 27,822,604 個 27,822,604 個
検証 27,453,840 個 27,453,840 個
処理時間
測定環境:サーバ
訓練 23.7 h
29.4 epoch GPU
6.6 h
2.9 epoch GPU
検証 6.2 h
CPU 1 core
67.1 h
CPU 1 core
予測性能
Accuracy 86.8 % 90.5 %
Recall 87.1 % 90.6 %
Precision 87.6 % 90.5 %
F-Measure 87.1 % 90.5 %
※リッチな方はパラメータ数が多すぎてリリースできないため、パラメータを増
やせば賢くなることが分かった時点で実験を終了した(まだ伸びしろあり)。
- 44. 実験:リリース版
毎週、ユーザから収集したデータを学習させまくる
44
手法 深層学習 改
パラメータ数:ほどほど
深層学習 改Ⅱ
パラメータ数:ほどほど
事例数
オーグメント:なし
訓練 27,822,604 個 95,803,200 個
検証 27,453,840 個 27,453,840 個
処理時間
測定環境:サーバ
訓練 23.7 h
29.4 epoch GPU
47.6 h
75.0 epoch GPU
検証 6.2 h
CPU 1 core
4.4 h
CPU 1 core
予測性能
Accuracy 86.8 % 90.3 %
Recall 87.1 % 90.6 %
Precision 87.6 % 90.0 %
F-Measure 87.1 % 90.2 %
※手法を改良(高速化)したため、処理時間が少なくなっている。改良は高速化
のみなので、予測性能の向上は訓練事例数の増加によるものである。
- 46. スコア
ユーザ体験(納得感)が劇的に改善
• 平均スコア:75点 ⇒ 90点
46
70
75
80
85
90
95
20150713
20150727
20150810
20150824
20150907
20150921
20151005
20151019
20151102
20151116
20151130
20151214
20151228
20160111
20160125
20160208
20160222
20160307
20160321
20160404
20160418
20160502
20160516
20160530
20160613
20160627
20160711
20160725
20160808
20160822
20160905
20160919
20161003
20161017
20161031
20161114
20161128
- 47. 参加者数
参加者だけでなく熱中している人が増えた
• 参加者数 / イベント:3.5倍↑ 参加者数 / 日:4.5倍↑
47
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
20150713
20150727
20150810
20150824
20150907
20150921
20151005
20151019
20151102
20151116
20151130
20151214
20151228
20160111
20160125
20160208
20160222
20160307
20160321
20160404
20160418
20160502
20160516
20160530
20160613
20160627
20160711
20160725
20160808
20160822
20160905
20160919
20161003
20161017
20161031
20161114
20161128
- 55. 悩ましさへの対処
すぐに相談できる体制 × ルールの継続的改善
• 状況の共有 & AIエンジニアによる判断
– 勝手な判断は、ばらつきを増やす。
– 似た別のタスクへの変更もありうる。
• 全員が同じ判断を下せる基準
– 迷うと時間がかかり、ばらつきも増える。
• 様子を記録するフラグ
– 様子によって記録の有無を変えると漏れる。
– 悪影響を抑えつつ手間がかかるものを除外できる。
• 品質や生産性の測定
– ルール変更に伴うばらつきやペースの変化を知る。
55
- 72. 情景画像文字認識とは
いわゆる “OCR” とは ”扱う画像” が違う
• 悪環境下での文字認識
– 手書き・様々な書体・かすれ・点描・きつい
パース・統一性のない並び・逆光・陰・影・
グラデーション・モアレなど
• 使える場面
– 屋外でのスマホカメラを使った棚卸し
– 車載カメラからの標識認識
– 商品パッケージからの成分情報抽出
– キーワードによるアルバム・ビデオの頭出し
72
- 90. 事例:動作推定API
ドコモ と 来栖川電算 の共同研究
• 加速度データから人の動作や行動を検出
– 静止,歩き,走り,自転車,睡眠,食事
• 動作と直接対応しない行動も検出可能
• スマホ・スマートウォッチに対応
– Android,Android Wear,…
• 加速度データにアクセスできる API を備えたウェアラブルデバイス
– ※次の画像は画像中のデバイスに対応していることを保証するものではありません。
90
- 98. 研究が捗る
実験サイクルが高速化 実験の再現性が向上
• 計算資源の隔離
– 実験スクリプトが他と干渉しないので、実験が失
敗したり、出力が混じったりしない。
• 計算資源の抽象化
– 計算資源(自社・お客様・クラウドなど)の変化
に頑健な実験スクリプトを作りやすい。
• 便利な機能
– 実験が自動的に永続化され、すぐに再現できる。
– テンプレートから簡単に実験をはじめられる。
98
- 102. 配布が捗る
スマホやサーバへの組み込みがスムーズに
• DNN の推論計算の効率化
– スマホなどに収まるように演算量やメモリ使用量
を抑えることができる。
– 計算共有・順序変更・部分計算など応用に合わせ
た実装に変更できる。
• DNN のアーキテクチャの隠蔽
– ハックやノウハウを解析しづらくできる。
• コンパクトな実装・依存関係
– 容量が小さいのでアプリにも組み込める。
– 依存物が少なく実行環境で問題が起こりにくい。
102