[1][2][3]

オンデバイス学習：教師データ無しで置くだけ異常検知
[4]

[5]

慶應義塾大学 理工学部 情報工学科
准教授 松谷宏紀[6]2019年9月20日

1[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)

IoT機器のアプリケーション• 工場、サーバラック、ロボット、家庭、監視、ヘルスケア
[1]

[4]

Factory

Consumer
Home
Electronics
automation

[2]

[5]

Server rack

Surveillance

[3]

[6]

Robot (UAV)

Bodymovement[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)2

IoT機器による異常検知• 工場、サーバラック、ロボット、家庭、監視、ヘルスケア
[1]

[2]

[3]

異常検知
✓ 「通常」として定義された振る舞いに合致しないパターンを見つけること✓ 異常＝レアとは限らない
IoT機器による異常検知✓ 大半のセンサデータをIoT機器内で処理✓ 低コスト：通信費やクラウド利用料がかからない✓ 省エネ：無線通信の電力はムーアの法則が効かない
[4]

[5]

[6]

[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)3

実世界にAIを導入する際の課題• 工場、サーバラック、ロボット、家庭、監視、ヘルスケア[1]

画像認識 vs. 実世界異常検知✓ 画像認識 → 「猫の画像」は世界中どこでも猫！
✓ 実世界異常検知 → 環境ごとに「正常」が全く違う
[2]

[3]

環境（周囲の振動、騒音、水蒸気、明るさ）は変動✓ センサの位置、周囲の装置の稼働状況、…

ラベル付き教師データの準備は大変✓ パターン数が多く、正確なラベル付けが難しい[4]

課題：環境や状況の変化に応じてセンサ１つ１つ学習し直すのか？教師データの準備が大変！
[5]

[6]

[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)4

従来技術の課題と解決策
環境や状態の変化に応じてセンサ１つ１つ学習し直すのか？
教師データの準備が大変！
我々のアプローチ+

オンライン逐次学習
事前のオフライン学習なし
置かれたその場で学習

使い方

教師なし異常検知ラベル付き教師
データは不要ノイズを含む正常パターン

①異常検知装置を設置②「正常パターン」をその場で覚えさせる③普段と違うパターンが来たら「異常」と判定

5

従来技術の課題と解決策
環境や状態の変化に応じてセンサ１つ１つ学習し直すのか？
教師データの準備が大変！

使い方①異常検知装置を設置②「正常パターン」をその場で覚えさせる③普段と違うパターンが来たら「異常」と判定

6

新技術：オンデバイス学習
我々のアプローチ：
その場で「正常」を学習

深層学習など：事前に学習しておく

テストデータ

オフライン学習オンライン学習

推論のみ

逐次学習＋推論

学習済み
推論器

異常検知

重みパラメータを反復的に最適化
誤差逆伝搬法＋確率的勾配降下法

学習推論器

テストデータ≒訓練データオンデバイス学習（来たデータをその場で学習→ 環境変化に適応できる）

組込みシステム（低コスト）7

オンデバイス学習：基本構成①基本構成
事前のオフライン学習なしで、置かれたその場で学習

データ i を学習したときの途中結果を使って、データ i+1 を学習

入力例：
1024次元データ

n個

N個m個

特長：これを低コストで実現8応用例１：工場の製造ライン• 製造ラインのリアルタイム品質管理[1]

Factory[2][3]

製造ラインのリアルタイム品質管理✓ 正常な加工✓ 正常ではない加工
センサの例✓ 振動、AE波（変形、微小クラック）✓ ひずみゲージ、…
[4]

[5]

[6]

[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)9応用例１：工場の製造ライン
回転機械の振動を学習 → 普段と違うパターンを検出※デモ用の異常としてエアスプレー（画面左の赤い管）を使用

Step 1:
Normal pattern
including regularnoise is learned

Step 2:Air-spray is blew tothe fan

Step 3:Anomaly pattern(air-spray) is detected

ノイズ（エアスプレー）を含めてその場で学習し、異常検知

10応用例１：工場の製造ライン
回転機械の振動を学習 → 普段と違うパターンを検出※デモ用の異常としてエアスプレー（画面左の赤い管）を使用

センサ毎に「通常」が異なる→ オンライン逐次学習+教師なし異常検知

事前のオフライン学習なしで、データを流しながら置かれた環境に適応し、普段と異なるパターンが来たら異常→ 導入容易性・管理容易性◎
11

オンデバイス学習：新技術の概要
我々のアプローチ：
その場で「正常」を学習

深層学習など：事前に学習しておく

テストデータ

オフライン学習オンライン学習

推論のみ

逐次学習＋推論

学習済み
推論器

異常検知

