画像を用いた異常検知とは? 概要からビジネス活用例まで詳しく解説!

目次

異常検知とは

異常検知の概要

異常検知(Anomaly Detection)とは、正常な状態や挙動を基準として定義し、その基準から外れるデータや事象を検出する技術です。製造業の予知保全から金融の不正検知、医療画像診断まで、異常検知はあらゆる産業の基盤技術となりつつあります。

本記事では、異常検知技術の体系的整理と、画像における実際のビジネス成功事例・導入時の注意点を網羅的に解説します。

異常データの種類

異常検知で扱われる異常データの種類は大きく以下の3つに分類することができます。

①点異常(Point Anomaly)

個々のデータ点が他のデータと大きく異なるケースです。データ全体の傾向や分布から見て、明らかに外れた値を示す場合に該当します。最も基本的な異常の種類であり、単一の観測値だけでも異常と判断できる点が特徴です。

具体例:センサーの突発的な異常値、クレジットカードの突然の高額決済

②文脈異常(Contextual Anomaly)

ある条件や状況のもとでは異常と判断される一方で、別の条件では正常と見なされるケースです。
単純な数値の大小だけでなく、時間帯、季節、場所、ユーザー属性などの文脈を踏まえて判断する必要があります。そのため、同じデータであっても、発生した状況によって異常かどうかが変わります。

具体例:夏場にエアコン使用量が少ない(冬なら正常)、深夜3時のATM大量引き出し

③集団異常(Collective Anomaly)

個々のデータ点だけを見ると正常に見えるものの、複数のデータをまとめて見ると異常なパターンとして現れるケースです。単体では問題がないため検出が難しい一方で、時系列的な並びや発生頻度、組み合わせを分析することで異常を発見できます。連続的・組織的な不正行為やシステム障害の予兆検知などで重要になります。

具体例:短時間に大量の小額送金(個々は正常だが、パターンとしてマネーロンダリングの疑い)

異常検知のビジネス価値

異常検知は直接的にビジネスインパクトを生む技術になります。異常検知の導入により、以下のようなビジネス価値が期待されます。

  • リスク低減:故障・事故・不正の未然防止 
  • コスト削減:生産ラインのダウンタイム削減・良品の割合の改善 
  • 業務効率化:人手による監視業務の自動化 
  • 品質向上:製品品質の安定化・顧客体験の改善

異常検知手法の種類

異常検知のアプローチは多岐にわたりますが、大きく5つのカテゴリに分けることができます。表1にアプローチ(距離・クラスタリング・密度・予測・再構成)別での分類、図1に技術領域(統計・機械学習・深層学習・最新手法)別での分類を整理しました。

表1. アプローチ別での分類

アプローチ概要統計的手法機械学習手法深層学習手法最新手法
距離ベース近傍との距離が大きなデータ点を異常と判定Z-scorek-NNGNN
クラスタリングベース既存のクラスタに属さないデータ点を異常と判定K-means, DBSCANDeepClustering
密度ベース周囲のデータ密度が低いデータ点を異常と判定±3σ, IQR法LOF, Isolation Forest
予測ベース予測値と実測値の乖離が大きい場合を異常と判定ARIMA, 変化点検出ProphetLSTM/RNNAnomalyTransformer
再構築ベースデータの復元誤差が大きいデータ点を異常と判定PCAAutoEncoder,GANCLIP/SAM

図1. 技術領域別での分類

お気軽にご相談ください!

当サイトの運営会社であるデータアナリティクスラボ株式会社は、データサイエンティストのプロフェッショナルサービスを提供しています。異常検知をはじめとしたデータ分析の実績も多数ございますので、お気軽にご相談ください。

ご相談・お問い合わせはこちらから

画像における異常検知手法の解説

統計的手法や機械学習ベースの手法は扱いやすく、実装も比較的容易な傾向があります。一方で、画像を対象とした異常検知の活用も近年増え始めています。画像異常検知は、異常の有無を判定するだけでなく、異常箇所を空間的に特定できるという、テーブルデータの異常検知にはない利点を備えています。そこで本記事では、深層学習を用いた画像異常検知に焦点を当てます。特に今回は、異常判定の仕組みを直感的に理解しやすい再構成ベースの手法を中心に解説します。

