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

はじめに

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 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

sagamakerpredictivemaintenance.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 テンプレートを使用することで、モデルのトレーニングからノートブックのスケジュール実行の設定まで数分で出来ました。

今回はサンプルデータを使用していますが、任意のデータセットを使用するようにソリューションを変更できることもできるようなので、次回はトライしてみたいです。

参考

機械学習を利用した予知保全 | 実装 | AWS ソリューション

この記事を書いた人

aws-recipe-user