Conformance-Driven 異常検知:『安全な運用文脈で記録した挙動』への適合性で異常を測る

これまでの記事では、システムの正常な振る舞いをモデル化して、そこからの逸脱で異常を測ってきました。残差(予測モデル)、状態遷移(FSM)——いずれも「正常モデルを作る」アプローチです。

運用・操作で動くシステムの異常検知:サーベイ(親記事)
本記事の位置づけ。条件付き(あ)の統計的・保証つきの系統。

しかし、学習を含む複雑なシステム(learning-enabled components を持つCPS)では、内部モデルそのものが信頼できるとは限りません。システムの自己監視は、攻撃で侵害されうるからです。そこで近年注目されているのが、独立した第三者モニタ(third-party monitor)が、「過去に安全だと分かっている運用文脈で記録した挙動」と、いまの挙動が統計的に適合(conform)しているかを測るという発想です。

この記事が扱うのは Conformance-Driven Anomaly Detection(Xin Qin, Proc. ACM/IEEE 16th Int. Conf. on Cyber-Physical Systems (ICCPS ’25, CPS-IoT Week 2025), pp.38:1–38:2, DOI: 10.1145/3716550.3725168)です。キーワードは2つ——適合性(conformance)運用文脈(operational context)です。

本記事の典拠について(確認事実と再構成の区別):この発表は会議録上 2ページの短い論文で、本文・実機テストベッドの図は公開されていません。そのため本記事の図はすべて概念を再構成した自作図であり、論文中の図の引用ではありません。確認できる事実は、(1) タイトル・著者・会議・DOI、(2) アブストラクトが述べる骨子——「学習機能を含む安全重要CPSに対し、本体から独立した第三者モニタが、過去に安全だった運用文脈で記録した参照挙動と現在の挙動を統計的に比較して安全性を評価する」枠組みであること、です。手法の数理的な肉付け(確率的適合性の距離・コンフォーマルなp値化)は、著者 Xin Qin が筆頭または共著で確立してきた確率的適合性(stochastic conformance)の系譜(後掲 Qin et al. 2023)に沿って本記事が補完したものです。論文固有の実装詳細を断定する箇所は設けていません。

Conformance-Driven異常検知の概念図

「正常モデルを作る」のではなく、「安全だった実績(参照挙動の集合)に照らして、いまの挙動がどれだけ典型的か」を統計的に測る。さらにそれを運用文脈ごとに行うことで、「操作で動いた分」を正常として扱います。そしてコンフォーマル予測の枠組みを使えば、誤報率を理論的に校正できます。

この手法が効く場面は明確です。

  • 学習機能を持つ安全重要CPS: 内部モデルが信頼できず、独立した安全性監視が要る系
  • 運用文脈が明確に切り替わるシステム: 文脈ごとに「安全な挙動」が違う系
  • 誤報率の保証が要る監視: アラート過多を避けたい運用

この記事の内容

  • 適合性(conformance)とは — 「安全な参照」への統計的な収まり具合
  • 運用文脈ごとの参照 — 操作で動いた分を正常として扱う
  • 確率的適合性検定 — 観測窓の分布と参照分布の距離
  • コンフォーマル予測 — 非適合スコアからp値を作り、誤報率を校正する
  • 独立third-partyモニタの意義 — 自己監視に頼らない
  • NumPy実装 — 文脈非依存と文脈依存を比べ、同じ校正誤報率でAUCが0.79→0.99に上がる様子を実測

前提知識

マハラノビス距離による異常検知
非適合スコアの一例。参照分布からの距離を測ります。
運用・操作で動くシステムの異常検知:サーベイ
マルチモード/条件付きの全体像。本記事はその文脈条件付き版。

1. 適合性(conformance)とは何か

「適合性」という言葉は、もともとモデルベーステストの用語です。「システムの実際の振る舞いが、仕様(参照モデル)の許す振る舞いに収まっているか」を確認することを conformance testing と呼びます。

異常検知に持ち込むと、こうなります。「正常モデル」を厳密に書く代わりに、過去に安全だと確認された挙動の集合を参照とし、いまの挙動がその参照に統計的に収まっているか(適合しているか)を測ります。

適合性(観測が安全な参照の範囲に収まるか)

緑の帯が「安全な参照挙動」の範囲(エンベロープ)です。観測挙動(青)がこの範囲に収まっていれば適合=正常、はみ出せば不適合=異常。この「収まり具合」を厳密な確率の言葉で測るのが、以降のテーマです。