「再構成」でなぜ異常を検知することができるのか

「正常な製品写真」だけを見続けたとき、傷が付いた製品の写真を見ると「いつも目にしている画像とは何かが違う」と人間は違和感を抱くはずです。

深層学習の再構成ベースのモデルは、人間が感じる違和感の原理をモデル(数式)に落とし込んだものになります。正常データだけで「入力と同じものをそのままコピーする」訓練をしたモデルは、見たことがないパターン(=異常)をうまくコピー(再構成)することができません。そのコピーの”ズレ”となる部分が閾値を超えた時に異常と判定することで、異常を検知しています。

再構成ベースにおける主な3つの手法(AutoEncoder,VAE,GAN)について紹介します。


1. AutoEncoder(AE)

図2. AutoEncoderの構造

EncoderとDecoderはどちらもニューラルネットワークであり、Encoderは圧縮、Decoderは復元の役割を担っています。間にある潜在変数 z は、入力xを圧縮した”情報を要約したベクトル”にあたります。

図3. ニューラルネットワークの構成図

AutoEncoderの仕組み

「入力をなるべくそのまま出力する」というタスクをモデルに学習させています。ただし、潜在変数への圧縮の過程で途中で次元を大幅に絞っている(たとえば784次元→32次元)ため、モデルは「本質的な特徴だけ残して、残りの大部分は捨てる」ことを学習します。

正常データだけで学習すると、Encoderは「正常パターンの圧縮方法」しか学習できていません。また、Decoderも「正常パターンの復元方法」しか学習できていないため、異常データを入力すると、圧縮も復元もうまくいかずに、再構成誤差(入力と出力のズレ)が跳ね上がります。

異常判定の流れ

  1. 正常データだけでAEを学習
  2. 新しいデータを入力し、再構成 x’ を得る
  3. 再構成誤差 = ||x – x’||(入力と出力の差)を計算
  4. 誤差が閾値を超えたら「異常」と判定

ビジネス上のポイント

  • 異常画像を定義する必要がありません。異常データのラベルが不要なので、「異常サンプルが少ない・集められない」現場で重宝します。
  • 画像だけでなく、センサーデータ・ログデータ・時系列データにも使うことができます
  • 再構成誤差のヒートマップを可視化すれば「どこが異常か」まで特定することができます。(画像の場合)

AutoEncoderの限界

  • 潜在空間に構造がなく、z の値がどういう意味を持つのか解釈しづらいです。
  • 正常データのバリエーションが足りないと「見たことがない正常」も異常扱いしてしまうため、学習に入力される正常画像のデータ数が重要です。
  • 再構成誤差による異常判定のための閾値の設計は最終的に人間がおこなう必要があります。

異常判定に用いる閾値(参考)

閾値の決め方には「これが正解」という明確に定まった基準はありません。実務では、例えば次のような決め方があります。

  • 学習データ全体の再構成誤差について、その最大値と最小値の差(最大値−最小値)を閾値とする
  • 再構成誤差が、正常データ(学習データ)の平均から2倍以上離れているかどうかを基準にする

用語解説
  • ニューラルネットワーク
    人間の脳の神経回路(ニューロン)を模倣した機械学習モデルであり、入力層、隠れ層(中間層)、出力層から構成されます。
  • 潜在空間
    入力情報を圧縮し、要約した”潜在変数z”をベクトルとして表現した空間のこと。(潜在変数zが属する空間)

2. VAE(Variational AutoEncoder)

図4. VAEの構造

AutoEncoderとの違い

VAEは、基本構造としてはAutoEncoderと同様の枠組みを持つため、AutoEncoderの拡張モデルに位置づけられます。違いとして、AutoEncoderでは潜在変数 z は単なるベクトルであったのに対して、VAEでは潜在変数を確率分布として扱います。

少し身近な例で考えると、AutoEncoderは「ある人物の顔を1枚の証明写真として記録する」ようなイメージです。入力データを、1つの固定された特徴ベクトルとして圧縮します。
一方でVAEは、「その人物らしい顔の特徴の範囲を記録する」ようなイメージです。例えば、目の位置、輪郭、表情などに多少の揺らぎを持たせながら、その人らしさを表す分布として保存します。

