アダコテック技術ブログ

アダコテックのエンジニアが発信する技術ブログです

異常検知モデルの評価

はじめに

アダコテックで機械学習エンジニアをしているジャン・セジュンです。韓国で機械工学を学んだ後、日本に留学し、東京工業大学(現・東京科学大学)大学院で核融合分野へのディープラーニング応用研究に取り組んできました。大学院を卒業後、異常検知分野を活用するアダコテックの技術に強く興味を持ち、志望いたしました。
入社後、社内システムを扱い、実際に異常検知を行う業務を通して、クラウドベースのサービスが内部的にどのように構成され、動作しているのかを深く理解する機会を得ることができました。これにより、研究だけでなくプロダクト開発の分野でも様々な経験を積むことができました。
特に研究業務では「アンサンブルプロジェクト」に参加し、複数の異なるモデルを組み合わせることで目標とする最終性能を向上させるという課題に取り組みました。このプロジェクトを通じて、モデルの内部ロジックや評価方法を正確に理解することの重要性を痛感しました。

異常検知モデルは、ユースケースごとに求められる評価基準が大きく異なります。 例えば、見逃しを最小限に抑えることが重要なケースと、過検出を減らすことが優先されるケースでは、適切な評価指標も大きく異なります。このような多様なニーズや状況に応じてモデルを評価することが、異常検知における大きな課題の一つです。

こうした背景から、本記事では異常検知モデルの性能評価に用いられる主な手法を整理し、それぞれの評価指標がどのようなユースケースで有効なのかをご紹介します。特に、どのような指標でモデルを評価するのか、そして評価の方法としてしきい値を設定して評価するアプローチとしきい値に依存しないアプローチの違いにも着目しながら解説していきます。

モデルの性能評価には様々な指標を使用でき、大きくはしきい値(threshold)を用いる方法と用いない方法に分けられます。しきい値を使用する評価方法は、実際に適用する際に意思決定境界を明確にできるという利点があり、一方、使用しない方法はモデルの全体的な性能を直感的に示すという利点があります。

これらの評価指標は実際の適用分野によって重要度が異なるだけでなく、あるモデルが特定の評価方法では優れた性能を示す一方で、別の評価方法では性能が低下することがあります。これは各評価指標がモデル性能の異なる特性を反映しているためです。

アダコテックでは異常検知を行う際、異常値を用いてデータに欠陥があるか否かを判断します。例えば、1枚の写真を入力すると、モデルはその写真に対して異常値という数値を与えます。

データの定義、異常値としきい値の扱い

これから、欠陥のないデータを「OKデータ」、欠陥のあるデータを「NGデータ」と呼ぶことにする。また、各データについては、データ番号と異常値を左側に小さい数、右側に大きい数の順で並べることにします。ここでしきい値を設定してみます。この異常値があらかじめ設定されたしきい値を超えると欠陥ありと判断され、しきい値より小さければ欠陥なしと判断されます。

上の図で、赤い線(しきい値 = 5)より右側を「欠陥あり」と判断し、赤い線(しきい値 = 5)より左側を「欠陥なし」と判断します。 そのため、OK134 (異常値 = 5.34)とOK534(異常値 = 6.34)は実際には欠陥のない「OKデータ」であるにもかかわらず、「欠陥あり」と誤判定されています。また、NG001(異常値 = 3.14)とNG002(異常値 = 4.44)は実際には欠陥があるにもかかわらず、「欠陥なし」と誤判定されています。つまり、誤分類された場合でも、それが「OKデータ」なのか「NGデータ」なのかによって区別されます。

つまり、私たちは以下の4つに分類することができます。しきい値を導入すると、データは以下の4つの状態に分類できます。

  • TP(True Positive):欠陥データ(NG)がしきい値を超え、正しく欠陥と判断される場合
  • TN(True Negative):正常データ(OK)がしきい値を超えず、正しく正常と判断される場合
  • FP(False Positive):正常データ(OK)がしきい値を超え、誤って欠陥と判断される場合
  • FN(False Negative):欠陥データ(NG)がしきい値を超えず、誤って正常と判断される場合

しきい値を使う評価方法

ここで、しきい値を変更すると、TP、TN、FP、FNの値が変化することが簡単に分かります。では、しきい値はどこに設定すればよいでしょうか? 一般的に、TNとTPの数値が高いほど良いとされますが、モデルの性能評価はこのような単純分類だけでは十分ではありません。これは問題によって異なり、実際のお客様が求めるモデルによっても異なります。したがって、さまざまな評価方法があります。

極端な例を挙げてみると、

  • 顧客1のケース:

    「正常なデータを欠陥ありと誤判定するのは許容できますが、欠陥のあるデータを確実に検出することが重要です。」

    (例:欠陥製品が顧客に渡ると深刻な問題が起こる場合)

  • 顧客2のケース:

    「欠陥のあるデータを正常と誤判定するのは許容できますが、正常なデータを欠陥ありとは判定したくありません。」

    (例:重要な業務メールや知人からのメールが迷惑メールフォルダに入ってしまうと、重要な情報を見逃したり、いちいち確認する手間がかかるためです。一方で、迷惑メールが通常の受信トレイに入る場合は、不快で手間はかかりますが、自分で削除すれば済むため、比較的影響が小さいと言えます。)

顧客1のケースでは、Recall(再現率)をTPとFNのみを用いて評価し、Recallが高いところをしきい値として設定するとよいでしょう。この場合、OKデータよりもNGデータを正しく分類することが重要なため、緑色の線のしきい値(Recallが高い位置)が適切です。

顧客2のケースでは、Specificity(特異度)をTNとFPのみを用いて評価し、Specificityが高いところをしきい値として設定するとよいでしょう。この場合は、OKデータを正しく分類することが重要なので、紫色の線のしきい値(Specificityが高い位置)を選ぶことができます。

