製造業、医療、金融、IT運用など、異常検知が重要な分野では、よく次のように言われます。

異常データは少ない。だから正常データを学習し、そこからの逸脱を異常として検知する。

これは合理的な考え方です。

重大な故障や事故、医療上のインシデント、不正アクセスなどは、日常的にはそれほど多く発生しません。異常データだけを十分に集めて学習することは、現実には容易ではありません。

そこで、日常的に蓄積される「正常なログ」を基準にし、通常状態から外れたデータを異常として捉えます。

異常そのものを大量に集められなくても、正常からの逸脱を検知することで、インシデントの兆候を捉えるわけです。

正規分布から外れれば異常なのか

最も分かりやすい考え方が、正規分布を基準にする方法です。

日常データが平均値の周辺に集まり、左右に一定のばらつきを持つと仮定します。平均から標準偏差の何倍離れているかを示すZ-scoreなどを使えば、通常範囲から大きく外れた値を検出できます。

例えば、

  • 温度が通常より極端に高い
  • 振動が平均的な範囲を超えた
  • 検査値が過去の分布から大きく逸脱した
  • 通信量が通常時とは異なる水準に達した

といった変化です。

ただし、現実のデータが常に正規分布になるとは限りません。

分布が歪んでいる場合もあれば、裾が長い場合もあります。正常状態そのものが複数の群に分かれ、二峰性や多峰性を持つこともあります。

例えば、昼間と夜間、稼働時と待機時、熟練者と非熟練者では、それぞれ異なる「正常」が存在するかもしれません。

一つの平均値と標準偏差だけで正常を定義すると、正常な状態を異常と誤判定したり、逆に重要な構造変化を見逃したりする可能性があります。

実際に使われている異常検知手法

異常検知には、さまざまな手法があります。

代表的なものには、

  • Z-score
  • Hotelling’s T²
  • One-Class SVM
  • LOF
  • Isolation Forest
  • AutoEncoder
  • CUSUM
  • Change Finder

などがあります。

方法は異なりますが、多くは、

通常の分布、境界、密度、再現可能なパターン、または時系列の安定状態を学習し、そこからの逸脱を検出する

という考え方に基づいています。

これらは、異常を見つけるための優れた手法です。

しかし、現場ではその先に別の問題が残ります。

異常を検知できても、異常を理解できるとは限らない

例えば、製造ラインで振動が通常範囲を外れたとします。

異常検知システムは、

「これまでの正常状態とは異なる」

と教えてくれます。

しかし、それだけでは次の問いには答えられません。

  • なぜ振動が増えたのか
  • どの部品や工程に関係しているのか
  • 一時的な変動なのか
  • 故障の前兆なのか
  • 次に何を確認すべきなのか

医療AIでも同じです。

AIの出力や医師の判断に大きなばらつきが生じたとしても、

  • どの症例で判断が割れるのか
  • どの画像特徴が不一致と関係するのか
  • 画像品質の問題なのか
  • 境界症例だからなのか
  • モデル固有の限界なのか

までは、単純な外れ値検知だけでは分かりません。

つまり、

異常を見つけることと、異常が生まれる構造を理解することは、別の問題です。

相関が分かっても、原因が分かるとは限らない

異常を検知した後には、関連する変数を調べます。

例えば、

  • 温度が上がると振動も増える
  • 画像品質が低い症例ほど医師間の判断が割れる
  • 稼働時間が長い設備ほど異常スコアが高い
  • 通信量の増加とシステム障害が同時に発生する

といった相関です。

相関分析は非常に重要です。どの変数が異常と関連しているかを絞り込む手掛かりになります。

しかし、相関だけでは原因は確定できません。

温度が振動を増加させたのかもしれません。反対に、部品の摩耗が温度と振動の両方を増加させたのかもしれません。あるいは、負荷量という第三の要因が両方に影響している可能性もあります。

医療データでも、症例の重症度が高いほど、ある画像特徴と診断結果の両方が変化することがあります。

この場合、二つの変数に相関があっても、一方が他方の原因とは限りません。

したがって、