そのためVAEでは、Encoderが平均と分散を出力し、その分布からサンプリングすることで、潜在変数 z を一意に固定しないようにしています。
この仕組みによって、潜在空間上で近い位置にある点同士が似たデータを表しやすくなり、元データに似た新しいデータを生成できるようになります。

3. GAN(Generative Adversarial Network)

図5. GANの構造

  • Generator(生成器):ランダムなノイズから「本物っぽい偽物のデータ」を作る
  • Discriminator(識別器):入力が本物か偽物かを見分ける

AutoEncoder / VAEとの比較

GANはAE系とはまったく異なるアプローチです。「2つのネットワークを競わせる」ことでデータの分布を学習します。Generator(生成器)はDiscriminator(識別器)を騙そうとし、DiscriminatorはGeneratorを見破ろうとします。両者の”いたちごっこ”を繰り返すうちに、Generatorは本物そっくりのデータを作れるようになっていきます。

GANの説明によく使われるたとえ

Generatorは「贋作画家」、Discriminatorは「鑑定士」とたとえることができます。画家は鑑定士を騙せるレベルの贋作を目指し、鑑定士は見破る精度を上げ続けます。最終的に画家の腕が極まると、本物と区別がつかない贋作(=生成データ)ができあがるというわけです。

GANで異常検知をする方法

方法①:Discriminatorのスコアを使う

1つ目は、Discriminatorの判定結果をそのまま利用する方法です。正常データだけでGANを学習させると、Discriminatorは「正常な画像らしさ」を判定できるようになります。そのため、テスト時に画像を入力したとき、Discriminatorが「正常らしい」と判断すれば正常、逆に「正常らしくない」と判断すれば異常の可能性が高いと考えます。

入力画像が、学習した正常画像にどれくらい近いかをDiscriminatorのスコアを使って評価するイメージです。正常画像に似ていればスコアは高くなり、異常画像ではスコアが低くなるため、このスコアを異常判定に利用します。

方法②:AnoGAN系(再構成+識別の組み合わせ)

2つ目は、AnoGANに代表される方法です。この方法では、まず正常画像だけを使ってGANを学習させます。すると、Generatorは正常画像に近い画像を生成する能力を持つようになります。テスト時には、入力された画像に対して、Generatorで似た画像を作れるかどうかを確認します。

もし入力画像が正常であれば、GANは学習済みの正常パターンをもとに、かなり近い画像を再現できます。一方で、異常な画像は学習していない特徴を含むため、Generatorではうまく再現できません。そのため、入力画像と、GANが生成した画像との差が大きいほど異常の可能性が高いと判断します。

この考え方は、AutoEncoderの再構成誤差を使った異常検知とよく似ています。つまり、「正常なものはうまく再現できるが、異常なものはうまく再現できない」という発想です。AnoGAN系の手法では、この再現の差に加えて、Discriminatorによる「正常らしさ」のスコアも組み合わせて、最終的な異常スコアを計算します。

このようにGANベースの異常検知では、正常データをもとに学習したGANが、入力画像をどれだけ正常らしく評価・再現できるかを利用します。

表2. AE/VAEとGANの比較

AE / VAEGAN
学習の安定性比較的安定不安定(モード崩壊などの問題)
生成画像の品質ぼやけがちシャープで高品質
異常検知の手軽さ再構成誤差を出すだけでよい推論時に最適化ループが必要(AnoGAN系)な場合がある
チューニングの難しさ普通ハイパーパラメータに敏感
用語解説
  • モード崩壊
    生成されるデータの多様性が失われ、特定のパターンばかりを生成してしまう現象のこと。

GANを選ぶ場面

  • 画像生成の品質が重要な場合(異常箇所の可視化をシャープにしたい)
  • 正常データの水増し・拡張を同時におこないたい場合
  • なるべく新しい手法の研究成果を取り入れたい場合(GANに限らず新しい手法ほど多くの研究蓄積がある)

ただし、学習が不安定で再現性の担保が難しいことから、ビジネスの本番環境ではAE/VAEのほうが採用されやすい傾向にあります。

まとめ:手法の選定フロー

図6. 再構成ベース手法の選定フロー

