ドリフト認識学習を使用した機器の健全性状態の監視
この例では、インクリメンタル ドリフト認識学習モデルと Streaming Data Framework for MATLAB® Production Server™ を使用して、冷却システムの健全性状態を監視するプロセスを自動化する方法を示します。
機械製造施設では、運用機器の温度を制御するために冷却システムを使用しています。それらの冷却システムの状態を監視するために、保守エンジニアは多大な労力を要しています。この労力を軽減する方法の 1 つとして、機械学習を使用して監視プロセスを自動化する方法があります。この例では、このプロセスを自動化するための 2 つのアプリを用意しています。冷却システムからセンサー読み取り値を含むデータをアップロードする uploadApp
と、冷却システムの監視に使用する dashboard
です。
センサー読み取り値のアップロード
uploadApp
アプリは App Designer を使用して設計されています。これを使用して、ローカルの Kafka® サーバーにセンサー データをアップロードするプロセスを再現します。このアプリは、ラベルなしのセンサー読み取り値のバッチを、人間が注釈を付けたラベルありのセンサー読み取り値のバッチと共に周期的にアップロードします。
センサーで取得される読み取り値は次のとおりです。
電圧 — 冷却システムの電圧測定
温度 — 冷却システムの温度
ファン回転数 — 冷却システムで使用されているファンの 1 分あたりの回転数 (RPM)
冷却システムの状態は 3 つです。
正規
高負荷
ファンに問題あり
uploadApp
アプリを使用するには、Kafka サーバーをローカルのポート 9092 で実行している必要があります。ラベルなしとラベルありの 2 つのトピックが必要です。Kafka サーバーを使用したデータのアップロードの詳細については、writetimetable
(MATLAB Production Server)およびStreaming Data Framework for MATLAB Production Server Basics (MATLAB Production Server)を参照してください。
uploadApp
アプリを開きます。
uploadApp
[Start Streaming] をクリックします。uploadApp
アプリにより、ファイル unlabeledData.mat
と labeledData.mat
にそれぞれ格納された、ラベルなしの 60,000 個のセンサー読み取り値とラベルありの 6,000 個のセンサー読み取り値がアップロードされます。各センサー読み取り値は 0.1 秒ごとにサンプリングされます。
ラベルなしのデータとラベルありのデータをアプリがアップロードしている間は、[Upload Status] のライトが赤になります。アップロードが完了すると、ステータス ライトが緑になります。これで、Kafka サーバーにデータが格納され、冷却システムの保守を担当する人が誰でもアクセスできるようになります。
冷却システムの監視
dashboard
アプリも App Designer を使用して作成されています。これを使用して、冷却システムの健全性状態を監視します。dashboard
アプリでは次の機能が実行されます。
センサー読み取り値を使用して冷却システムの健全性状態を予測する。
センサー読み取り値の人間による注釈付きラベルを使用してデータのドリフトを監視する。
dashboard
アプリには 3 つのタブがあります。
Main Dashboard — 冷却システムの現在の状態についての情報を提供
Sensor Reading — 過去 2 分間のセンサー読み取り値に関する情報を提供
Model Performance — 学習器の損失とドリフト ステータスの経時的な変化を強調表示するプロットを提供
dashboard
アプリを開きます。
dashboard
[Main Dashboard] タブで [Load Model] をクリックして、ファイル warmupModel.mat
に格納されているインクリメンタル ドリフト認識学習モデル (incrementalDriftAwareLearner
) を読み込みます。このモデルは、インクリメンタル単純ベイズ分類モデルをベース学習器として使用するウォームアップ済みのモデルです。
アプリによるドリフト認識モデルの読み込みが完了すると、Kafka サーバーにアップロードされたデータのストリーミングを開始できるようになります。[Streaming Options] を On
に設定してストリーミング プロセスを開始できます。[Streaming Options] をオンにすると、アプリで次のアクションが実行されます。
ラベルなしのデータの観測値を Kafka サーバーから一度に 1200 個読み取る。各センサー読み取り値は 0.1 秒ごとにサンプリングされるため、1200 個の観測値は 2 分間の観測値に対応します。
kafkaStream
(MATLAB Production Server)オブジェクトを使用してラベルなしのトピックにアクセスして、アップロードされたセンサー読み取り値を Kafka サーバーから読み取ります。さらに、読み取り値を timetable に格納します。ラベルなしのセンサー読み取り値を予測する。
warmupModel.mat
から読み込まれたモデルと timetable に格納されたセンサー読み取り値を使用して、2 分間の期間 (1200 の観測値) に対応する冷却システムの状態を予測します。冷却システムのステータスを更新する。2 分間の期間での予測ラベルの最頻値 (つまり、最も頻繁に予測されたラベル) を計算し、その最頻値を使用して [Cooling System Status] の値を更新します。ステータス ライトは、冷却システムが正常、高負荷、ファンに問題ありのいずれであるかに応じて、緑、青、赤のいずれかになります。[Number of Sensor Readings] の値が更新され、サーバーからダウンロードされたラベルなしのセンサー読み取り値の数が反映されます。
センサー読み取り値を最新の値で更新する。[Sensor Reading] タブで、センサー データの最新のダウンロード バッチ (1200 個の観測値) をプロットします。
ラベルありのデータの観測値を一度に 100 個読み取ってチェックする。ラベルありのデータを使用してデータ分布でドリフトを監視します。ラベルありのデータが使用可能になると、一度に 100 個の観測値をダウンロードします。
kafkaStream
(MATLAB Production Server)オブジェクトを使用してラベルありのトピックにアクセスして、ラベルありのセンサー読み取り値を Kafka サーバーから読み取ります。ドリフトをチェックし、100 個の観測値に対する誤分類損失を計算する。ドリフト認識モデルで、ラベルありの 100 個のセンサー読み取り値を使用して、データにドリフトがないかどうかを調べます。関数
perObservationLoss
によって返される損失値を平均化することで、100 個の観測値に対する誤分類損失を計算します。ドリフト ステータスと損失のプロットを更新する。[Model Performance] タブのプロットを更新して、モデルのステータス (安定、警告、またはドリフト) とラベルありのデータの最後のバッチに対する誤分類損失を表示します。
モデルのステータスを更新する。ドリフト認識モデルがウォームの場合 (つまり、モデルの
IsWarm
プロパティがtrue
の場合) は [Model Status] のライトが緑になり、モデルがウォームでない場合 (つまり、モデルのIsWarm
プロパティがfalse
の場合) は赤になります。モデルでドリフトが検出されると、モデルを新しいモデルで上書きします。十分な観測値が提供されてモデルがウォームになると、モデルから信頼性の高いラベルが返されるようになります。詳細については、IsWarmプロパティおよびインクリメンタル ドリフト認識学習のトピックを参照してください。
[Sensor Reading] タブを表示して、過去 2 分間に受信したデータのセンサー読み取り値を検査します。
[Model Performance] タブを表示して、データのドリフトを監視します。
参考
kafkaStream
(MATLAB Production Server) | incrementalDriftAwareLearner
| perObservationLoss
関連するトピック
- インクリメンタル学習の概要
- Streaming Data Framework for MATLAB Production Server Basics (MATLAB Production Server)