Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
実績データで異常検知できる 「Random Cut Forest」 ハイパーパラメーター設定の...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kohei "Max" MATSUSHITA
October 08, 2022
Technology
0
5.4k
実績データで異常検知できる 「Random Cut Forest」 ハイパーパラメーター設定の実際/how-to-set-the-hyper-params-for-random-cut-forest-anomaly-detection
2022/10/8 JAWS DAYS 2022 /
https://jawsdays2022.jaws-ug.jp/
の発表資料
Kohei "Max" MATSUSHITA
October 08, 2022
Tweet
Share
More Decks by Kohei "Max" MATSUSHITA
See All by Kohei "Max" MATSUSHITA
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
31
15k
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
880
こんにちは!AWS re:Invent 2024 です!/JAWS-UG TOHOKU-hi-threre-aws-reinvent-2024-1
ma2shita
0
220
Not only Claude 3 and Amazon Forecast! Get the Future by Chronos of Amazon's Time series FM/get-the-future-by-chronos-of-amazons-time series-fm
ma2shita
0
170
さらなるアウトプットに、Let's ライトニングトーク! ― LTのやり方
ma2shita
2
1.8k
Starlinkと宇宙の話/what-is-starlink-and-the-universe
ma2shita
0
180
Build will change the World!!
ma2shita
0
210
もうサーバーは作らない!手間も費用もかからない「サーバーレス」の選び方と始め方のコツ/lets-serverless
ma2shita
0
160
IoTデバイスを安心して使う「技適」特例の概要から届出~廃止まで && Amazon Monitronのご紹介/telec-and-amazon-monitron
ma2shita
0
950
Other Decks in Technology
See All in Technology
ナレッジワーク IT情報系キャリア研究セッション資料(情報処理学会 第88回全国大会 )
kworkdev
PRO
0
140
20260311 ビジネスSWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
110
元エンジニアPdM、IDEが恋しすぎてCursorに全業務を集約したら、スライド作成まで爆速になった話
doiko123
1
510
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
240
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
490
Datadog の RBAC のすべて
nulabinc
PRO
3
390
オレ達はAWS管理をやりたいんじゃない!開発の生産性を爆アゲしたいんだ!!
wkm2
4
450
楽しく学ぼう!コミュニティ入門 AWSと人が つむいできたストーリー
hiroramos4
PRO
1
180
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
1k
型を書かないRuby開発への挑戦
riseshia
0
210
OpenClawで回す組織運営
jacopen
3
660
AIファーストを前提とした開発スタイルの変化
sbtechnight
0
240
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.2k
The Spectacular Lies of Maps
axbom
PRO
1
600
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
400
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
82
My Coaching Mixtape
mlcsv
0
68
Site-Speed That Sticks
csswizardry
13
1.1k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Ruling the World: When Life Gets Gamed
codingconduct
0
170
Facilitating Awesome Meetings
lara
57
6.8k
Transcript
実績データで異常検知できる 「Random Cut Forest」 ハイパーパラメーター設定の実際 JAWS-UG IoT 専門支部 / 松下享平
“Max”
自己紹介 株式会社ソラコム テクノロジー・エバンジェリスト 松下享平 (まつした こうへい) "Max“ 講演回数 500超/累計 保有スライド
1万枚超 (もはやわからん) JAWS-UG IoT 専門支部 AWS ヒーロー (IoT 部門、2020年) 好きな言葉「論より、コード」 好きな AWS サービス • AWS IoT Core • AWS IoT Events • Amazon Ember font family @ma2shita お気軽にフォローを! 仲良くしてね (^^ #jawsdays2022 #jawsdays2022_C #jawsug #Maxデテル
Random Cut Forest 異常検出と予測に使える ML アルゴリズム
今日のゴール 機械学習で不可避な「ハイパーパラメーター」の設定を 実データから見出そう http://proceedings.mlr.press/v48/guha16.pdf numberOfTrees = ? subSampleSize = ?
timeDecay = ? shingleSize = ? numberOfTrees = ! subSampleSize = ! timeDecay = ! shingleSize = !
Random Cut Forest (RCF) …?? http://proceedings.mlr.press/v48/guha16.pdf
Random Cut Forest (RCF) RCF を使用して異常を検出する方法 https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/how-does-rcf-detect-anomalies.html スコアが最近のポイントと大幅に異なる場合、 データポイントを異常と識別します。 教師なし
《 実績データが使える 》 機械学習(ML) アルゴリズムの 1つ
どこが “異常” ?
どこが “異常” ?
異常検知でわかること !
ルールベースでも良いのでは? if -20 < genba_no_temp < 40: print "よしっ!" else:
print "異常!" 夏と冬では? 福岡と札幌では? 定義が複雑に 明らかに判断できることに 利用する
RCF は、どのようなデータに適用可能? 特定の範囲 周期性 《共通》 時系列データ
RCF に必要な2つのもの 最近のポイントと異なる データポイントを異常と識別 比較元のデータ “異常” の定義 1 2 実績データが使える
スコアが算出される 決めるのはあなた
どういうことか?見てみよう 《ライブデモ》 AWS Cloud Amazon Kinesis Data Analytics Amazon Kinesis
Data Streams AWS CLI
0 0.5 1 1.5 2 2.5 3 0 5 10
15 20 25 30 35 40 temp score ここは あなたが 決める 異常 正常
ここまでのまとめ Random Cut Forest (RCF) は 教師なしの ML アルゴリズム ➢
データ毎の条件調整が不要、実績データを基に始められる手軽さ 時系列データを対象に、範囲や周期性のあるデータでも異常検知ができる ➢ 適用できる範囲が広い Anomaly Score が算出される ➢ あの “異常” を決めるのは、あなた
CREATE OR REPLACE PUMP "ANORMALY_DETECTION_PUMP" AS INSERT INTO "TEMP_STREAM_001" SELECT
STREAM "temp", "ANOMALY_SCORE", "ANOMALY_EXPLANATION" FROM TABLE(RANDOM_CUT_FOREST_WITH_EXPLANATION ( CURSOR(SELECT STREAM * FROM "SOURCE_SQL_STREAM_001"), 100, 10, 100000, 1, TRUE )); numberOfTrees = 100 subSampleSize = 10 timeDecay = 100000 shingleSize = 1 RCF のハイパーパラメーター … 精度 … Anomaly Score が算出され始める件数 … 見比べる対象 “最近のポイント” 数 … データ重複への考慮具合 注) 程度の解釈で
データ件数と相談したいのが `subSampleSize` subSampleSize のデフォルトは 256 = 257件目のデータから Anomaly Score が算出される
➢ 小さくすれば、早く結果が得られる (例: 10 → 11 件目から) • 精度とのトレードオフ 持っているデータの件数と これから発生するデータ件数(の見積) から決定
(残りの) RCF のハイパーパラメーター numberOfTrees = 100 subSampleSize = 10 timeDecay
= 100000 shingleSize = 1 … 精度 … Anomaly Score が算出され始める件数 … 見比べる対象 “最近のポイント” 数 … データ重複への考慮具合 注) 程度の解釈で CREATE OR REPLACE PUMP "ANORMALY_DETECTION_PUMP" AS INSERT INTO "TEMP_STREAM_001" SELECT STREAM "temp", "ANOMALY_SCORE", "ANOMALY_EXPLANATION" FROM TABLE(RANDOM_CUT_FOREST_WITH_EXPLANATION ( CURSOR(SELECT STREAM * FROM "SOURCE_SQL_STREAM_001"), 100, 10, 100000, 1, TRUE ));
“特定の範囲” が対象なら 残りはデフォルトで大丈夫そう numberOfTrees = 100 subSampleSize = 10 timeDecay
= 100000 shingleSize = 1 … 精度 … Anomaly Score が算出され始める件数 … 見比べる対象 “最近のポイント” 数 … データ重複への考慮具合 注) 程度の解釈で
周期性のデータを対象にするなら `shingleSize` も調整 shingle = 屋根板 「重なってる様子」 0 6 10
10 6 0 -6 -10 -10 -6 0 6 10 10 6 0 -6 -10 -10 -6
周期性のデータを対象にするなら `shingleSize` も調整 shingle = 屋根板 「重なってる様子」 0 6 10
10 6 0 -6 -10 -10 -6 0 6 10 10 6 0 -6 -10 -10 -6 例) shingleSize = 4 0 6 10 10 6 0 -6 -10 -10 -6 6 10 10 6 0 -6 -10 -10 -6 0 10 10 6 0 -6 -10 -10 -6 0 6 10 6 0 -6 -10 -10 -6 0 6 10 0 6 10 10 6 0 -6 -10 -10 -6 6 10 10 6 0 -6 -10 -10 -6 10 10 6 0 -6 -10 -10 -6 10 6 0 -6 -10 -10 -6 1 2 3 4 “重なり合い” を考慮した比較をしてくれる 注) 程度の解釈で
《手軽に試す方法》 import rrcf https://github.com/kLabUM/rrcf Robust Random Cut Forest の Python
実装
https://aws.amazon.com/jp/blogs/news/use-the-built-in-amazon-sagemaker-random-cut-forest-algorithm-for-anomaly-detection/ [1] Sudipto Guha, Nina Mishra, Gourav Roy, and Okke
Schrijvers. “Robust random cut forest based anomaly detection on streams.” In International Conference on Machine Learning, pp. 2712-2721. 2016.
どういうことか?見てみよう 《ライブデモ》 python3 rrcf-demo-run.py Gist 準備 python3 -m venv rrcf-demo
cd !$ source bin/activate pip install numpy matplotlib rrcf
ここまでのまとめ Random Cut Forest (RCF) のハイパーパラメーターは、以下の要素で設定 ➢ データ件数で「subSampleSize」 ➢ 周期性のデータが対象なら、さらに「shingleSize」
➢ あとは、まずデフォルトを採用 RCF の挙動はローカルでも確認できる ➢ import rrcf ➢ ※ timeDecay 等のパラメーターの有無があるため、 あくまでも挙動確認用
RCF が使える AWS サービス Amazon Kinesis Data Analytics Amazon QuickSight
Amazon SageMaker Amazon OpenSearch Service ※たぶんすべてカバー
どうやって データを入れる?
データ投入の方法 aws kinesis put-record --stream-name ST --partition-key 123 --data '{"temp":25.0}'
AWS CLI CLI や SDK に頼らず、HTTP POST したい…? curl -H JSON -d '{"temp":25.0}' funnel.soracom.io IoT な マイコンからも Amazon Kinesis Data Streams が使える 詳しくは「SORACOM Funnel」で検索
AWS Cloud HTTP POST を利用した IoT データ収集アーキテクチャー例 Amazon Kinesis Data
Analytics Amazon Kinesis Data Streams 《クラウドアダプタ》 SORACOM Funnel IoT デバイス HTTP POST TCP/UDP
おしまい ✓ Random Cut Forest は、即戦力な異常検知アルゴリズム ✓ データとパラメータを確認しながら試せる 謝辞と宣伝: •
いろんなドキュメントに助けられた、まじありがとう! • こんな素敵なイベントに出られてうれしいよ、まじありがとう! • AWS Dev Day に出るよ! IoTの楽しさをライブデモで!AWSとラズパイで「作らずに創る」IoTのハジメ • AWS re:Invent 2022 行くよ!
参考資料 • RCF を使用して異常を検出する方法 • 例: データ異常の検出と説明の取得 (RANDOM_CUT_FOREST_WITH_EXPLATION 関数) •
RCF の仕組み • 異常検出にビルトイン Amazon SageMaker Random Cut Forest アルゴリズムを使用する • kLabUM/rrcf: 🌲 Implementation of the Robust Random Cut Forest algorithm for anomaly detection on streams • 異常検知の世界へようこそ • Amazon SageMakerで産業用機械の温度データから異常値を検出してみた • Amazon SageMakerのRandom Cut Forestで異常検知をする(shingling処理の検証) • IoTデータの異常検知をAmazon Kinesis Data Analyticsで行うアーキテクチャー
SORACOM の願い クラウド ⇒ 多くの Web サービス SORACOM ⇒ 多くの
IoT システム 日本から、世界から、たくさんの IoT プレイヤーが生まれますように
Random Cut Forest の話でした! #jawsdays2022 #jawsdays2022_C #jawsug #Maxデテル @ma2shita お気軽にフォローを!
仲良くしてね (^^