AEは構造がシンプルで、デバッグもしやすく、ベースライン構築に最適な選択肢です。AEで最小工数で試してから、状況と目的に応じてVAEやGAN、その他最新手法を検討する、という順番が基本になります。

最終的にどの手法を選定するかは、「データの性質」「要求精度」「運用の安定性」のバランスで決まっていきます。特にビジネス用途では、モデルの精度よりも「閾値をどう設定するか」「誤検知をどう減らすか」「再学習の頻度をどうするか」といった運用設計の方が成果を左右することが多いです。

お気軽にご相談ください!

当サイトの運営会社であるデータアナリティクスラボ株式会社は、データサイエンティストのプロフェッショナルサービスを提供しています。異常検知をはじめとしたデータ分析の実績も多数ございますので、お気軽にご相談ください。

ご相談・お問い合わせはこちらから

異常検知のビジネス活用例

異常検知プロジェクトの進め

本章では、異常検知プロジェクトの進め方について、特に画像データを用いた異常検知を中心に、私たちが普段どのような流れでプロジェクトを進めているかをご紹介します。
異常検知には、統計的手法を用いるもの、時系列データを扱うもの、テキストやログを対象とするものなどさまざまな種類がありますが、本章では製品画像や検査画像などを対象とした画像ベースの異常検知を想定しています。

画像ベースの異常検知が強みになる点としては、システム導入後に異常検知をする際、「製品を実際に触って確かめる機会が限りなく減る」という点です。例えば工場の検査工程に組み込む場合、製品を分解したりセンサーを取り付けたりする必要がなく、既存のカメラ画像だけで完結するため、導入のハードルとコストを大きく下げることができます。

STEP
最新動向の調査

まず取り組むべきことは、その課題領域で今どのようなアプローチが有効とされているかの調査をおこなうことです。異常検知は近年特に進化が早い分野で、画像系・時系列系・テキスト系それぞれで使える手法が増え続けています。お客様の課題と相性の良いアプローチをいくつかピックアップし、選択肢を整理します。

STEP
プロジェクトに応じたモデル選定

モデルを選ぶ際には共通して以下の観点を検討します。一般的に軽量さと精度にはトレードオフの関係があります。

軽量さ: 処理負荷が低いモデルほど、本番環境での安定稼働に有利です。特に、工場ライン上で撮影された画像を即時に判定するような用途では、1枚あたりの推論時間や処理遅延が重要になります。高性能なモデルであっても、判定に時間がかかりすぎると現場の運用に乗らないため、リアルタイム性が求められる場面では、精度だけでなくモデルの軽量さも重視する必要があります。

精度: 実務上は必ずしも最高精度のモデルが最適とは限りません。たとえ精度がわずかに劣るモデルであっても、処理速度、導入コスト、保守のしやすさに優れていれば、プロジェクト全体としてはより適した選択になることがあります。重要なことは、ベンチマーク上の最高精度を目指すことではなく、現場で求められる精度水準を満たしたうえで、安定して運用できるモデルを選ぶことです。

解釈可能性: ディープラーニングを用いたモデルは高い性能を発揮する一方で、判断基準がブラックボックスになりがちです。そのため、同程度の精度が得られるのであれば、無理に新しい複雑なモデルを採用するよりも、判断根拠を説明しやすい古典的なモデルの方が好まれるケースもあります。特に、製造現場や品質保証のように、検知結果を人が確認し、関係者に説明する必要がある場面では、精度だけでなく、現場が納得して使えるかどうかも重要な選定基準になります。

例えば、工場のラインで1秒間に何枚もの製品画像を判定する用途と、月に1度の点検レポートで使う用途では、求められる速度もコストも全く異なります。お客様の運用環境、予算、求める精度のバランスを見て、最適なモデルを選定します。

STEP
アノテーション(教師データ作成)

画像異常検知では、プロジェクトの目的に応じて必要な教師データの種類が変わります。正常画像だけを用いて学習するケースもあれば、画像ごとに正常・異常のラベルを付けるケース、さらに異常箇所をピクセル単位でアノテーションするケースもあります。
特に、異常箇所を細かく指定する必要がある場合は、ドメイン知識を持った人が1枚ずつ確認する必要があり、プロジェクト全体の中でも時間のかかる工程になりやすいです。アノテーションする枚数が数千枚規模になると数週間〜数ヶ月かかることも珍しくありません。