F1スコアは、正常データ(OK)と欠陥データ(NG)のうち、片方のデータ数が少なく(不均衡データ)、特に少数クラスの正確な検出が重要な場合に役立つ指標です。F1スコアは、特に少数クラス(NGデータ)の検出に重点を置く場合に適しています。

 

MCC(マシューズ相関係数)は、特にデータの偏りが非常に大きい場合や、正常データと欠陥データの両方をバランスよく正確に区別する必要がある場合に有効な指標です。

しきい値を使わない評価方法

モデルの性能を評価する際には、必ずしも特定のしきい値を設定する必要はありません。しきい値を用いない評価方法では、モデルが出力するスコア全体の分布やランキング性能を総合的に評価できます。代表的なものとして、曲線の下の面積(AUC: Area Under the Curve)を用いる「ROC-AUC」や「PR-AUC」があります。これらの指標は、複数のしきい値を変化させながら性能を測定し、その結果を1つの数値でまとめるため、モデルの全体的な識別能力を直感的かつ比較的公平に把握できるという利点があります。

特に、ROC-AUC は正例と負例の比率が比較的均等な場合に有効で、全体的な分類性能を俯瞰するのに適しています。一方、PR-AUC はデータに大きなクラス不均衡がある場合により適しており、少数クラス(例えば欠陥データ)の検出能力を直接的に評価できます。

  • 使っている指標

ROC-AUC(Receiver Operating Characteristic - Area Under Curve)

ROC-AUC曲線は以下のようなグラフです。

ROC-AUCとは、モデルが正常データ(OK)と欠陥データ(NG)をどれくらいうまく区別できるかを総合的に表す指標です。FPRTPR を利用する評価方法です。

  • ROC曲線は、横軸(X軸)にFalse Positive Rate(FPR)、縦軸(Y軸)にTrue Positive Rate(TPR , Recall)を取ります。
  • ROC-AUCとは、このROC曲線の下の面積(Area Under Curve)を意味します。
  • ROC-AUCは、
    • 1に近いほど性能が良く、
    • 0.5に近いほどランダム(無作為)な性能であることを示します。

PR-AUC(Precision-Recall Curve - Area Under Curve)

PR-AUC曲線は以下のようなグラフです。

PR-AUCとは、PrecisionとRecallの関係を表す指標です。

  • PR曲線は、横軸(X軸)にRecall(再現率)、縦軸(Y軸)にPrecision(適合率)を取って描きます。
  • PR-AUCは、このPR曲線の下の面積(AUC)によって性能を評価します。
  • PR-AUCは、
    • 1に近いほど性能が良く、
    • 0に近いほど性能が悪いモデルであることを示します。

実運用での追加考慮事項

モデル選定の際には、AUCの値だけでなく曲線形状も考慮する必要があります。AUCが同じでも、低しきい値領域で高いRecallを保つモデルと、高Precisionを維持するモデルでは、実運用での誤検出・見逃しのバランスが異なります。

上の図では、モデルAとモデルBはいずれもAUC=0.950と同じ値ですが、曲線形状が異なります。特に、FPRがほぼ0の領域でモデルBはTPRが高く、正常データを誤って欠陥と判定することなく、多くの欠陥を検出できていることが分かります。一方、モデルAはFPRが0付近ではTPRが低く、この領域での欠陥検出能力が劣ります。また、モデルBは曲線が比較的緩やかに上昇しており、運用時に設定するしきい値の選択幅が広く、環境やデータ分布の変化にも安定して対応できるという利点があります。

欠陥検出性能の評価方法

欠陥を的確に検出できるモデルかどうかを評価する場合も、上記の指標(TP、TN、FP、FN)を用いることができます。ただし、この場合は特に欠陥データ(NG)を正しく検出できているかに重点を置き、Recall(再現率)やF1スコアなど、少数クラスである欠陥データの検出性能を反映する指標が重要になります。

  • TP(True Positive):欠陥があるデータ(NG)を正しく「欠陥あり」と判定した場合
  • TN(True Negative):欠陥がないデータ(OK)を正しく「欠陥なし」と判定した場合
  • FP(False Positive):欠陥がないデータ(OK)を誤って「欠陥あり」と判定した場合
  • FN(False Negative):欠陥があるデータ(NG)を誤って「欠陥なし」と判定した場合

上の画像では、欠陥部分は赤や黄色、欠陥のない部分は青で示されており、これはモデルが設定したしきい値に基づいて領域を判別した結果です。モデル評価では、画像単位で良否を正しく分類する能力と、欠陥の位置をどれだけ正確に特定できるかという能力は異なる観点であり、それぞれを分けて評価することが重要です。さらに、欠陥領域の評価では、アノテーションとモデルの検出結果がわずか1ピクセルだけ一致している場合でもそれを「欠陥あり」とみなすのか、それとも一定以上の重なり(IoUや面積割合など)がなければ欠陥検出と見なさないのかといった判定基準も事前に定める必要があります。このしきい値設定によって、モデルの位置検出精度評価が大きく変わる可能性があります。

まとめ

本記事では、異常検知モデルの性能評価に用いられる代表的な指標と、その適用場面について整理しました。評価方法は、大きくしきい値を用いる方法しきい値を用いない方法に分けられます。しきい値を用いる方法では、TP・TN・FP・FNを基に、Precision、Recall、Specificity、F1スコア、MCCといった指標で評価します。一方、しきい値を用いない方法では、ROC-AUCやPR-AUCのようにスコア全体の分布から総合的な性能を評価できます。

さらに、評価指標の選択はユースケースによって異なり、見逃しを避けたい場合や過検出を減らしたい場合など、目的に応じた基準設定が重要であることを確認しました。