学習推論器

テストデータ≒訓練データ

コア技術１：疑似逆行列計算の簡易計算化 → 低コスト実装
コア技術２：（１）の周辺技術（複数定常点、忘却、安定性）

コア技術３：（１）＋（２）を環境センサチップとして実現予定

12オンデバイス学習：新技術の概要①基本構成
事前のオフライン学習なしで、置かれたその場で学習②低コスト化

計算が軽いので、エッジデバイスに埋め込み可能③高精度化

複雑な入力パターンに対する高精度化、高機能化

13応用例２：サーバラックや計算機• サーバラックや計算機の異常発熱を検出
[1]

[2]

[4]

[5]

Server rack

[3]

[6]

[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)14応用例２：サーバラックや計算機ラックの熱マップを学習 → 普段と違うパターンを検出

ロス値が急上昇！

15応用例２：サーバラックや計算機ラックの熱マップを学習 → 普段と違うパターンを検出※デモ用の異常（熱源）として半田ごてを使用

サーバラック毎に「通常」が異なる→ オンライン逐次学習+教師なし異常検知

事前のオフライン学習なしで、データを流しながら置かれた環境に適応し、普段と異なるパターンが来たら異常16

応用例３：ドローンのプロペラ• ドローンの状態は、ペイロードや風向き等に左右される
[1]

[2]

[3]

Robot (UAV)

ドローンの墜落は大事故を引き起こす✓ プロペラは破損・変形しやすい✓ 破損・変形したプロペラの使用は危険

プロペラの異常検知✓ 正常な振動パターン✓ 普段と違う振動パターン
[4]

[5]

[6]

[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)17応用例３：ドローンのプロペラ
羽根の振動パターンを学習→普段と違うパターンを検出

ロス値が急上昇！

18応用例３：ドローンのプロペラ羽根の振動パターンを学習→普段と違うパターンを検出※デモ用の異常として損傷したプロペラ（赤）を使用

ドローンの状態は、荷物の重さや環境によって変化→オンライン逐次学習＋教師無し異常検知

バッテリー駆動＋小型・軽量なのでドローンに搭載可能
19

応用例４：家庭やオフィス環境• 家庭やオフィスでのBLEタグを用いた異常検知
[1]

[4]

Consumer
HomeElectronics
automation

[2]

[3]

[5]

[6]

[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)20応用例４：家庭やオフィス環境
推論のみ vs. 提案手法（推論＋逐次学習＋忘却）
センサデータ（温度照度）

ロス値（開始６分間学習し、後は推論のみ）
経時的な環境変化を拾ってロス値が高い

ロス値（提案手法：推論＋逐次学習＋忘却）
最近の記憶に基づいて異常検知→ 値の大きな変化のみを捉えてる

BLEタグを研究室に設置：
温度、湿度、照度、バッテリー残量、3軸加速度、3軸地磁気、3軸角速度などを測定

21

応用例５：監視カメラ映像• オンデバイス学習を監視カメラの異常行動検出に応用
[1]

[2]

[4]

[5]

[3]

Surveillance[6][1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)22

応用例５：監視カメラ映像
一般的な通行パターンは、監視カメラの位置やアングルによって異なる → 自律的に「通常」を学習するカメラ

未学習パターン23応用例５：監視カメラ映像
一般的な通行パターンは、監視カメラの位置やアングルによって異なる → 自律的に「通常」を学習するカメラ

普段と違う動きの通行人を検出すると「Anomaly」と表示

24

応用例６：人の異常検知
普段との動きの違い：怪我、疲労、パフォーマンス低下
[1]

[2]

[3]

オンデバイス学習チップを人体に装着✓ 普段と違う動きを検出
センサ一体型オンデバイス学習チップ✓ センサチップとの統合✓ 小規模FPGAによる試作まで実施
[4]

[5]

[6]

Bodymovement[1] KUKA Roboter GmbH, Bachmann (Public Domain) [2] http://www.fatcow.com/data-center-photos [3] Josh Sorenson (Public Domain)[4] Raysonho @ Open Grid Scheduler / Grid Engine (Public Domain) [5] Sanderflight at Dutch Wikipedia (Public Domain)25応用例６：人の異常検知
センサ一体型オンデバイス学習チップを人体に装着→ チップ開発の前段階として小規模FPGAによる試作まで実施

Motion capture 26

本提案と従来技術との比較
OSL-UAD = オンライン逐次学習
による教師なし異常検知

Q1：次元数は多いか？
（Yesなら高次元、Noなら低次元）

Q1

No

Yes
Q2

A群

Yes

No

B群

C群