STEP
モデル検証

選定したモデルを、お客様の実データに近いサンプルで動作させ、実現可能性を確認します。ここで「そもそもこのアプローチで解けそうか」の見極めをおこない、必要なら早い段階で軌道修正をおこないます。

STEP
データ拡張

モデル検証の結果、手元のデータだけでは精度が足りないと判断した場合は、データセットの拡張をおこないます。

異常検知プロジェクトでよく発生する事象として、「異常データが極端に少ない」という問題が挙げられます。画像データであれば、回転、反転、明るさの変更、ノイズ付与、切り出しなどによって、既存データから学習に使えるような異常データのバリエーションを増やします。

また、異常データが極端に少ない場合には、生成AIを用いて異常画像を合成する方法や、正常データのみで学習し、それ以外を異常として検出する方法も検討します。ただし、人工的に生成したデータが実際の異常を十分に表現できているかは慎重に確認する必要があります。

STEP
モデル学習とチューニング

STEP5の工程で拡張したデータも含めてモデルを学習させ、チューニングを行いながら求める精度に近づけていきます。

モデルの学習では、1回の学習に最低でも数時間かかることが一般的です。パラメータを変えながら何パターンか試すとなると、GPUマシンを数日間~1週間程PCの電源をつけたまま回し続けることは珍しくありません。

「ベストなパラメータを総当たりで探したい」という気持ちはありますが、現実には時間とコストの制約があり、何百パターンも試すことは現実的にはできません。

STEP
精度評価

学習したモデルを、本番環境に近い条件で評価します。ここで重要なのは、「異常の定義」に沿った評価指標を使うことです。「見逃しを絶対に減らしたい」のか「誤検知を起こしたくない」のかによって、評価軸は変わります。

STEP
要求精度の判定

要求精度の基準はお客様によって異なります。「99%以上でないと困る」というお客様もいれば、「8割当たれば十分、残りは人がチェックする」というお客様もいらっしゃいます。ビジネスのどこに使うかによって、求められるラインは大きく変わります。

評価結果がお客様の求めるラインに達することができていれば、納品フェーズに進みます。届いていなければ、データ追加・再学習で精度を積み上げるか、根本的にモデル選定からやり直すかを判断し、再度ループします。1度で完璧に仕上げるのではなく、検証と改善を回しながら品質を高めていくのが実務での進め方になります。

精度を本当に左右するのは、評価指標の選び方でも細かいパラメータチューニングでもなく、データセットの質と量です。良いデータが集まっていれば、多少のチューニング不足でも精度は出ます。逆に、データが不十分なまま高度なモデルを使っても、結果はついてきません。だからこそ、私たちはアノテーションのような地道な工程に時間をかけます。AIを学習させるにあたっては、データセットの質を地道に高めることがプロジェクトの成功への鍵になります。

プロジェクト実例:キャラクターの物体検出

ここまでで異常検知プロジェクトの進め方を解説しました。ここからは、その流れをより具体的にイメージできるよう、実際のプロジェクト例をもとに、各工程で行ったアクションをご紹介します。

題材は、キャラクターの物体検出プロジェクトです。

「異常検知の話なのに物体検出?」と思われるかもしれません。しかし、画像の異常検知と物体検出は、技術的に近い関係にあります。物体検出は「画像のどこに何が映っているか」を見つける技術です。一方、画像異常検知でも、たとえば製品のキズや汚れの位置を特定する場合には、「画像のどこに異常があるか」を見つける必要があります。

2つの技術において、画像を集める、ラベルを付ける、モデルを学習させる、精度を評価するという大きな流れは共通しています。今回は説明のしやすさを優先し、より身近なキャラクター検出を例にしていますが、工場における不良品検出に置き換えても、基本的な進め方は大きく変わりません。

表3. プロジェクト実例: キャラクターの物体検出

