AI異常検知の「評価」を、手を動かして理解する (3/4)

〜 閾値・混同行列・ROC/PR/F1 を、スライダーを動かしながら体感するチュートリアル 〜

AI外観検査を導入するとき、いちばん誤解されやすいのが 「評価(evaluation)」 の部分です。
「F1 が最大の閾値に設定します」と言われても、F1 とは何か、なぜ閾値で結果が変わるのか、
100% という数字をどこまで信じてよいのか — ここが腹落ちしないまま話が進みがちです。

この記事では、ブラウザで動く教材アプリを 実際に操作しながら、異常検知の評価プロセスを
一歩ずつ体で理解していきます。数式の暗記は不要です。スライダーを動かして、
数字とグラフが一斉に動くのを眺めるだけで、評価の全体像がつかめます。

アプリ(無料・インストール不要)
https://anomalydetectiondemo.streamlit.app/

この記事を別ウィンドウで開き、アプリを操作しながら読むのがおすすめです。
表示されるデータはすべて説明用の疑似データで、実製品のデータではありません。

このチュートリアルで分かること

  • 異常スコアと閾値の関係、そして「過検知 ⇄ 見逃し」のトレードオフ
  • 混同行列と 5 つの評価指標(Recall / Precision / F1 など)が何を表すか
  • ROC / PR / F1 曲線の読み方と、閾値の 5 つの決め方
  • 「同じ AI でも、サンプル次第で成績がブレる」という評価の落とし穴

各パートには 🖱 操作 と 👀 観察 を用意しました。実際にやってみてください。

Part 3. 評価曲線と「閾値の決め方」(タブ③)

ここまでは閾値を手で動かしてきました。タブ③では、
閾値を「どう決めるか」の方針を選び、その結果をグラフで比べますタブ③をクリック します。

t08_tab3_manual.png

まず ROC 曲線 — 検出器そのものの実力

  • 横軸 FPR(過検知率)、縦軸 TPR(Recall)。左上に近いほど優秀
  • AUC(曲線の下の面積)が検出器の実力。1 に近いほど良く、この例は 0.970
  • 大事なのは、AUC は閾値に依存しない こと。AUC は「スコアの付け方(=AI の実力)」そのもので、
    閾値は「その実力をどう使うか」の運用選択です。

赤い点が「いま採用中の閾値」の位置。決め方を変えると、この点が曲線上を動きます。

閾値の 5 つの決め方を試す

「閾値の決め方」のボタンを切り替えて、数字がどう変わるか見ていきましょう。

t09_tab3_f1max.png

F1(Recall と Precision のバランス)が最も高くなる閾値を自動で選びます。
数学的にはバランスの良い点ですが、製造現場での最適とは限りません

② 見逃しゼロ優先

t10_tab3_zeromiss.png

👀 観察:閾値 0.330見逃し 0 件・Recall 100%
ただし代償として 過検知が 53 件 に跳ね上がり、Precision は 65.4% に低下。
→「見逃しゼロ」は聞こえは良いですが、良品を止めすぎるコストがセット でついてきます。

③ 過検知率の上限
t11_tab3_fprcap.png
👀 観察:「良品を止めるのは 5% まで」と上限を決めると、閾値 0.455
過検知 6 件・Precision 93.4% と過検知に厳しくなる一方、見逃しは 15 件(Recall 85.0%)に増えます。

④ 現場コスト最小化
t12_tab3_costmin.png
👀 観察見逃し 1 件のコスト = 10、過検知 1 件 = 1(見逃しが 10 倍痛い)と設定すると、
閾値 0.375見逃しをほぼ潰し(Recall 98.0%)、そのぶん 過検知は 31 件(Precision 76.0%)を許容します。
損失の重みづけが、そのまま閾値に反映されます。

4 つのモードの比較(同じ AI・同じデータ)

決め方 閾値 過検知(FP) 見逃し(FN) Recall Precision
見逃しゼロ優先 0.330 53 0 100% 65.4%
コスト最小化(10:1) 0.375 31 2 98.0% 76.0%
過検知率 5% 上限 0.455 6 15 85.0% 93.4%

同じ AI、同じデータでも、方針次第で結果はこれだけ変わります。
「唯一の正解の閾値」は存在せず、品質方針が閾値を決めるのです。

F1 曲線 — Recall と Precision の綱引き

「手動設定」に戻し、下へスクロールすると F1 曲線が見えます。

t13_tab3_f1curve.png

  • 青 = Recall(閾値を下げると上がる)/ オレンジ = Precision(閾値を上げると上がる)
  • 緑 = F1。青とオレンジが交差するあたりで緑が最大になります(=バランス点、◆印)。

F1 Score とは何か(数式)

t14_tab3_formula.png

F1 は Recall と Precision の 調和平均 で、両方が高いときだけ高くなります
片方が低いと、平均ではなく低い方に強く引っ張られます
(例:Precision 1.0・Recall 0.1 → 算術平均 0.55 でも F1 は約 0.18)。

だから「見逃しゼロだが過検知だらけ」も「過検知ゼロだが見逃しだらけ」も、F1 は伸びません。