外れ値は異常の場所を示し、相関は関連する変数を示します。しかし、それだけで因果経路が明らかになるわけではありません。

DSA+DAGは、既存の異常検知を置き換えない

ここで重要なのは、DSA+DAGを既存の異常検知手法の代替と考えないことです。

Hotelling’s T²、Isolation Forest、AutoEncoderなどは、異常を検知するための優れた手法です。

DSA+DAGが目指しているのは、その検知結果の先です。

整理すると、次のようになります。

Detection
正常分布や通常パターンからの逸脱を検知する

Interpretation
分布や判断の構造が、どのように変化したかを捉える

Explanation
関連する変数と因果候補を区別し、異常が生じる経路を検討する

Decision Support
追加確認、予防保全、再学習、専門家判断などにつなげる

DSAは、単に平均から離れた点を探すのではありません。

一つの症例や一つの運転状態の中で、

  • どれだけ判断が揺れているか
  • 単一の中心に集約できるか
  • 判断が複数の群に分裂しているか
  • 通常時と異なる分布構造になっていないか

を捉えます。

さらに、複数の症例や運転条件をまたいで、

どのような特徴を持つ対象で、一致や安定性が崩れるのか

という症例横断・条件横断のパターンを解析します。

これが、私たちが「Decision Structure」と呼んでいるものです。

そしてDAGを用いて、

  • どの要因が先行しているのか
  • 第三の要因が存在しないか
  • どの経路で異常状態につながる可能性があるのか
  • どこに介入すれば連鎖を止められるのか

を明示的に整理します。

相関を原因と決めつけるのではなく、因果仮説、前提条件、未確認部分を区別して表現することが重要です。

日常データは「何も起きていないデータ」ではない

正常データは、単にインシデントが発生していない記録ではありません。

そこには、

  • 通常時の分布
  • 状態ごとの正常範囲
  • 変数間の相関
  • 人やAIの判断が一致する条件
  • 判断が不安定になり始める条件
  • システムが破綻する前の小さな構造変化

が含まれています。

日常ログの価値は、正常範囲を決めることだけではありません。

長期間の正常データを分析することで、

普段はどのような関係性によって安定が維持されているのか

を捉えられる可能性があります。

その関係性が崩れたとき、まだ大きな事故が起きていなくても、インシデントの前兆として検知できるかもしれません。

重要なのは、単に数値が正常範囲を外れたかどうかではありません。

どの分布が変わったのか。どの相関が崩れたのか。どの判断構造が分裂したのか。

そこまで見る必要があります。

DSA+DAGで目指すもの

DSA+DAGは、既存の異常検知の後段に置く、解釈・監査レイヤーとして考えています。

Observation
日常ログ、画像、センサー値、AI出力、人の判断

Distribution
平均、ばらつき、分布形状、モーダル状態

Decision Structure
どの条件で一致、不一致、分裂が生じるか

Causal Explanation
相関と因果を区別しながら、原因候補と影響経路を整理する

Decision Support
追加測定、予防保全、モデル更新、専門家へのエスカレーションにつなげる

もちろん、すべての領域でこの枠組みが実証済みというわけではありません。

現在は医療AIを中心に研究を進めています。

だからこそ、次に必要なのは理論を語り続けることではなく、実データによる検証です。

実証試験で明らかにすべき課題

  • 異常検知はできているが、原因を説明できない
  • 正規分布を前提にしてよいのか判断できない
  • 正常状態が複数あり、閾値の設定が難しい
  • 相関する変数は分かるが、原因と結果を整理できない
  • アラートが多く、対応の優先順位を付けられない
  • 人やAIの判断が割れる条件を知りたい
  • インシデントの予兆を構造的に捉えたい
  • 既存の異常検知システムに解釈機能を加えたい

既存の異常検知に、分布構造の理解と因果仮説の監査レイヤーを加える。

それが、DSA+DAGの基本的な考え方です。

異常を見つけるだけではなく、
異常が生まれる構造を理解し、
次の意思決定につなげる。

このテーマに関心をお持ちの企業・研究機関・大学の皆様と、実証試験をご一緒できればと考えています。