STEP工程実施したこと判断・確認した観点重要な点
1最新動向の調査物体検出に使える代表的なモデルや実装方法を確認する精度、実装のしやすさ、運用面最新モデルが常に最適とは限らないため、目的に合うかが重要
2モデル選定複数の物体検出モデルの中から、本件の要件に合うモデルを選定する推論速度、精度、実装事例の多さ、扱いやすさ研究上の最高精度よりも、プロジェクトで安定して使えるかが重要
3アノテーション700枚分の画像について、キャラクターを四角い枠で囲み、ラベルを付与する対象キャラクターの位置、枠の付け方、ラベルの一貫性アノテーションの質は精度に直結するため、地道な作業であるが重要
4モデル検証選定したモデルが、キャラクター検出の課題に使えるかを確認する想定通りに検出できるか、課題に合っているか早い段階でモデルの適性を見極めることが重要
5データ拡張本件では実施せず700枚で十分な精度が見込めるか、元データのばらつきが十分かデータ拡張は必ず行うものではなく、元データの質やタスクの難易度を見て判断することが重要
6モデル学習・チューニングGPUを使ってモデルを学習させ、パラメータを調整する損失関数の下がり方、調整対象のパラメータ、学習時間1回の学習に数時間かかるため、試行錯誤の回数を見極める必要がある
7精度評価学習済みモデルの検出結果を確認する数値評価、実画像での検出結果、見落としや誤検出の有無数値評価だけでなく、目視確認も重要
8要求精度の判定お客様が求める精度に達しているかを確認する要求精度、実用上の問題の有無、プロジェクト目的との整合性「高精度」ではなく「要求を満たしているか」で見ることが重要
お気軽にご相談ください!

当サイトの運営会社であるデータアナリティクスラボ株式会社は、データサイエンティストのプロフェッショナルサービスを提供しています。異常検知をはじめとしたデータ分析の実績も多数ございますので、お気軽にご相談ください。

ご相談・お問い合わせはこちらから

業界でのビジネス活用例

製造業:富士通研究所×富士通インターコネクトテクノロジーズ

富士通研究所は、不良品の画像を教師データとして用意することなく、人工的に異常を付加した画像を生成しながら学習することで、キズや加工ミスなど多様な外観異常を高精度に検出する画像検査AI技術を開発しました。カーペットの毛並みやプリント基板の配線形状のように個体差が大きい製品でも異常箇所を正しく検出でき、異常検知公開ベンチマークデータセットの精度指標(AUROC)で世界最高レベルの98%を達成しました。富士通インターコネクトテクノロジーズ長野工場のプリント基板検査工程で検証した結果、検査工数を25%削減する効果が実証されました。

医療:富士フイルム × 国立がん研究センター

富士フイルムと国立がん研究センターは、MRI画像から神経膠腫(グリオーマ)の疑い領域を精密に抽出するAI技術をディープラーニングを用いて共同開発しました。神経膠腫は希少がんで臨床データが限られるため従来は特化AIが存在せず、領域や大きさの正確な把握が課題でしたが、富士フイルムのAI開発支援基盤「SYNAPSE Creative Space」上で効率的にアノテーションを行い学習データを構築することでこれを克服しています。抽出領域の体積計測も可能で、早期発見・診断精度の向上や手術・放射線治療の治療計画最適化への貢献が期待されています。

異常検知の注意点

異常検知は強力な技術ですが、適切に導入しなければ誤検知の増大やコスト超過を招くリスクもあります。本章では、プロジェクト成功のために押さえるべき注意点を解説します。

異常データの特性

データの不均衡

異常検知における大きな課題のひとつが、異常データの不均衡問題です。

クレジットカードの不正検知を例にとると、実際のデータはおおよそ以下の図のような比率になります。

図7. 異常データの不均衡の例

正常データが99%以上を占め、異常データは1%未満になることは珍しくありません。この状態で単純な予測モデルを作ると、「すべて正常」と答え続けるだけで数値としては精度99%を達成してしまいますが、異常を1件も見つけることができていないため、本来解きたい課題に対しては、意味のある結果になっていません。

対策:少数派の異常データをどう扱うか

この問題を対策するアプローチとして、以下の考え方が挙げられます。

データを人工的に補う (SMOTE)  : 実際の異常データをもとに、似た性質を持つ「架空の異常データ」をコンピューターが自動生成し、学習に使うサンプル数を増やします。

見逃しに重いペナルティを課す :モデルの学習時に「異常を見逃したときの罰則」を大きく設定します。少ない異常データでも、見逃さないよう学習を促すことができます。

