25
Copyright © SAS Institute Inc. All rights reserved. SAS Viyaで異常検知してみよう ~教師無し機械学習の手法とテクニック~ SAS Institute Japan株式会社

SAS Viya で異常検知してみよう!

Embed Size (px)

Citation preview

Copyright © SAS Inst itute Inc. A l l r ights reserved.

SAS Viyaで異常検知してみよう~教師無し機械学習の手法とテクニック~

SAS Institute Japan株式会社

Copyright © SAS Inst itute Inc. A l l r ights reserved.

アジェンダ

2

1. 異常検知とは

2. One-Class SVMによる異常検知

3. Robust PCAによる異常検知

4. Moving Windows PCA による異常検知

5. 異常検知を業務に適用するポイント

Copyright © SAS Inst itute Inc. A l l r ights reserved.

3

1. 異常検知とは

Copyright © SAS Inst itute Inc. A l l r ights reserved.

大量の計測値からパタンを検出

4

既知のパターン

•管理限界値や寸法公差等の

業務上すでに定義されている

異常値やルールを設定すること

で、監視データ内にルールに当

てはまるデータを検知し、アラー

ト発報等の規定の処理を行い

ます。

未知のパターン

•多変量の関係や時系列データ

の観察等、多変量解析手法

やデータの可視化によって異常

発生するルールを発見。異常

検出ルールを高度化します。

複雑なパターン

•非線形の関係や大量のパラ

メータの組み合わせ等を機械

学習手法を用いてモデル化、

自己学習機能と合わせて異常

検出を人工知能化(AI)しま

す。

関連性

•正常運転状態時のパラメータ

間の相関を学習し、パラメータ

の関連性に崩れ始めを検知し

ます。

異常検知には3つの手法があります。基準値ベースの異常検知、教師あり学習、教師なし学習です。

本日は、SAS Viyaを用いた「教師なし学習」の手法をご紹介します。

Copyright © SAS Inst itute Inc. A l l r ights reserved.

5

2. One-Class SVMによる異常検知

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Support Vector Data Description (SVDD)

• 1クラス分類を目的とする教師なしの機械学習手法

• 用途:

• 多変量プロセス制御

• 機器予後診断と健康管理

• サイバーセキュリティと侵入検知

• 詐欺の識別

• ハイパースペクトル画像解析

• ウェアラブル機器からの健康データの分析

Copyright © SAS Inst itute Inc. A l l r ights reserved.

SVDD - Details

• トレーニングデータの周りに最小半径のn次元球面を作成。

• 次に、新しい観測値は、n 次元球面の中心までの距離と半径と比較しスコアを付ける。

• 半径より大きな距離の観測値は、異常としてフラグを付ける。

• 異常の実例があまりないデータでうまく機能することができる。

• カーネル関数を使用することにより、「通常」の領域をフレキシブルにモデル化できる。

• ESP 4.3*1で使用できるASTOREスコアコードを出力する。

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

0.0 0.2 0.4 0.6 0.8 1.0

“正常な状態”で稼働している群

異常値

*1: SAS Event Stream Processing (リアルタイムデータ解析、オンライン機械学習用製品)SVDDで作成されたモデルをSAS ESPに組み込み、リアルタイム異常検知が可能。

Copyright © SAS Inst itute Inc. A l l r ights reserved.

使用データ:蒸気ボイラーのデータ

8

蒸気圧力

(Mpa)

蒸気温度(℃)

蒸気温度

(℃)

蒸気圧力

(Mpa)

時間(30秒単位)

Copyright © SAS Inst itute Inc. A l l r ights reserved.

SVDDプログラム

9

svdd_train1日目データ

svdd_score2日目データ

Proc svdd

stateAnalytics store

Proc astore

score_outスコアリングデータ

SAS Studioを使用して、SVDDモデル作成とスコアリングを実行

SAS Studioではテンプレート上で必要な項目を選択するだけでSVDDモデル作成用のコードを自動生成

※ SAS ViyaのSVDDは、Python, R, Java, Luaからも同様に実行可能です。

Copyright © SAS Inst itute Inc. A l l r ights reserved.

実行結果(Score_out)

10

赤い点が異常と判定されたデータ円の中心からの距離

Copyright © SAS Inst itute Inc. A l l r ights reserved.

11

3. Robust PCAによる異常検知

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Robust Principal Component Analysis (RPCA)

• 入力行列を低ランク行列とスパース行列の和に分解し、低ランク行列にPCAまたはSVDを実行することができる。

• 「堅牢性」は、PCA / SVDを適用する前に異常を処理して除去できることに由来。

