← 作品一覧

IMS 軸受データの異常検知

軸受の振動データから、モデルの学習と警報の評価までをつなぐ異常検知の仕組みを作りました。公開 IMS データで試験系列を丸ごと学習から外す条件では、深層オートエンコーダの優位性は確認できませんでした。

  • Python
  • PyTorch
  • SciPy
  • Welch PSD
  • PCA
コード公開

この作品

振動波形の取得から特徴量の計算、学習、警報の評価、図表の出力までをつないだ、再実行できる異常検知の実装です。深層オートエンコーダ、ノイズを加えて学習するオートエンコーダ、PCA、振幅を見る RMS を同じ条件で比べます。

配布アーカイブと説明書の記録範囲が一致しない点も調べ、主評価を説明書に対応する範囲へ固定しました。入力と特徴量のハッシュを保存し、データの違いや不完全な展開を検出します。

仕組み

流れを見る図の動きやスクロールで、流れを追えます。動きはオフです。工程を選んで読めます。

試験ごとに分ける

振動の記録を試験ごとにまとめ、評価に使う試験は学習や警報の調整から切り離します。

振動の特徴を再現する

学習側の記録だけで振動の特徴を再現するモデルを学習し、再現のずれから警報を出す基準を決めます。

未知の試験で比べる

固定したモデルと警報の基準を残しておいた試験へ適用し、単純な手法とスコアや警報を比べます。

最初に試験系列を分け、評価用の系列を正規化・学習・モデル選択・しきい値調整のすべてから隔離します。学習側も記録順に用途を分け、区間の間に未使用の記録を置きました。スペクトルの再構成誤差から警報を出す処理は、過去と現在の情報だけを使います。

分割監査は、評価系列の混入、同じ生ファイルの重複、時刻の逆転などを検出すると学習を止めます。テストでは混入を意図的に起こし、未知系列や未来のスコアを書き換えても学習結果や過去の警報が変わらないことを確かめました。

記録から分かること

この固定プロトコルでは、深層モデルの優位性を確認できませんでした。初期から続く警報と、劣化した終盤を区別するスコアの良さは別の性質です。課題として残ったのは、別の系列で決めたしきい値を未知の系列へ移すことでした。

CPU での実行結果に、学習済み重み、スコア、環境、ソースのハッシュを添えています。単純な基準が上回る場合も含めて、比較を再実行できる形にしました。

振動記録
7,588 記録
軸受観測
30,352 観測
学習モデル
18 モデル
CPU 実行・取得時間を除く
48.78 秒
通過したテスト
59 本

確かめた範囲

結果はこのデータと評価設計に限ります。故障開始時刻の正解ラベルがないため、早期と終盤を比べる指標を故障検出精度や残存寿命の推定とは扱いません。