「正常」だけを学習する (教師なし学習)  : そもそも異常データに頼らない方法です。正常な状態だけを徹底的に学習させ、そこから外れたものを異常と判定します。異常の種類を問わず対応できる点が強みです。

全ての「異常」を網羅することはできない

異常データの種類は理論上、無限に存在します。過去に経験したことのない故障や不正は、そもそもデータとして存在しないため、学習データとして用意することができません。

  • 既知の異常(故障パターンA、B、Cなど)→ 学習済みであれば検知できる
  • 未知の異常(前例のないパターン)→ 検知できるとは限らない

だからこそ、異常検知では「正常とは何かを学習し、そこから外れたものを異常とみなす」という考え方が広く採用されています。

お気軽にご相談ください!

当サイトの運営会社であるデータアナリティクスラボ株式会社は、データサイエンティストのプロフェッショナルサービスを提供しています。異常検知をはじめとしたデータ分析の実績も多数ございますので、お気軽にご相談ください。

ご相談・お問い合わせはこちらから

異常と判定する定義を曖昧にしない

異常検知プロジェクトが思うように進まない大きな原因のひとつとして、異常と判定する定義が曖昧なままプロジェクトが進んでしまうということが挙げられます。

異常判定における3つの切り口を整理します。

① 物理的・論理的に成立しないデータが現れる

例として、湿度センサーが0〜100%の範囲を超える値を返す、人の年齢が負の値になる、注文数量が小数になる(整数のみのはずなのに)といったケースが該当します。何が成立しない値なのかは対象データの定義域に依存します。 ①の異常はルールベースの閾値チェックで対応しやすい領域です。   

② 発生頻度が統計的に極めて稀

過去の分布から見て発生確率が極めて低い事象を異常とみなす考え方です。例として、あるユーザーの普段のログイン時間帯から大きく外れたアクセスがあった、製造ラインの振動センサーの値が学習データの分布から外れた、といったケースです。

Isolation Forest、AutoEncoderの再構成誤差などで検出します。注意点として、統計的な稀少性と「ビジネス上に影響があるかどうか」は必ずしも一致しないため、検出後に③の観点でフィルタリングする運用が現実的です。 

③ ビジネス上に影響があるもの

技術的には正常に動いているが、ビジネスとしては許容できない状態を異常とみなします。 技術的な正常/異常とは別軸で、「お客さんが離れる」「不良品が出る」「患者の容態が悪化する」といった、現場が困るかどうかが判定基準です。

例として、サーバー応答が3秒だったとき、エラーは出ていなくても、ユーザーが離脱するのであれば異常という判定になります。製造業なら「規格内だが良品ができる確率が落ちる傾向」、医療なら「基準値内だがその患者には危険な変化」などが該当します。

③の異常は①、②の異常に比べると判定が難しく、現場の感覚とドメイン知識を組み合わせた対応が求められます。

実プロジェクトでは、これらの定義が混在することがほとんどですが、解釈を混同したまま進めると、モデルの設計方針が定まらず、思うような結果が得られなくなります。プロジェクト開始時に、現場担当者・データサイエンティスト・経営層が揃って「自社にとっての異常とは何か」の判断基準を言語化しておくことが、成否を左右するといっても過言ではありません。「① 定義域違反のデータを除外」→「② 統計的に稀な事象を検出」→「③ 検出結果のうちビジネス上に影響があるものに絞り込む」という多段構成にすると、それぞれの定義を分担させやすくなります。

評価指標:「見逃し」と「誤検知」のバランスをとる

異常検知モデルの性能を測るうえで、一般的な「正解率(Accuracy)」はあまり参考になりません。正常データが99%を占める状況では、「すべて正常」と答えるだけで正解率99%が出てしまうためです。

そこで重要になるのが、不正解にあたる「見逃し」と「誤検知」をそれぞれ独立して評価するという考え方です。

表4. 不正解には2種類存在する

予測:正常予測:異常
実際:正常正解誤検知(本当は正常なのにアラートが出る)
実際:異常見逃し(本当は異常なのに気づかない)正解

この2種類の不正解はトレードオフの関係にあり、どちらをより重視するかはプロジェクトの用途によってそれぞれ変化します。

