1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWSで始める異常検知】Part2. Amazon SageMakerで設備故障の検知

Last updated at Posted at 2021-05-14

#はじめに
AWS ソリューションライブラリーにて提供されている 機械学習を利用した予知保全 の実装をやってみます。
用意されているAWS CloudFormation テンプレートを使用するので簡単にデプロイできます。

##Amazon SageMakerとは
Amazon SageMaker は、機械学習モデルを短期間で簡単に構築、トレーニング、デプロイできるようにするフルマネージド型サービスです。
あらゆる作業を効率化する機能が提供されているため、人手をかけずに異常検知をやりたいときに最適なサービスです。

#本記事のゴール
機械学習モデルとターボファンの劣化シミュレーションデータのサンプルデータセットをデプロイして、潜在的な設備故障を認識するようにモデルをトレーニングするというサンプルアーキテクチャを紹介します。

アーキテクチャ図は以下の通りです。

image.png

このアーキテクチャでは、サンプルデータセットを使って、
設備故障の評価対象としてRUL(残存耐用期間)を計算し、予測値と観測値を比較して異常検知します。
トレーニングデータとテストデータは、S3バケットに格納します。
これをAWS Lambda などを使って1日に1回スケジュール実行します。

#実装手順

手順は大まかに以下の4つです。

  1. スタックを起動する
  2. ML モデルをトレーニング
  3. CloudWatch Events ルールを有効にする
  4. Lambda 関数がデータを処理していることを確認する

1. スタックを起動する

機械学習を利用した予知保全 から CloudFormationテンプレートをダウンロードします。

テンプレートに含まれているもの:
Amazon CloudWatch Events ルール
AWS Lambda 関数
Amazon SageMaker ノートブックインスタンス
Amazon S3 バケット

image.png

AWS CloudFormationに移動 → 「スタックの作成」を選択します。

image.png

ダウンロードしたテンプレートをアップロード → 「次へ」を選択します。

image.png

スタックの名前を入力します。

image.png

S3バケットの名前を入力 → SageMaker ノートブックインスタンスをデプロイす
る VPC Id、Subnet Id を選択 → 「次へ」で次に進みます。

image.png

オプションの設定はスキップします。
「次へ」を選択します。

image.png

設定を見直します。
テンプレートが AWS IAM リソースを作成することを確認するチェックボックスをオンにして → 「スタックの作成」を選択します。

image.png

CREATE_COMPLETE のステータスが表示されたら、デプロイが完了したということです。
5分ほどかかりました。

image.png

2. Amazon SageMaker でノートブックを実行する

Amazon SageMaker では、任意の深層学習フレームワークを使用してカスタム深層学習モデルをトレーニングできます。
このソリューションでは、カスタムの Stack LSTM ニューラルネットワークを活用して、時系列データから履歴パターンを学習します。

Amazon SageMaker コンソールに移動 → 「SageMaker Studio」を選択します。

image.png

「ノートブックインスタンス」 → 「PredictiveMaintenceNotebookInstance」を選択します。

image.png

「Jupyterを開く」を選択します。

image.png

sagamaker_predictive_maintenance.ipynb のノートブックを開きます。

image.png

全てのセルを実行します。

image.png

3. CloudWatch Events ルールを有効にする

1日に1回実行するように設定されてます
Amazon SageMaker バッチ変換ジョブを作成する AWS Lambda 関数をトリガーするように設定されており、AWS SageMaker バッチ変換ジョブはトレーニング済みモデルを使用してデータのサンプルから残存耐用年数を予測します。

AWS Lambda コンソールに移動 → 「関数」 → 「predivtive-maintenance-batch-transformer」を選択します。

image.png

「EventBridge(CloudWatch Events)」を選択します。

image.png

predictive-maintenance-ScheduledRule-を選択します。

image.png

「有効にする」を選択し、を有効にします。

image.png

「有効にする」を選択します。

image.png

4. Lambda 関数がデータを処理していることを確認する

[モニタリング] を選択し、[Invocations] グラフにアクティビティが表示されているこを確認します。

image.png

テスト結果はS3バケットに格納されます。
画像のように、RUL(残存耐用年数)の列が追加されていることが確認できます。

image.png

#さいごに

今回は、Amazon SageMakerを使って異常検知のアーキテクチャ実装を試してみました。
AWS CloudFormation テンプレートを使用することで、モデルのトレーニングからノートブックのスケジュール実行の設定まで数分で出来ました。
今回はサンプルデータを使用していますが、任意のデータセットを使用するようにソリューションを変更できることもできるようなので、次回はトライしてみたいです。

#参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?