• スパース行列は異常検出に適している。

• 用途:

• 異常検知

• 画像処理

• 行列圧縮

Input Data

Low Rank Matrix Sparse Matrix

Copyright © SAS Inst itute Inc. A l l r ights reserved.

SVDDプログラム

13

svdd_score2日目データ

Proc rpca

lowrankmat低ランク行列

sparsematスパース行列

SAS Studioを使用して、RPCAを実行

※ SAS ViyaのRPCAは、Python, R, Java, Luaからも同様に実行可能です。

Copyright © SAS Inst itute Inc. A l l r ights reserved.

実行結果(sparsemat)

14赤い点が異常と判定されたデータ

Copyright © SAS Inst itute Inc. A l l r ights reserved.

15

4. Moving Windows PCA による異常検知

Copyright © SAS Inst itute Inc. A l l r ights reserved.

Moving Windows Principal Component Analysis(MWPCA)

• スライディングウィンドウを使用して時間の経過とともに主成分の変更を取得する。

• 全体システムと比較したシステムの部品の相対的変化を検出する。

• 同じ環境に面している同様のマシンは、同様に動作する仮定で使用する。

• 用途:

• 時間の経過とともに類似の設備のパフォーマンスが異なるが、理想的には互いに類似して動作する状況(例えば、風力タービン、暖房/冷房装置など)

Copyright © SAS Inst itute Inc. A l l r ights reserved.

MWPCA - Details風力発電のタービンの出力データ

• スライディングウインドウ内のデータを分析することにより、時間の経過とともに主成分の重要な変化を追跡。

• 時間の経過と共に相関関係が維持されると考えられる多くの相関測定値を含む監視システムに役立つ。

• 季節の影響を受けるシステムに適している

• スライディングウインドウ内でRPCA を実装することも可能。

Moving Windows PCA

4機のタービンの中で、1機に主成分の変化が観測されています。何かしらの異常が発生している可能性を示唆

Copyright © SAS Inst itute Inc. A l l r ights reserved.

MWPCAプログラム

18

svdd_score2日目データ

Proc mwpca

windowpcs低ランク行列

SAS Studioを使用して、RPCAを実行

※ SAS ViyaのMWPCAは、Python, R, Java, Luaからも同様に実行可能です。

Copyright © SAS Inst itute Inc. A l l r ights reserved.

MWPCA結果

19

実測値

MWPCAの結果

Copyright © SAS Inst itute Inc. A l l r ights reserved.

20

5.異常検知を業務に適用するポイント

Copyright © SAS Inst itute Inc. A l l r ights reserved.

異常値検知前の処理

21

■閾値の設定が難しい教師あり学習の場合、異常である確率が出力されますが、教師なし学習の場合は異常値を検出するもののそれが異常な状態か否か別途判断する必要があります。

群中心からの距離や類似度といった何等かの指標を基に異常を判断する必要があります。

■複数の手法で判断する方が良い機械学習の手法はそれぞれ得手、不得手があります。

正解の定義がない教師なし学習の場合、1つの手法で異常値検知をするのではなく、

複数の手法で判断した方が良い結果が得られる可能性があります。

■システムを十分に理解する必要があるタイムスタンプで分析処理をかけるのが一般的ですが、システムにはタイムラグがあります。

タイムラグを考慮した設計が必要です。

また、経年による変化を考慮しモデルの更新サイクルを考慮する必要があります。

Copyright © SAS Inst itute Inc. A l l r ights reserved.

異常値検知後の処理

22

異常値の発生パタンを分類する事によって異常個所の推定や異常状態の判定が可能になります。

1.乖離 2.外れ値 3.変化

計測値に占める異常値の割合

が大きい。

異常値は連続している。

異常値は瞬間に発生。

連続性がない

計測値に占める異常値の割合

は小さいが、異常値は連続している。

Copyright © SAS Inst itute Inc. A l l r ights reserved.

IoT・アナリティクス・ライフサイクル

異常値検知

適用ETL

データ データストレージ

アラート / レポート/ 制御

適用

f

IoT データ インテリジェント

データマネージメント

ストリーミングアナリティクス実行

自動応答

23

Copyright © SAS Inst itute Inc. A l l r ights reserved.

24

今なら無償でSAS Viyaを試用することができます。詳細は以下のブログを参照してください。

SAS Viyaを体感してみよう! ~SAS Viya無償試用版利用ガイド~

sas.com

Copyright © SAS Inst itute Inc. A l l r ights reserved.

ご清聴ありがとうございました。

https://www.sas.com/ja_jp/software/viya.html

Viya 検索