表5. 見逃しと誤検知はトレードオフ

見逃しを減らす方向誤検知を減らす方向
検知の感度高い(異常に気づきやすい)低い(アラートが出にくい)
誤検知多い少ない
見逃し少ない多い
向いている用途医療・金融の不正検知迷惑メール判定・推薦システム

製造業であれば故障の見逃しが生産ライン停止につながり、金融であれば不正の見逃しが被害拡大を招きます。こうした領域では、「見逃しを最小化すること」が最優先となります。

一方、誤検知が多すぎると現場がアラートに慣れてしまい、重要な警告を無視するようになります。いわゆる「オオカミ少年現象」です。

実際の運用では、リスクの大きさに応じてアラートを段階的に設計することが有効です。たとえば、高リスクのシグナルは即時対応、中リスクは翌営業日確認、低リスクは週次レポートでの確認、といった形です。具体的な数値の基準は一例であり、実際の業務や許容リスクに応じて調整が必要です。

まとめ

本記事では、異常検知の基本概念から手法の分類、ビジネス活用の進め方、そして実務上の注意点までを解説しました。異常検知は、正常パターンを学習することで未知の異常を捉えられる点に特徴があり、製造業の予知保全や外観検査、金融の不正利用検知、医療の画像診断支援、ITのサイバー攻撃検知など、幅広い業界で実用化が進んでいます。教師あり・教師なし・半教師ありといった手法の選択や、画像・時系列・グラフなど対象データの性質に応じたアプローチの使い分けが、精度を左右する重要なポイントとなります。

一方で注意点として、異常データの希少性に起因するクラス不均衡や、「異常」の定義が現場ごとに揺らぎやすいという構造的な課題があり、要件定義の段階で正常/異常の境界を関係者間で合意することが欠かせません。また、適切な評価指標の選定や、データ品質の継続的な管理、運用フェーズでの再学習サイクルの設計も、実運用での精度維持に直結します。

異常検知を適切に活用することで、見逃しの低減や監視業務の省力化、重大トラブルの未然防止といった具体的な価値創出につなげることが可能になります。本記事の内容が、異常検知の活用や運用を検討する際の一助となれば幸いです。

こちらもご覧ください

コラム: 2種類の案件「研究案件」と「運用案件」

データサイエンティスト(AIエンジニア)の業務は、大きく研究案件運用案件の2種類に分類することができます。

「研究案件」と「運用案件」ではプロジェクトとして設定されているゴールや進め方がかなり異なります。前者は「新規性のある手法を生み出し提案すること」が目的であり、後者は「現場でエラーなく動くシステムを届けること」が目的になります。

研究案件で意識すべきこと

研究案件において重要な点は、「新規性のあること」を行えているかどうかになります。したがって、既存の先行研究の論文調査に多くの時間を費やす事例が必然的に多くなります。これは、世界中の研究者がすでに何が行われていて何が行われていないのかを把握しておかないと、「新規性」を提案することができないからです。この調査フェーズだけで、案件全体の工数の30~40%近くを占めることも珍しくありません。

長い期間の論文調査を経て、既存手法では解けていない課題を見つけ、新しいモデルや手法を設計します。その後、実験と検証を繰り返して手法を評価し、最後に論文を執筆します。

運用案件で意識すべきこと

一方、システムを開発するような運用案件では、アプローチが大きく変わります。

研究系とは異なり、モデル選定の段階で、最新・最高精度のモデルを目指す必要はありません。現場で求められるのは、軽くて・速くて・安定して動くことになります。

具体的には、インターネット上で公開されている事前学習済みモデルの重みをダウンロードし、それを現場のシステムに組み込みます。そこからエラーを潰し、動作を確認し、最終的にはStreamlitなどのツールを使うことで非エンジニアでも操作できるUIを整備します。

「Kaggleのような数値として誰よりも高い精度を目指す」ことよりも、「現場の人が迷わず使える環境を作る」ことのほうが、実務では何倍も価値を持ちます。

よかったらシェアしてね!

この記事を書いた人

Data Analytics Magazine 編集部です!
ビジネスとデータサイエンスをつなぐメディアとして、日々情報発信いたします!

目次