ここで決定的に重要なのが、参照を運用文脈ごとに分けることです。なぜなら、操作によって運用文脈が変われば、安全な挙動の範囲そのものが変わるからです。


2. 運用文脈ごとの参照 — 操作で動いた分を正常として扱う

産業システムは、待機・高負荷・部分運転といった運用文脈を行き来します。文脈が違えば、安全な挙動の分布も違います。

運用文脈ごとに参照分布が違う

左図のように、各文脈は別々の参照分布を持ちます。ここで、3つの文脈のちょうど谷間に落ちる値(赤い破線)を考えてください。これはどの文脈の参照にも適合しない——どの文脈でも見たことのない挙動なので、異常です。

ところが、もし全文脈をひとまとめにした「単一の参照」で見ると、この谷間の値は「全体としてはあり得る範囲」に紛れてしまい、見逃されます。これは親サーベイ記事で見た「正常域が膨らむ」問題そのものです。

だから右図のように、まず現在の文脈を判定し、その文脈の参照とだけ照合する。操作で文脈が切り替わっても、切り替わった先の文脈の参照と比べるので、操作起因の変動を異常と誤検知しません。これが「操作で動いた分を異常としない」の、適合性版の実現です。

文脈という条件が決まったら、次は「適合しているか」を統計量で測ります。


3. 確率的適合性検定 — 観測窓と参照の距離

決定的な適合性(仕様に厳密に従うか)ではなく、産業データのようにノイズを含む挙動では確率的適合性(stochastic conformance)を測ります。すなわち、観測した挙動の分布が、参照の分布にどれだけ近いかを統計的に評価します。

確率的適合性検定(観測窓の分布と参照分布の距離)

正常なら、観測窓のヒストグラムは参照分布とほぼ重なります(左、距離小)。異常なら、観測分布が参照からずれます(右、距離大)。この「分布間の距離」には、いくつもの選択肢があります。

非適合スコアの選択肢

  • 最近傍距離: 参照集合への $k$ 近傍距離(ノンパラメトリック)
  • マハラノビス距離: 参照分布からの相関を考慮した距離
  • 分布間距離: 2標本検定(KS検定)、MMD(最大平均ディスクレパンシ)、Wasserstein距離
  • 再構成誤差: 参照で学んだオートエンコーダ/予測モデルの残差

どれを選んでも「参照からの外れ具合」を1つのスカラー(非適合スコア)にまとめる点は共通です。問題は、このスコアの閾値をどう決めるか。ここでコンフォーマル予測が効きます。


4. コンフォーマル予測 — 誤報率を校正する

「非適合スコアが2.4だったら異常か?」——この問いに、スコアの絶対値だけでは答えられません。コンフォーマル予測(conformal prediction)は、スコアをp値に変換して、誤報率を理論的に校正します。

考え方はシンプルです。安全な校正データ(calibration set)それぞれの非適合スコアを計算しておき、テスト点のスコアが校正集合の中でどれだけ上位かを見ます。

