Upload
yasuyuki-sugai
View
8.974
Download
0
Embed Size (px)
Citation preview
AITCオープンラボ 第5回IoT勉強会~人工知能xIoT~
IoTとDeep Learningで 自宅警備員を育ててみる
1
2015/06/18
自己紹介
2
•菅井康之
•株式会社イーグル所属
• AITCクラウドテクノロジー活用部会 サブリーダー
https://www.facebook.com/yasuyuki.sugai
よろしくお願いしまーす ※この資料の内容は、
個人の見解です
人工知能的なことは門外漢
- プロローグ -
3
理解力の乏しいわたしは、世間で 持て囃されているDeep Learningに 全く付いていけていませんでした。
4
マジムリ。。 才能ない。。
今回のテーマがAIxIoTということなので 自分の触ったことしか話せないわたしは とりあえずなんか作ってみることにしました
5
色々やってきたけど 今回はハードル高いな。。。
今日のお話
6
今日のお話の流れ・・・
• こんなん作ってみました編 ←前振り – 家族を認識させよう – 在宅?留守?を認識させよう – 留守中の訪問を認識させよう – (おまけ)今日の天気を喋らせよう
• こんな風に作ってみました編 ←メイン – :
7
以上、2本でお送りしまーす
今日お話しないこと・・・
• Deep LearningやIoTってなんぞや? – わたしが説明できないので – 時間の都合により・・・ – 数式とかも出てきません
• 何も無いのも寂しいので、過去のクラウド部会で開催したニューラルネットワーク勉強会の資料を(人のだけど勝手に)置いときます
8
何度も 読み返してます
http://www.slideshare.net/kzokm/ss-41622970
こんなん作ってみました編
9
人工知能=ロボットと安易に結びつけたわたしは、IoTとDeep Learningの力を駆使して、立派な自宅警備員を育てることを決意しました
10
ロボットはロマン
育てる上で、二つのことを肝に銘じます
11
少しずつ学んでいきましょう
• 多くを求めすぎない • 人見知りするので、他人との
コミュニケーションは諦める
13http://www.rapiro.com
ロボット(Rapiro)は頭部に Raspberry Pi2(OS:Linux)を 搭載して動作させています
ちなみに・・・
こんなん作ってみました編 ①家族を認識させよう
14
自宅警備員たるもの、家族の協力が無いと生きていけません 家族と家族以外の人を区別できるよう、訓練します
15
基本的には全部教師ありの 学習となります
どうやって家族を識別するか?
16
• Rapiroの前面にカメラを配置し、画像撮影 • 事前に学習したモデルと画像を用いて分類 – 特定の人物の顔 – それ以外の顔
カメラ
顔の区別ができるようになったら、 玄関付近で人の顔を監視させ、 家族以外の顔を検知した場合に メールで通報させることにしました
17
自宅警備員の本領発揮ですね
18
• 家族を検知した場合
• 家族以外を検知した場合
ど、どちらさまですか? とりあえず通報しました 写真付きで
メール送信
おかえりなさいませ、 ご主人様💕
こんなん作ってみました編 ②在宅?留守?を認識させよう
19
調子にのって顔の検知をするのですが、、
結果、煩わしい →留守の時だけ検知するようにします (留守から復帰後の初回のみ)
20
• 付近を通るたびに検知される • 知ってる人や来訪者には失礼 – お客さんを迎えたり・・・ – 配達で届けてもらったり・・・
どうやって在宅/留守を認識するか?
21
• 玄関の扉にセンサーを設置 – 加速度センサー – 人感センサー
• センサーの値の変化から、人が外に出たのか入って来たのかを判定 – 在宅 • まだ外に出ていない人がいる
• 外から入ってきた人がいる
– 留守 • 全員が外に出た
こんなん作ってみました編 ③留守中の訪問を認識させよう
22
在宅か留守かが認識できるように なったので、留守中の訪問を通知して もらうようにします。 (人見知りなので、応対は無理)
ここでは、二つの違いを識別できる ようにします
23
• マンションのエントランスからの訪問 • 玄関先まで来ている訪問
どうやって場所を判別するか?
24
• 音センサーを設置 • ブザーの鳴り方が異なるため、その違いから判定 • 結果はメールで通知
こんなん作ってみました編 ④今日の天気を喋らせよう
25
在宅が分かり、かつ玄関付近に人が 来ることを検知できるようになったため、 朝の通勤時間に今日の天気を教えてもらいます。(朝は忙しいので2倍速で)
夜や夕方に雨が降りそうな場合は、 聞かなくてもわかるよう視覚的に 教えてもらいます。
26
どうやるか?
27
• 気象庁の公開データから府県天気概況を取得 • 天気は合成音声で通知 • 視覚的な表現はRapiroのLEDの色変化で通知
RGBフルカラー
こんな風に作ってみました編
28
こんな風に作ってみました編 ①家族を認識させよう
29
概要
30
• 画像の分類、識別にDeep Learning – 画像からの特徴量抽出が最大の魅力
• Deep LearningのライブラリにはCaffeを採用 – 画像分類の分野では一番話に聞くので – GPUでもCPUでも動作 – サンプルやドキュメントが充実
• 課題 – Caffeの動作環境の準備 – 学習用の画像データの用意
課題① Caffeの動作環境の準備
31
• Caffeのセットアップは大変と聞くけど。特にCUDA周り。 – 最近ではCaffeが動作する環境が公開されているので、
比較的楽チンに • Docker • AWSのAMI
• GPU環境なんて持ち合わせてないんですけど。 – CPUでも動作するけど、学習時間を考えるとGPUがオススメ – AWSのGPUインスタンスを使おう
• GPUインスタンスってお高いんでしょ。 – スポットインスタンスで節約 – バージニア州だと、1時間$0.1くらいあれば大体いける
余談①
32
Deep Learningで GPUの利用が急増?
(日本のみ・・・)
余談②
33
二日かけてまわしていた パラメータチューニングが・・・
スポットインスタンスの ご利用は計画的に・・・
ケチりすぎるのもダメ。。。
課題② 学習用の画像の用意
35
• Deep Learningでは大量の画像が必要って聞くけど・・・ – 学習用データ超重要 – ここのデータの精度で学習結果に如実に影響が
• 今回のデータの準備は・・・ – 家族の顔写真の用意 • OpenCVで5日間に分けて一人あたり3千枚生成 • パソコンの前にいると勝手に撮影 • 流出すると変質者と思われるぐらいの量。。。
(しかも全部自分の画像。。。) – 家族以外の顔写真 • LFWのデータを利用
LFW (Labeled Face in the Wild)
http://vis-www.cs.umass.edu/lfw/
• 研究用に作成された、著名人がラベル付けされた画像集 – 1万枚以上の画像が収録 – 一人あたりの画像枚数は少なめ
• 今回の使い方 – ラベルは考慮しない – 画像の質を重視してスクリーニング – ある程度のグループに分類(機械的に+最後は人力) – 最終的に秘伝のタレみたいな状態に。。 36
選ばれる人の基準が よくわからん・・・
• 何を変えるとどう変わるかが全く予測できない・・ – ただの知識不足という噂も – いくつか用意されているモデルのパラメータを参考に
• 進化的アルゴリズム – こちらも過去のクラウド部会で開催した
進化的アルゴリズム勉強会の資料を (人のだけど勝手に)置いときます
パラメータチューニング
何度も(ry
http://www.slideshare.net/kzokm/genetic-algorithm-41617242
余談③
38
ただこれが言いたかっただけです。。。
Pythonの進化的アルゴリズムの ライブラリも「DEAP」
deep x deap!!
• 40,000回の試行で93.04%の精度となった – AWS g2.2xlargeインスタンスで2時間程度 – 10,000回あたりで収束?
学習結果
39
• 学習には時間がかかるけど、学習モデルを使った評価は早い – CPUで十分な速度(CPUでも一枚の画像を数秒で分類) – GPUで学習モデルを作成し、評価はCPUで行うと
お財布にも優しい
• 分類の精度は学習用データによるところが大きい – テスト精度が99%まで行っても、新しいデータが軒並み
誤判定だったり – 過学習っぽい感じ – LFWの画像増やすとそっちに持ってかれたり、比率も重要
学習モデルの利用
ざっくりの構成
41
• 一通りの検証を終えるまでのAWS費用は300円位でした
画像分類用の簡単な Webインタフェースを構築
こんな風に作ってみました編 ②在宅?留守?を認識させよう
42
概要
43
• センサーデータから実環境の状況把握 – 今回は加速度センサーと人感センサーを利用
• センサーとRapiro間は無線通信 – 配置場所の制約から逃れる – Zigbee通信で近距離無線通信
• 課題 – 入室と退室をどうやって判別するか
センサーの構成
44
人感センサー
加速度センサー
ArduinoZigbeeモジュール
課題① 入室と退室をどうやって判別
45
• まずは測定してプロットしてみる – 特徴や分散、相関や偏りから考える
人感センサー
加速度センサー
退室
入室
加速度センサーよりも前に人感センサーが反応しているか否かの違いが見受けらる
46
• 二つのセンサーの値変化の関係性から、判別ができそう
• けどそのまま判別しても面白くない、、、IoTとDeep Learningを組み合わせてみたい • センサーデータは時系列となる事が多いので
時系列データの波形を特徴量として。。。
数列として扱うのではなく、 グラフを画像化して画像識別で
いけるんじゃね?
センサーデータとDeep Learning
47
• Deep Learningで時系列データのグラフから特徴量の抽出、分類を行う – 数列から特徴量を抽出して分類するのは結構大変
• グラフの波形が同じようになるよう前処理は必要 – 間隔の均一、階差、補間、移動平均などを施したり – 線だけでなく、面で表現することで特徴量を認識しやすく – 部分的にデータ抽出するところにはルール化が必要になる – 顔識別と同様に、ここの出来が悪いと結果にも影響
• 学習用データの準備 – 基は数列なので、いくらでもデータは増やせる – ノイズを加えたり画像の水増しもお茶の子さいさい
結果、時系列データの波長形状からの 分類ができちゃいました
48
簡単に出来すぎて なんだか怖い。。。
• 時代はグラフで如何に特徴量を出すかに突入?
こんな風に作ってみました編 ③留守中の訪問を認識させよう
49
50
玄関
エントランス
②と大体同じような 話になるので割愛 時間もないし。。。
同じ時間軸で比較 音センサーが反応している 時間の長さに違いが 見受けられる
こんな風に作ってみました編 ④今日の天気を喋らせよう
51
53この部分を使用
府県天気概況のXML
夕方か夜に雨が降りそうの判定
54
• ある日の天気概況
• 夕方や夜などの単語の後で、近い距離に雨を表す単語が現れるかで判定
• IoTもDeep Learningも機械学習も関係ないのであくまでおまけ・・・
15日は、晴れますが夕方から雲が広がり、雨や雷雨となる所があるでしょう。東京都では高温が予想されます。熱中症などの健康管理に注意してください。16日は、曇りで昼過ぎ一時雨の見込みです。
デモ(時間があれば・・・)
55
まとめ(というか感想)
56
今日お話しした内容をざっくり纏めると Deep Learningの特徴量抽出技術を IoTでよくあるシチュエーションに 適用してみたというお話でした。
・生活動向のセンシング ・パターン検出時のアラート
57
ロボットということもあってか 本当に賢くなっているような
感覚が味わえました(小並感)
58
そしてあらためて・・・
59
人間の特徴量抽出力って半端ない
60
fin...
61