AIを使った異常検知の実装【製造業のセンサーデータに適用する方法】

AIを使った異常検知の実装【製造業のセンサーデータに適用する方法】 AIツール・レビュー

はじめに

製造業でAIが最も実用化されている領域のひとつが「異常検知」です。センサーデータから機器の異常を早期発見することで、予期せぬ故障による生産停止を防げます。実際にMLを使った異常検知を担当した経験から、実装方法を解説します。

異常検知の主なアプローチ

統計的手法では、3σルール(平均±3倍の標準偏差を超えたら異常)などシンプルなルールベースで検知します。機械学習(教師なし)では、Isolation Forest・LOF(局所外れ値因子)などで正常データのパターンを学習して外れ値を検知します。オートエンコーダーでは、正常データで学習したモデルが異常データを再現できないことで検知します。時系列モデルでは、LSTM・Prophetなどで予測値と実測値の乖離を異常として検知します。

Isolation Forestで異常検知

import numpy as np
import pandas as pd
from sklearn.ensemble import IsolationForest
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
import japanize_matplotlib

# サンプルデータ生成(センサーデータを模擬)
np.random.seed(42)

# 正常データ(1000件)
normal_data = np.column_stack([
    np.random.normal(100, 10, 1000),  # 温度
    np.random.normal(5.0, 0.5, 1000), # 圧力
    np.random.normal(1500, 100, 1000) # 回転数
])

# 異常データを混入(50件)
anomaly_data = np.column_stack([
    np.random.normal(150, 20, 50),
    np.random.normal(8.0, 1.0, 50),
    np.random.normal(2000, 200, 50)
])

all_data = np.vstack([normal_data, anomaly_data])
true_labels = np.hstack([np.ones(1000), -np.ones(50)])  # 1:正常, -1:異常

# スケーリング
scaler = StandardScaler()
X_scaled = scaler.fit_transform(all_data)

# Isolation Forestで異常検知
clf = IsolationForest(
    contamination=0.05,  # 異常の割合の予測(5%)
    random_state=42
)
predictions = clf.fit_predict(X_scaled)
anomaly_scores = clf.score_samples(X_scaled)

# 評価
from sklearn.metrics import classification_report
print(classification_report(true_labels, predictions,
                           target_names=['異常', '正常']))

# 可視化(温度vs圧力の散布図)
plt.figure(figsize=(10, 6))
normal_mask = predictions == 1
anomaly_mask = predictions == -1
plt.scatter(all_data[normal_mask, 0], all_data[normal_mask, 1],
           alpha=0.3, label='正常', color='blue', s=10)
plt.scatter(all_data[anomaly_mask, 0], all_data[anomaly_mask, 1],
           alpha=0.8, label='異常(検知)', color='red', s=50, marker='x')
plt.xlabel('温度 (℃)')
plt.ylabel('圧力 (MPa)')
plt.title('異常検知結果')
plt.legend()
plt.show()

実装時の注意点

正常データだけで学習することが基本です(異常データのラベルは通常取れない)。contamination(異常の割合)の設定は実際の異常発生率に合わせます。センサーの単位・スケールが異なる場合は必ず正規化します。誤検知(偽陽性)が多いと現場から「AIは使えない」と言われてしまいます。

まとめ

製造業での異常検知はIsolation Forest・LOF・オートエンコーダーが主要手法です。最初はシンプルな3σルールをベースラインとして、機械学習で精度を上乗せするアプローチが実装しやすいです。「異常が来たらアラートを飛ばす」仕組みをPower AutomateやSlack APIと組み合わせると実用的なシステムになります。

💼 ITエンジニア転職特化

自分らしく働けるエンジニア転職を目指すなら【strategy career】

年収1000万・残業月30時間以下・リモート可の求人多数

💼 無料で転職相談する →

※アフィリエイト広告を含みます

※本記事にはアフィリエイトリンクが含まれます。

コメント

タイトルとURLをコピーしました