$$ \begin{equation} p = \frac{\#\{i : s_i \ge s_{\text{test}}\}}{n_{\text{cal}}} \end{equation} $$

これは「校正集合の中で、テスト点と同じかそれ以上に非適合な点の割合」です。

コンフォーマル異常検知(非適合スコア→p値)

p値が小さい(たとえば $p < 0.05$)ほど「参照に照らして珍しい=異常」。コンフォーマル予測の美点は、正常データに対して $p < \alpha$ となる確率が(交換可能性の仮定の下で)$\alpha$ 以下に抑えられること。つまり、閾値 $\alpha = 0.05$ と決めれば、誤報率がおよそ5%に校正されます。これがコンフォーマル異常検知(Laxhammar & Falkman らが定式化)の保証です。

適合性をp値で測ることで、「どれだけ異常か」だけでなく「どれだけ誤報するか」まで制御できる——これが Conformance-Driven の統計的な背骨です。次に、なぜモニタが独立でなければならないかを確認します。


5. 独立third-partyモニタの意義

Conformance-Driven の枠組みがもう一つ強調するのは、監視を行うのがシステム本体とは独立した第三者モニタであるべき、という点です。

独立third-partyモニタのアーキテクチャ

学習機能を含むシステムは、入力やデータフローを敵対的に操作されると、自分自身の監視機構ごと欺かれるおそれがあります。システムが「自分は正常です」と言っても、その判断自体が汚染されているかもしれません。

そこで、本体とは別系統で動く独立モニタが、外側から挙動を観測し、安全な参照との適合性を評価します。モニタは本体の内部状態に依存しないため、本体が侵害されても独立に安全性を判定できます。前記事の「アクチュエータ状態をセンサと突き合わせる」発想とも通じる、冗長な外部チェックの思想です。

理論部品(適合性・運用文脈・確率的適合性検定・コンフォーマルなp値・独立性)が揃いました。次節でこれらを1本のデータフローに束ね、手法全体のアーキテクチャとして俯瞰します。


6. アーキテクチャとデータフロー — 部品を1本道につなぐ

ここまでの部品を、モニタが毎時刻まわすひとつのパイプラインとして組み上げます。Conformance-Driven の発想を最小構成で形式化すると、次の5段になります。

Conformance-Drivenのデータフロー(窓→文脈判定→適合性距離→p値→閾値)

  1. 窓スライス:観測トレースから直近の窓 $x_{t-w:t}$ を切り出す。点単位ではなく窓単位にするのは、確率的適合性が「分布どうしの距離」だからです(単発の値では分布を測れません)。
  2. 文脈判定 $c=\kappa(x)$:現在どの運用文脈にいるかを判定する。$\kappa$ は補助信号(負荷・モード指示など一般的な状態量)や、窓特徴のクラスタ割り当てで実装できます。
  3. 適合性距離 $\delta = d(x_{t-w:t},\, R_c)$:現在窓と、その文脈の参照集合 $R_c$ との非適合スコア(kNN距離・マハラノビス・MMD など第3節の選択肢)を1つのスカラーに落とす。
  4. コンフォーマルなp値:あらかじめ文脈 $c$ の参照内で計算しておいた校正スコア $\{s_i\}=\{d(r_i, R_c)\}$ の中で、$\delta$ がどれだけ上位かを数える。式(1)の $p$ です。
  5. 閾値判定 $p<\alpha$:p値が有意水準 $\alpha$ を割れば異常アラート。第4節の保証により、正常データでアラートが出る確率は $\alpha$ 以下に校正されます。

この図の要は、上段(オンラインの計算)と下段(オフラインで用意した文脈別参照・校正スコア)が文脈 $c$ を鍵に結合している点です。$\delta$ を測る相手も、$p$ を校正する分布も、いずれも「いまの文脈の」参照に切り替わる。だから操作で文脈が変わっても、比較対象ごと切り替わり、操作起因の変動を異常と誤らないのです。

確率的適合性を「軌道分布の距離」として見る

第3節では観測窓の分布と参照分布の距離と述べましたが、Conformance-Driven の背骨にある 確率的適合性(stochastic conformance) は、より一般に「2つのシステムが生む軌道(トレース)の分布どうしの距離」として定義されます(Qin, Hashemi, Lindemann, Deshmukh, 2023)。

確率的適合性:軌道分布の距離と仕様の転移

左図のように、観測トレース束(青)が参照トレース束(緑)と分布として近ければ「適合」。このとき重要なのが transference(転移)性です——参照側が満たす安全仕様は、適合している観測側でもほぼ同じ強さで満たされる。つまり「参照は安全だった」という実績を、いまの挙動の安全性へ移し替えられる。右図のように分布が離れれば距離 $\delta$ が大きくなり、これが non-conformance risk(非適合リスク) として異常スコアに直結します。この距離を有限データから推定する道具が、まさにコンフォーマル予測でした。

「正常モデルを書く」のではなく「安全だった軌道分布との距離を測り、その距離が小さければ安全仕様が転移する」——これが conformance を異常検知の土台に据える理屈の核です。

オフライン構築とオンライン監視の2フェーズ

実運用では、この手法は重い学習を伴わない2フェーズとして動きます。

オフライン構築フェーズとオンライン監視フェーズ

  • オフライン(構築):安全だと確認された運用区間の挙動を記録し、運用文脈ごとに参照集合 $R_c$ にまとめ、各参照内で校正スコア $\{s_i\}$ を算出して分位点を固める。
  • オンライン(監視):現在の挙動を窓化し、文脈を判定して $\delta$ を測り、構築フェーズの校正スコアと突き合わせてp値→$\alpha$ 判定するだけ。

ニューラルネットを再学習する必要がなく、参照集合と校正分位点さえ持てば監視が回るのが軽量さの源です。新しい安全運用データが貯まれば、参照集合に足すだけで更新できます。これは「内部モデルが信頼できない」状況で、モデル本体の良し悪しに依存しないモニタを作る、という問題意識とも整合します。

データフローと2フェーズが見えたところで、なぜモニタを本体から独立させるのかを最後に補強し、実装に進みます。

独立性がアーキテクチャ要件である理由

自己監視は汚染されうる vs 独立モニタ

左の自己監視(内蔵)型は、攻撃者が入力や内部データフローを操作すると、判定ロジックごと欺かれ「正常です」と誤って報告しかねません。右の独立モニタは、本体の内部状態に触れず外側から挙動だけを観測し、安全な参照との適合性で独立に判定します。本体が侵害されても、別系統のモニタは汚染されないため安全性評価を保てる——これがアブストラクトの述べる「自己監視は敵対的操作に脆弱」という問題意識への、アーキテクチャ上の答えです。

理論とアーキテクチャが揃いました。実データで、データフローの中核——文脈を条件にすることの効果を測ります。


7. NumPy実装 — 文脈条件で適合性検定の精度が上がる

3つの運用文脈を持つ系を考えます。各文脈で挙動特徴の分布(平均・分散)が異なります。安全な参照(校正)データを文脈ごとに用意します。

import numpy as np
rng = np.random.default_rng(0)
M = 3
ctx_mean = np.array([0.0, 3.0, -2.0]); ctx_sd = np.array([0.5, 0.7, 0.4])
n_ref = 2000
ref = {m: rng.normal(ctx_mean[m], ctx_sd[m], n_ref) for m in range(M)}  # 文脈ごとの安全参照

テスト系列は文脈がブロックで切り替わります。異常は「その文脈にとっては異常だが、別の文脈なら普通の値」というステルスなものを注入します(操作で動いた分には紛れない、本物の逸脱)。

N = 3000
ctx = np.zeros(N, int); t = 0
while t < N:
    dur = rng.integers(150, 350); ctx[t:t+dur] = rng.integers(0, M); t += dur
y = rng.normal(ctx_mean[ctx], ctx_sd[ctx]); label = np.zeros(N, int)
for st, en in [(800, 880), (1700, 1760), (2400, 2470)]:
    m = ctx[st]; wrong = (m + 1) % M
    y[st:en] = rng.normal(ctx_mean[m] + 0.6*(ctx_mean[wrong]-ctx_mean[m]), ctx_sd[m])  # 別文脈側へ部分シフト
    label[st:en] = 1

非適合スコアは「自文脈の参照集合への最近傍距離」、p値はコンフォーマルで校正します。文脈依存(自文脈の参照)と文脈非依存(全文脈をプールした単一参照)を比べます。

def nonconf_to(refarr, val):
    return np.min(np.abs(refarr - val))            # 最近傍距離 = 非適合スコア

# 文脈依存: 自文脈の参照と校正
cal = {m: np.array([nonconf_to(np.delete(ref[m], i), ref[m][i]) for i in range(500)]) for m in range(M)}
score_ctx = np.array([nonconf_to(ref[ctx[k]], y[k]) for k in range(N)])
p_ctx = np.array([(cal[ctx[k]] >= score_ctx[k]).mean() for k in range(N)])

# 文脈非依存: 全文脈をプールした単一参照
ref_all = np.concatenate([ref[m] for m in range(M)])
cal_all = np.array([nonconf_to(np.delete(ref_all, i), ref_all[i]) for i in range(0, len(ref_all), 3)])
score_ag = np.array([nonconf_to(ref_all, y[k]) for k in range(N)])
p_ag = np.array([(cal_all >= score_ag[k]).mean() for k in range(N)])

AUC(検知力)と、$p<0.05$ での誤報率(校正の良さ、目標5%)を測ります。

def auc(score, yy):
    order = np.argsort(score); ranks = np.empty(len(score)); ranks[order] = np.arange(1, len(score)+1)
    npos = yy.sum(); nneg = len(yy) - npos
    return (ranks[yy==1].sum() - npos*(npos+1)/2) / (npos*nneg)

norm = label == 0
print(f"文脈非依存 AUC={auc(score_ag, label):.3f}  誤報率={(p_ag[norm]<0.05).mean():.3f}")
print(f"文脈依存   AUC={auc(score_ctx, label):.3f}  誤報率={(p_ctx[norm]<0.05).mean():.3f}")

実行結果(seed固定):

文脈非依存 AUC=0.785  誤報率=0.056
文脈依存   AUC=0.986  誤報率=0.060

p値の時系列(文脈非依存と文脈依存)

時系列を見ると、最上段の挙動 $y$ は文脈(背景色)ごとに水準が変わり、赤帯の異常は「別文脈なら普通の値」なので目視では紛れています。中段の文脈非依存のp値は、プール参照がどこかの文脈で正常な値を弾けないため、異常区間でも十分に下がりません(見逃し)。下段の文脈依存のp値は、異常区間でだけ明確に落ちます。

AUCと誤報率の校正

数字の読み取りです。

  • 誤報率は両者とも約0.05に校正:コンフォーマル予測のおかげで、文脈の有無にかかわらず誤報率は目標どおり制御されています(0.056 と 0.060)。
  • AUCは文脈依存が圧倒:同じ校正誤報率でありながら、文脈非依存の0.785に対し、文脈依存は0.986。「どれだけ誤報するか」を一定に保ったまま、「どれだけ検知できるか」が大きく上がるのです。

ここが Conformance-Driven の核心です。コンフォーマル予測が誤報率を保証し、運用文脈を条件にすることが検知力を生む。文脈非依存のプール参照は「どこかの文脈で正常な値」を弾けないため、文脈固有の異常を見逃します。

文脈非依存(プール参照)の弱点

上図がその弱点を端的に示します。文脈0の区間に出た値2.1は、文脈0では明らかに異常ですが、プール参照では文脈1の裾に近傍があるため「正常」に見えてしまいます。


8. まとめ

CPSの安全性を独立モニタで監視する Conformance-Driven 異常検知を見てきました。

  • 核心:正常モデルを書く代わりに、「安全だった実績(参照挙動)」への統計的適合性で異常を測る。
  • 運用文脈:参照を文脈ごとに分け、現在の文脈の参照とだけ照合 → 操作で動いた分を正常として扱う。
  • 確率的適合性:観測窓の分布と参照分布の距離(kNN/マハラノビス/MMD/Wasserstein)。
  • コンフォーマル予測:非適合スコアをp値に変換し、誤報率を $\alpha$ に校正。
  • 独立モニタ:本体の自己監視に頼らない第三者監視。
  • 実証:同じ校正誤報率(約0.05)で、文脈非依存(AUC0.785)に対し文脈依存は0.986。文脈を条件にすることが検知力を生む。

残差・状態遷移・適合性と、「操作で動いた分を正常として扱う」3つの実装を見てきました。最後の記事では、条件付き分布 $p(x\mid c)$ を深層生成モデルで厳密にモデル化する、条件付き正規化フローに進みます。

運用・操作で動くシステムの異常検知:サーベイ(親記事)
条件付き・マルチモードの全体像。

主な参考文献

  • X. Qin, “Conformance-Driven Anomaly Detection for Cyber-Physical Systems,” Proc. ACM/IEEE 16th Int. Conf. on Cyber-Physical Systems (ICCPS ’25, CPS-IoT Week 2025), pp.38:1–38:2, 2025. DOI: 10.1145/3716550.3725168.
  • X. Qin, N. Hashemi, L. Lindemann, J. V. Deshmukh, “Conformance Testing for Stochastic Cyber-Physical Systems,” arXiv:2308.06474, 2023.(確率的適合性=軌道分布の距離・転移性・コンフォーマル推定)
  • Y. Wang, M. Zarei, B. Bonakdarpour, M. Pajic, “Probabilistic Conformance for Cyber-Physical Systems,” arXiv:2008.01135, 2020.(STL仕様を介した適合性の統計的検定と仕様の転移)
  • R. Laxhammar, G. Falkman, “Conformal prediction for distribution-independent anomaly detection in streaming environments,” IEEE Trans. Neural Networks and Learning Systems, 2015.
  • V. Vovk, A. Gammerman, G. Shafer, “Algorithmic Learning in a Random World,” Springer, 2005.(コンフォーマル予測)
  • A. Gretton, et al., “A Kernel Two-Sample Test (MMD),” JMLR, 2012.