いつもと違う振る舞いを、大量のデータの中から自動で見つけ出す。異常検知とは、正常なパターンを基準に、そこから外れたデータを機械が拾い上げる技術です。この記事では、異常検知が何を指すのか、外れ値・変化点・異常部位という3つの型、教師あり/教師なしといった機械学習手法の選び分け、製造業の外観検査や設備の予知保全での使いどころを整理します。あわせて、scikit-learn で書く最小の実装コードと、しきい値を誤報率から逆算する手順、2026年10月に相次ぐ既製サービスの提供終了を踏まえた内製と受託開発の線引きまで扱います。アルゴリズムの数式ではなく、導入して回すための考え方と、その場で動かせる具体を先に固める記事です。
まとめ:異常検知は「正常の学習」が肝、選定は正常データの量と誤検知の許容度で決まる
異常検知とは、正常なデータの分布を学習し、そこから統計的に離れたデータを異常候補として検出する技術の総称です。不良品の外観検査、設備の故障予兆、クレジットカードの不正利用、サーバーログの侵入検知まで、対象は違っても仕組みの土台は共通しています。まず正常を定義し、そこからの逸脱を測る。この順番が全体を貫きます。製造ラインで異常スコアにしきい値を置く際の運用点の決め方は外観検査の自動化における判定しきい値の設計にまとめています。
手法選びは、手元にどんなデータがあるかで決まります。異常のラベル付きデータが十分あるなら教師あり学習、正常データしか集まらないなら教師なし学習が現実解です。現場では異常サンプルがそもそも少ないため、正常だけから学ぶ教師なし・半教師ありが主力になります。
既製の検査装置やSaaSで足りるのは、対象と判定基準が定型的な場合です。自社固有の設備・製品・業務ログを相手に、既存の基幹システムへ検知結果を流し込む要件があるなら、機械学習モデルを組み込んだ自社開発が現実的な選択になります。判断の分かれ目は、正常データの集めやすさと、見逃し・誤検知のどちらをどこまで許せるかにあります。
もう一つ、2026年に入って無視できない条件が増えました。クラウドベンダーの汎用異常検知サービスが相次いで畳まれた。Azure AI Anomaly Detector は2026年10月1日に提供終了、Amazon Lookout for Equipment も2026年10月7日にサポート終了です。学習に使う正常データと、しきい値の決め方だけは自社側に残す。この線引きを記事の後半で条件付きに落とします。
異常検知とは何か:外れ値・変化点・異常部位という逸脱の3類型
異常検知は、あらかじめ「これが正常」とみなすデータの範囲を決め、その範囲から外れたものを異常候補として拾う仕組みです。何を異常とみなすかは対象で変わるため、まず検知したい異常が3つの型のどれに当たるかを見極めます。
外れ値検知・変化点検知・異常部位検出という異常の3類型の違い
異常検知は、扱う異常の形で大きく3つに分かれます。混同すると手法選びを誤るため、最初に切り分けます。
| 型 | とらえる異常 | 典型例 |
|---|---|---|
| 外れ値検知 | 単発で大きく外れた点 | センサー値の急なスパイク |
| 変化点検知 | 傾向が切り替わった時点 | 振動が徐々に増え始めた境目 |
| 異常部位検出 | 時系列の中の異常な区間 | 稼働ログの一部だけ乱れる波形 |
製造設備の故障予兆は、単発のスパイクより「じわじわ悪化する変化点」でとらえるべきことが多い。一方、不正取引は1件の外れ値として拾えます。同じ異常検知でも、狙う型を取り違えると精度が出ません。単一指標を見る単変量と、相関のある複数指標をまとめて見る多変量という製品側の区分も、この型の違いを前提にしています。
異常検知・外れ値・予兆検知という似た言葉の意味と正しい使い分けの基準
現場では似た言葉が混ざりがちです。外れ値は「正常分布から離れた個々のデータ点」を指す狭い概念で、異常検知はその検出を含む技術全体を指します。予兆検知は、故障や障害に至る前の兆候を早めにとらえる用途寄りの呼び方。変化点検知や異常部位検出を設備保全に当てはめたものと考えると整理できます。用語より、自分が拾いたいのが「点」なのか「変わり目」なのか「区間」なのかを決めるほうが実務では効きます。
異常検知が動く仕組み:正常モデルを学習し逸脱度スコアで測る流れ
異常検知の中身は、単一のアルゴリズムではなく「正常を学ぶ→逸脱を測る→しきい値で判定する」という一連の流れです。どこで精度が決まるかを押さえると、導入時に何を詰めるべきかが見えます。
正常データから基準を学び、逸脱度スコアで異常を判定する処理の流れ
基本の流れは3段です。第一に、正常時のデータを集めてモデルに「正常の姿」を学ばせます。第二に、新しいデータが入るたびに、正常からどれだけ離れているかを数値(異常スコア)で算出する。第三に、そのスコアがしきい値を超えたら異常と判定します。肝は最初の「正常の学習」で、ここに異常が混ざったデータや偏ったデータを与えると、基準そのものが歪みます。学習に使う正常データの質が、後段の精度をそのまま左右する構図です。
外れ値検知と新規性検出の違いが学習データの作り方を分ける境目
同じ「正常を学ぶ」でも、学習データに異常が混ざっている前提かどうかで設計が変わります。scikit-learn の公式ドキュメントは、この2つを明確に分けています。学習データ自体に外れ値が含まれる状況を扱うのが outlier detection、学習データは正常だけで構成され、新しく来た観測が外れているかを判定するのが novelty detection です(Novelty and Outlier Detection・2026年9月時点で 1.9系)。
この区別は実装の細部にそのまま出ます。LocalOutlierFactor は既定では fit_predict しか持たず、学習済みモデルに新しい点を流す使い方をするには novelty=True を明示する必要があります(LocalOutlierFactor の API 仕様)。設備の正常稼働データだけを集めて、そこに新しい観測を流し込む運用は novelty 側です。ここを取り違えると、学習に混入した不良品ごと「正常」として覚えてしまいます。
しきい値の設定が見逃しと誤検知のトレードオフを左右する仕組み
異常検知の運用でつまずく大半は、しきい値の置き方にあります。しきい値を厳しくすれば見逃し(本物の異常を逃す)は減りますが、誤検知(正常を異常と鳴らす)が増える。緩めれば逆になります。両方をゼロにはできません。だから設計時に「見逃しと誤検知のどちらがより高コストか」を先に決め、そこからしきい値を寄せます。人命や重大事故に直結する設備なら見逃しを嫌ってアラートを増やし、通知過多で現場が疲弊する業務なら誤検知を抑える。この重み付けは技術ではなく業務判断で、外部ベンダーに丸投げできない部分です。
機械学習による異常検知の手法:教師あり・教師なし・半教師ありの選び分け
異常検知が機械学習と相性がよいのは、正常パターンが複雑で人手のルールでは書き切れないからです。ただし「どの学習方式を使うか」は、集まるデータの性質で決まります。ここを取り違えると、精度以前に学習が成立しません。
異常ラベルの有無で決まる学習の3方式と、現場で主力になる方式
学習方式は、異常のラベル付きデータがどれだけあるかで選びます。
- 教師あり学習:正常・異常の両方にラベルがあるとき。分類問題として高精度を狙えるが、異常データを大量に集めにくいのが難点
- 教師なし学習:正常か異常かのラベルがないとき。データの大多数を正常とみなし、そこから外れたものを異常とする
- 半教師あり学習:正常データだけがそろうとき。正常の姿だけを学び、それ以外を異常と判定する
実務で主力になるのは教師なし・半教師ありです。理由は単純で、正常な稼働データはいくらでも取れる一方、故障や不良のサンプルはめったに発生しないから。異常が年に数回しか起きない設備で教師あり学習を選ぶと、学習データが集まらず頓挫します。異常データが乏しいなら、まず正常だけから学ぶ方式を前提に設計するのが定石です。
代表的なアルゴリズムの使いどころ:統計・機械学習・深層学習の選び分け
アルゴリズムは目的とデータ量で選びます。実装の詳細は専門記事に譲り、ここでは選定の勘所だけ示します。
| アルゴリズム | 向くデータ | 特徴 |
|---|---|---|
| ホテリング理論(統計) | 正規分布に近い数値 | 計算が軽く説明しやすい |
| k近傍法・LOF | 密度に濃淡がある分布 | 周囲との孤立度で外れ値を拾う |
| One-Class SVM | 境界が非線形の正常域 | 外れ値に敏感でnu調整が要る |
| Isolation Forest | 次元が多い正常データ | 高次元でも軽く動き既定値が堅い |
| オートエンコーダ | 画像・波形など高次元 | 再現誤差の大きさで異常を測る |
まず軽い統計手法で当たりを付け、精度が足りなければ機械学習・深層学習に上げる。この順で進めるのは、過剰な開発を避けるためです。One-Class SVM は外れ値に敏感でハイパーパラメータ nu の調整が前提になる一方、Isolation Forest は高次元でも効率よく動く、と scikit-learn の公式解説も性格の違いを明記しています。オートエンコーダまで進むなら土台はニューラルネットワークの構造とPyTorch実装、時系列に限った実装順序とアラート運用は時系列データの異常検知の手法選びと運用設計で扱っています。画像の異常検知は正常画像との差分を学ぶ深層学習が中心で、その考え方は画像認識AIの仕組みと開発の進め方、予測モデルとして扱う場合の実装観点は需要予測アルゴリズムの選び方と実装手順が近い題材です。
scikit-learnで書く異常検知の最小コードと逸脱度スコアの出し方
言葉で追うより、動く形を一度見たほうが速い。正常時の稼働データだけを読み込み、Isolation Forest に正常の姿を学ばせ、新しい観測へ逸脱度スコアを付けるまでが次の十数行です。振動・温度・電流の3列を想定しています。
from sklearn.ensemble import IsolationForest
import numpy as np
# 正常時の稼働データだけを読み込む(振動・温度・電流の3列)
X_normal = np.loadtxt("normal_2026q2.csv", delimiter=",")
clf = IsolationForest(
n_estimators=200,
contamination="auto",
random_state=0,
).fit(X_normal)
# 新しい観測に逸脱度スコアを付ける。値が小さいほど異常寄り
X_new = np.loadtxt("today.csv", delimiter=",")
score = clf.score_samples(X_new)
label = clf.predict(X_new) # 1 が正常、-1 が異常
for s, l in zip(score, label):
if l == -1:
print("異常候補 score=", round(float(s), 4))
contamination を "auto" にしたときの判定境界は、公式の API 仕様で offset が -0.5 と定義されています(IsolationForest の API 仕様)。つまり predict の 1 と -1 は、score_samples の値を -0.5 で切っているだけです。既定の境界をそのまま本番に持ち込むと、現場の誤報許容度とは無関係な線で鳴り始めます。手法を横並びで比べる段階なら、61 の検出器を同じ API で扱える PyOD(3.6系)が候補で、実装は GitHub リポジトリで読めます。
誤報率から逆算してしきい値を決めるパーセンタイル方式の実装手順
既定の境界を捨てて、業務側の条件からしきい値を引き直します。手順は単純です。学習に使った正常データのスコア分布を取り、「正常なのに鳴ってしまう割合をどこまで許すか」をパーセンタイルで指定する。誤報を1%に抑えたいなら下位1%を線にします。
import numpy as np
# 正常データのスコア分布から、誤報を1%に抑える線を引く
score_normal = clf.score_samples(X_normal)
threshold = np.percentile(score_normal, 1)
# しきい値を下回った点だけを異常として鳴らす
alarms = np.count_nonzero(np.less(score, threshold))
print("threshold =", round(float(threshold), 4))
print("アラート件数 =", alarms)
この書き方の利点は、しきい値の根拠が「現場が1日に何件のアラートを捌けるか」という交渉可能な数字に変わることです。1ラインで日に1万点を判定するなら、1%は100件。捌けないなら 0.1% に下げる。逆に見逃しが事故に直結するなら 5% まで上げて人の確認工数を積む。数字で会話できる形にしておくと、運用開始後の調整が属人的になりません。どの列を入力に使うか、生のセンサー値のまま渡すか統計量に畳んでから渡すかは特徴量の作り方と重要度の見方で扱っています。
異常検知の適用場面:製造の外観検査・設備の予知保全から不正検知まで
異常検知は業種をまたいで使われますが、投資対効果が出やすい領域には偏りがあります。自社の課題がどこに当たるかで、導入の優先度が変わります。
製造業の外観検査と品質のばらつき検出で人の目視検査を補う使い方
製造現場で最も定着しているのが外観検査です。正常な製品画像を大量に学ばせ、傷・欠け・異物といった逸脱を検出します。人の目視は熟練度と疲労で精度が振れますが、機械なら判定基準が一定に保てる。ただし「初めて見る不良」への弱さは残るため、検出漏れを人が拾う二段構えが現実的です。良品学習型を検査工程へ適用する条件はAI外観検査の導入判断で、撮像設計から投資回収まで具体的に扱っています。検査データを品質記録として蓄積し、工程改善につなげる設計は品質管理の考え方とシステム化の判断と地続きになります。
設備の予知保全とセンサーデータからの故障予兆の検知という中核用途
設備の振動・温度・電流といったセンサーデータを常時監視し、正常な稼働パターンから外れ始めた変化点を故障の予兆としてとらえる使い方です。振動データの前処理と特徴周波数の抽出は振動診断の実装とISO 20816の閾値設計にまとめています。壊れてから直す事後保全でも、定期交換する予防保全でもなく、状態を見て手を打つ。異常検知はこの予知保全を成り立たせる中核技術で、保全戦略全体での位置づけは予知保全の仕組みと導入判断、前提となる収集基盤はIoTの仕組みとAIとの組み合わせで扱っています。設備側で異常検知型・故障分類型・RUL推定型のどれを選ぶかは予知保全のAI導入と故障予測モデルの選び方で整理しました。
金融の不正検知とIT運用のログ監視における異常検知の共通の役割
製造以外でも用途は広い。金融ではカード取引の中から不正利用のパターンを外れ値として拾い、被害が広がる前に止めます。不正ラベルが十分にたまり教師ありで取引を判定する段階に入ったら、Amazon Fraud Detectorの学習データ要件と代替3系統で必要な件数と保存先の選び方を確認できます。IT運用では、サーバーのアクセスログやトラフィックを監視し、通常と違う挙動から不正侵入やシステム障害の兆候を検知する。監視データに異常検知を組み込んで運用そのものを自動化する流れはAIOpsの仕組みと主要機能で扱っています。いずれも「大量データを人が見張り切れない」という共通課題への答えで、24時間の監視を機械に任せ、鳴ったアラートを人が精査する分担が基本形です。
既製の異常検知サービスの提供終了と移行先:2026年に決めるべき判断
ここからは、導入計画そのものを揺らす事実を先に置きます。汎用の異常検知SaaSは、2026年に入って主要どころが畳まれた。検討中のツールが対象に入っていないかを、まず確認してください。
Azureの異常検知APIが2026年10月1日に終了する事実と移行先
Azure AI Anomaly Detector は、2023年9月20日をもって新規リソースの作成ができなくなり、サービス自体が2026年10月1日に提供終了となります(公式ドキュメント冒頭の告知)。Microsoft Lifecycle 側の記載でも、リタイア日は2026年10月2日 6:59:59(太平洋時間)として登録されています(製品ライフサイクル)。移行先として案内されているのは Microsoft Fabric のリアルタイムインテリジェンス、またはオープンソース版の anomaly-detector を直接使う道の2つです。
移行先の一方がOSSである点は見逃せません。汎用の時系列異常検知に専用SaaSの料金を払う前提は、2026年時点では見直し対象です。
AWSのLookout for Equipment終了が示す専用SaaS依存の危うさ
設備監視側も同じ動きです。Amazon Lookout for Equipment は、AWSが2026年10月7日にサポートを終了すると公式ユーザーガイドの冒頭で告知しており、その日以降はコンソールもリソースも触れなくなります(ユーザーガイドの告知)。新規の受付が停止されたのは2025年10月7日です。代替の選択肢はAWSの公式ブログで案内されており、産業データの収集・整理側は AWS IoT SiteWise、検知ロジックは自前のモデルへ寄せる構成が提示されています。汎用の時系列外れ値検知なら、SageMaker の組み込みアルゴリズムである Random Cut Forest も選択肢に入ります。
| サービス | 終了・停止の時期 | 移行先の例 |
|---|---|---|
| Azure AI Anomaly Detector | 2026年10月1日に提供終了 | Microsoft Fabric、OSS版 |
| Lookout for Equipment | 2026年10月7日にサポート終了 | AWS IoT SiteWiseなど |
| scikit-learn(OSS) | 終了予定なし(1.9系) | 自社環境で継続運用 |
2つに共通するのは、学習済みモデルがベンダー側にあって外へ持ち出せない形だった点です。停止までの猶予は1年前後しかなく、モデルを一から作り直す羽目になる。
提供終了に耐える構成:モデルとデータを自社側に置く設計の条件
採用の条件を言い切ります。異常検知の構成要素のうち、学習に使う正常データと、しきい値を決めるロジックの2つは、必ず自社が持つ側に置いてください。この2つさえ手元にあれば、検知エンジンが差し替わっても数日で復旧できます。逆に、データの前処理からモデル学習、しきい値の保持までをマネージドサービス内で完結させた構成は、サービス終了と心中する形になります。
具体的には、センサーや検査画像の生データを自社のストレージかデータ基盤に貯め、学習用データセットの生成をコードで再現可能にしておく。しきい値は設定ファイルかテーブルに外出しして、エンジン側にハードコードしない。この2点さえ守れば、scikit-learn でも PyOD でも SageMaker でも後から載せ替えられます。すでにデータウェアハウスにデータが集まっているなら、SnowflakeのML関数でSQLだけで異常検知を回す構成のように既存基盤の上で完結させる手もあり、テーブル定義を自社で管理していれば乗り換えの余地は残ります。
異常検知の導入で失敗しやすいポイントと、既製ツールで足りるかの判断
ここが導入の本題です。技術が動くことと、現場で使える異常検知になることは別問題。つまずきやすい点を先に押さえます。
「正常の定義が動く」ドリフトと誤検知の過多という2大つまずき
判断を言い切ります。異常検知が現場で見捨てられる最大の原因は、精度不足そのものより「アラートが多すぎて誰も見なくなる」ことです。導入直後は誤検知が多く、しきい値の調整と現場フィードバックの反映を続けないと、警報が形骸化します。もう一つの落とし穴が、正常の姿が時間とともに変わる「コンセプトドリフト」です。季節変動や設備の経年、製品仕様の変更で正常が動くのに、初期に学んだモデルを固定したままだと、正常な変化まで異常と鳴らし始める。異常検知は入れて終わりではなく、正常モデルを定期的に学習し直す運用がセットになります。この運用設計を欠いた導入は、半年で使われなくなります。
センサー前処理と特徴量の作り込みが精度を左右する場面の見分け方
もう一段細かい失敗が、生データをそのままモデルに渡してしまう設計です。振動センサーの毎秒数千点を素のまま流しても、Isolation Forest は意味のある境界を引けません。時間窓で切って実効値・尖度・特定周波数帯のパワーに畳んでから渡すと、同じアルゴリズムでも検知できる異常が変わります。見分け方は単純で、既製ツールのデモデータで動いたのに自社データで精度が出ないなら、原因はアルゴリズムではなく入力の作り方です。
既製の検査装置・SaaSで足りる場面と、自社開発を検討すべき場面の線引き
採用の線引きを条件で示します。既製の検査装置やSaaSで足りるのは、検知対象と判定基準が定型的で、他システムとの連携が浅くて済むケースです。汎用的な外観検査装置や、クラウドの異常検知サービスで十分な効果が出ます。ここに自社開発を持ち込むのは過剰です。
逆に、次のいずれかに当てはまるなら既製品では頭打ちになります。第一に、自社固有の設備・製品・業務ログが対象で、正常データの前処理や特徴量の作り込みが精度を左右する場合。第二に、検知結果を基幹システムや生産管理・保全システムへ構造化データとして流し込み、業務フローに組み込む要件がある場合。第三に、対象がライン増設や仕様変更で頻繁に変わり、モデルの再学習を自社の運用サイクルに合わせて回したい場合。これらでは、機械学習モデルを自社要件に合わせて設計・実装する開発が現実解になります。
PoCから本番運用まで、異常検知を内製と受託開発で進める判断
異常検知は、小さく試して効果を確かめてから広げるのが鉄則です。まず限られた設備・工程でPoC(概念実証)を行い、正常データが集まるか・誤検知がどれだけ出るか・現場が運用に耐えられるかを見る。ここを飛ばして全社展開すると、正常データ不足やドリフトで頓挫します。PoCの合格ラインの置き方や、誤検知と見逃しのどちらを優先するかを業務コストから決める手順はAI PoCとは?精度目標の決め方とデータ準備・本番移行を判断する基準にまとめています。内製できるのは、データ基盤とデータサイエンスの人材が社内にそろい、継続的な再学習を自前で回せる体制がある場合です。人材が薄い、あるいは基幹システムとの連携まで一気通貫で設計したいなら、要件定義からモデル構築・運用まで含めた受託開発が現実的です。自社の設備やデータに合わせた異常検知・予測分析システムの相談はAI予測分析・需要予測開発の受託で受け付けています。
よくある質問
異常検知の導入検討でよく寄せられる質問に答えます。
異常検知に必要なデータはどれくらいですか?
方式によりますが、教師なし・半教師あり学習を前提にするなら、まず十分な量の正常データが要ります。異常データはめったに発生しないため無理に集める必要はなく、正常な稼働・製品のデータを偏りなく確保するのが実務的です。目安として、対象の変動パターン(季節・稼働時間帯・製品種別)を一通りカバーする期間分の正常データがあると、しきい値の設計が安定します。逆に、真夏の稼働だけを学ばせて冬に鳴り続ける、という失敗は期間の偏りから生まれます。
異常検知はPythonでどう実装しますか?
最短は scikit-learn です。正常データで IsolationForest を学習し、score_samples で逸脱度スコアを取り、そのスコアにしきい値を置くだけで動く形になります。本文の実装例がそのまま最小構成です。手法を横並びで比べたい段階に入ったら、61の検出器を同じ API で扱える PyOD(3.6系)が候補になります。時系列を厚く扱いたい場合は、窓の切り方と特徴量の作り方のほうが、アルゴリズム選びより結果を左右します。
異常検知と機械学習は何が違うのですか?
異常検知は「正常から外れたデータを見つける」という目的の名前で、機械学習はそれを実現する手段の一つです。単純な統計手法(外れ値の判定)でも異常検知はできますが、パターンが複雑で人手のルールでは書けない対象に、機械学習が使われます。つまり機械学習は異常検知を実装する有力な選択肢であって、両者は目的と手段の関係にあります。
異常検知の精度はどのくらい期待できますか?
対象とデータ次第で大きく変わるため、一律の数字は当てになりません。むしろ精度は「見逃しをどこまで許すか」「誤検知をどこまで許すか」のしきい値設定で調整するもので、片方を上げれば片方が下がるトレードオフです。導入前に「見逃しと誤検知のどちらが高コストか」を決め、その基準で評価するのが実態に合います。数値で握るなら、正常データのスコア分布に対する誤報率をパーセンタイルで指定する形が扱いやすいでしょう。
異常検知と予知保全はどう関係しますか?
予知保全は「設備が壊れる前に手を打つ」という保全戦略で、異常検知はそれを支える検知技術です。センサーデータから正常な稼働パターンのずれをとらえ、故障の予兆として拾う部分が異常検知にあたります。予知保全という目的を実現する中核の技術要素が異常検知、という関係です。
中小規模でも異常検知は導入できますか?
できます。全設備・全工程をいきなり対象にせず、効果の出やすい一箇所でPoCから始めるのが現実的です。オープンソースのライブラリと手持ちのサーバーだけでも、正常データさえあれば検証は回せます。クラウドの異常検知サービスを使う場合は、提供終了の告知が出ていないかを契約前に確認してください。正常データが取りやすい対象を選び、誤検知の許容度を先に決めておくと、小さく始めても運用が回ります。
関連記事
- 予知保全とは?仕組みと予防保全との違いから費用対効果・導入判断まで解説:異常検知を設備保全に当てはめた予知保全の全体像と導入判断。
- 設備保全とは?予防保全・予知保全・事後保全の違いと製造業の進め方を解説:異常検知が組み込まれる保全戦略全体の位置づけ。
- 画像認識AIとは?仕組み・できること・開発の進め方をわかりやすく解説:外観検査など画像による異常検知の土台となる技術。
- 需要予測とは?AI・機械学習による手法とシステム導入の進め方を解説:同じくデータから未来を読む予測分析の考え方と導入手順。
- 製造業のDXとは?課題・進め方・つまずかない導入手順を解説:異常検知を含むデータ利用を製造現場に根づかせる進め方。