• 周波数スペクトル → Yes• 高次元時系列データ → Yes• 画像 → Yes
Q2：教師データを事前準備できるか？
（Yesならオフライン学習、Noはオンライン学習）• 正常パターンが変動 → No
• 環境・ノイズが変動 → No
• 正常パターンが多すぎる → No

A 群：AR、LOF、k-NN、iForest、…
※教師データの準備が苦にならず、環境や状態も変わ B 群：DNN、CNN、RNN、…
らないなら、まずは深層学習です。一方、製造現場でC 群：本研究（OSL-UAD）
は教師データの準備がAI導入の最大の課題とも言われていて、この点の解決を目指しているのが本研究です。
27

企業様への期待：普及と実用化• ライセンスのご利用、社会的に重要な用途への応用
発明の名称 データ処理装置、データ処理システム及びプログラム（特願2018-125151の国内優先）
出願番号
特願2018-227556
出願人
発明者

慶應義塾大学、東京大学
松谷 宏紀、塚田 峰登、近藤 正章

28

企業様への期待：普及と実用化• ライセンスのご利用、社会的に重要な用途への応用• お試し利用：ソフトウェア開発キット
OSUAD_Predict()

推論を実行し、ロス値を取得。

OSUAD_Train()

逐次学習を実行。ついでに推論も実行している。

OSUAD_Delayed_Train()

逐次学習を実行。自動的に外れ値を除外。

OSUAD_Reset()

推論器のリセット。

OSUAD_Save()

現在の推論器を保存。

OSUAD_Load()

保存した推論器を読み込む。

OSUAD_Set_Threshold()

外れ値除外ためのスレッショルド（絶対値）。

OSUAD_Set_Outlier()

外れ値除外ためのスレッショルド（相対値）。

OSUAD_Set_Forget()

過去の記憶を忘れるための忘却係数。

OSUAD_Set_Capacity()

想定する正常パターンの数（クラスタ数）を指定。

OSUAD_Get_Confidence() 状態推定。どの正常パターンクラスタに属するか？
OSUAD_Reinitialize()

正常パターンクラスタを動的に再構成。

29

企業様への期待：普及と実用化• ライセンスのご利用、社会的に重要な用途への応用• お試し利用：ソフトウェア開発キット
OSUAD_Predict()

推論を実行し、ロス値を取得。

OSUAD_Train()

逐次学習を実行。ついでに推論も実行している。

OSUAD_Delayed_Train()

逐次学習を実行。自動的に外れ値を除外。

OSUAD_Reset()

推論器のリセット。

OSUAD_Save()

現在の推論器を保存。

OSUAD_Load()

保存した推論器を読み込む。

OSUAD_Set_Threshold()

外れ値除外ためのスレッショルド（絶対値）。

OSUAD_Set_Outlier()

外れ値除外ためのスレッショルド（相対値）。

OSUAD_Set_Forget()

過去の記憶を忘れるための忘却係数。

OSUAD_Set_Capacity()

想定する正常パターンの数（クラスタ数）を指定。

OSUAD_Get_Confidence() 状態推定。どの正常パターンクラスタに属するか？
OSUAD_Reinitialize()

正常パターンクラスタを動的に再構成。

30

まとめ：オンデバイス学習の提案
環境や状態の変化に応じてセンサ１つ１つ学習し直すのか？
教師データの準備が大変！
オンデバイス学習提案アルゴリズムを様々なプラットフォームに展開

高性能（GPU/FPGA）

産業用PC

IoT機器

小規模FPGA（チップ化予定）

企業様への期待：ライセンスのご利用、社会的な重要な用途への応用

お問い合わせ先：
学校法人慶應義塾 学術研究支援部 知的資産担当
阿部 仁
hitoshi.abe@adst.keio.ac.jp
0466-49-3436
31参考文献（1/2）• On-device learning anomaly detection– Mineto Tsukada, et al., "A Neural Network
Based On-Device Learning Anomaly Detector
for Edge Devices", arXiv:1907.10147 (2019).
– Mineto Tsukada, et al., "An FPGA-based Ondevice Sequential Learning Approach for
Unsupervised Anomaly Detection", FCCM
2019 Demo Night.
– Mineto Tsukada, et al., "OS-ELM-FPGA: An
FPGA-Based Online Sequential Unsupervised
Anomaly Detector", Euro-Par Workshops 2018.
32

参考文献（2/2）• On-device learning core
– Tomoya Itsubo, et al., "Performance and Cost
Evaluations of Online Sequential Learning andUnsupervised Anomaly Detection Core", IEEE
COOL Chips 2019.

• Abnormal behavior detection– Rei Ito, et al., "An Adaptive Abnormal
Behavior Detection using Online Sequential
Learning", IEEE EUC 2019.

33