AI外観検査の閾値は、どう決まるのか——「見逃しゼロ」の代償を数字で確かめられる無料Webアプリを公開しました

「見逃しゼロ」を選ぶと、Recall(検出率)は100%になります。同時に、過検知が53件に増え、Precision(適合率)は65%まで下がります。株式会社TOMOMI RESEARCHは、AI外観検査における異常スコア・閾値(しきいち)・評価指標の関係を、ブラウザ上でスライダーを動かしながら確かめられる無料の教育用デモアプリを公開しました。本記事では、このアプリで何が見えるのかを実際の数値とともにご紹介します。

公開URL: https://anomalydetectiondemo.streamlit.app/
(無料・インストール不要・ログイン不要・アカウント登録不要)

編集メモ(公開時は削除): 挿入画像5点は本納品フォルダの images/ に配置済み(対外公開利用可を確認済み)。alt属性は本文の ![...] 内に記載しています。公開日: 2026年7月24日。


AIは「OK / NG」ではなく、点数を出している

AI外観検査は、最初から「OK」「NG」と答えているわけではありません。実際には2つのステップを踏んでいます。

  1. 製品ごとに「学習した良品と、どれくらい違うか」を数値にする。これが異常スコア(0.0〜1.0)です。良品らしいほど小さく、欠陥らしいほど大きくなります。
  2. その異常スコアが、ある境目の値を超えたものをNGと判定する。この境目が閾値です。

判定規則はシンプルで、異常スコア ≥ 閾値 なら NG判定。つまりAIが出しているのは連続した点数だけで、「ここから先はNG」という線を引いているのは人間です。

この構造から導かれる帰結があります。「精度は何%ですか」という問いは、どの閾値での話かを決めて初めて答えが定まります。精度は検出器だけで決まる固定値ではなく、閾値とセットで初めて意味を持つ数字だからです。

AI異常検知デモアプリのタブ①。異常スコアの分布ヒストグラムと散布図に閾値の線が引かれている
タブ①の初期表示。左が異常スコアの分布ヒストグラム、右が1サンプル1点の散布図。中央の点線が閾値。


なぜAIは「良品だけ」を学ぶのか

アプリの画面上部には、トルストイ『アンナ・カレーニナ』の一節を掲げています。

幸福な家庭はみな同じように似ているが、不幸な家庭は不幸なさまもそれぞれ違うものだ

良品はどれも似ているが、欠陥は一つひとつ違う。 傷、欠け、汚れ、変形、異物——欠陥の種類をすべて数え上げて学習させることは現実的ではありません。それなら「良品らしさ」だけを学び、そこからの距離を測るほうが素直だ、というのが良品学習型の異常検知の発想です。本アプリではこの枠組みを「異常検知におけるアンナ・カレーニナの原理」と呼んでいます(学術的に確立された定理ではなく、理解のための枠組みです)。

「良品学習ならNG画像は要らない?」——用語が招きやすい問い

良品学習という呼び名は、NG画像がまったく不要であるようにも読めます。正確には、モデルを作るときにNG画像を使わないという意味であって、性能試験にNGが不要という意味ではありません。閾値をどこに置くかを決めるにも、その閾値で欠陥を何件見逃すのかを測るにも、NGのサンプルは必要です。


スライダーを動かすと何が起きるか

ここからが本題です。アプリの初期設定は AUC ≈ 0.97(1に近いほど良い検出器)の、分離が良好なデータです。この状態で閾値だけを動かしてみます。

閾値を0.30に下げた画面。過検知67件・見逃し0件と表示されている
閾値を0.30に下げた状態。NG判定領域(灰色の帯)が大きく広がり、良品まで巻き込んでいる。

閾値 過検知(かけんち) 見逃し(みのがし) 現場で何が起きるか
0.30(低い) 67 件 0 件 欠陥は逃さないが、良品を止めすぎる
0.44(中間) 11 件 12 件 バランス型
0.60(高い) 0 件 62 件 良品は止めないが、欠陥を見逃す

※デモの初期設定(アプリ内で生成した疑似データ)における値です。

過検知は「良品なのにNGと判定してしまう」誤り、見逃しは「欠陥なのにOKと判定してしまう」誤りです。表を上から下に読むと、片方が減ればもう片方が増えることが分かります。良品と欠陥のスコアの山が少しでも重なっている限り、過検知と見逃しを両方ゼロにする閾値は存在しません。

閾値を0.60に上げた画面。過検知0件・見逃し62件と表示されている
閾値を0.60に上げた状態。NG判定領域が縮み、良品は止めなくなる代わりに欠陥が大量にすり抜ける。


「見逃しゼロ」には請求書がついてくる

品質要求としてよく挙がるのが「見逃しはゼロにしたい」です。アプリには「見逃しゼロ優先」という閾値決定モードがあるので、実際に選んでみます。

  • 見逃し 0 件、Recall(検出率)100% ——要求は満たせます
  • ただし過検知は 53 件 に増加
  • Precision(適合率)は 65% に低下

※同じく疑似データにおける値です。

Precision 65%とは、「NG」と判定したもののうち本当に欠陥だったものが65%、という意味です。残りは良品を止めた分であり、その一つひとつに再検査の工数が発生します。

見逃しゼロという選択肢は、確かに存在します。存在しないのは代償なしの見逃しゼロのほうです。タダの安全はありません。

閾値決定モードで見逃しゼロ優先を選んだ画面。Recall 100%、過検知53件、Precision 65%
タブ③で「見逃しゼロ優先」を選択した状態。曲線上の赤点(採用中の閾値)が移動し、Recallは100%になる一方でPrecisionが下がる。


だから閾値は、品質方針で決める

ここまでを整理すると、閾値は数学的な正解ではなく、運用条件だと分かります。理由は、2つの誤りの損失が対称ではないからです。

  • 見逃し … 欠陥品が後工程や市場へ流出する。回収・信用の損失につながる
  • 過検知 … 良品を止め、再検査工数と歩留まり低下を招く。検査ラインの処理能力も圧迫する

どちらをより避けたいかは、製品の用途、後工程の構成、生産量、そして品質方針によって変わります。同じ検出器でも、置くべき閾値は現場ごとに違います。

アプリでは、閾値の決め方を5つのモードから選んで結果を比較できます。

決め方 考え方
手動設定 スライダーの値をそのまま使う
F1最大 RecallとPrecisionのバランスが最も良い点
見逃しゼロ優先 欠陥を1つも見逃さないことを最優先
過検知率の上限 「良品を止めるのは○%まで」と上限を決め、その中で最善に
現場コスト最小化 見逃し1件と過検知1件の損失の重みを入力し、損失が最小の点を求める

特に注目していただきたいのが「現場コスト最小化」です。見逃し1件と過検知1件の重みを入力する操作は、裏を返せば自社が2つの誤りをどう天秤にかけているかを数字で表明することにほかなりません。この数字を社内で決められることが、AI検査導入の実質的な準備になります。


成績表を1つの数字で見るときの注意点

タブ②では、同じ閾値の結果を混同行列(TN/FP/FN/TP の4区分)と5つの評価指標——Recall(検出率)、Specificity、Precision(適合率)、Accuracy、F1 Score——で表示します。閾値を動かしたときに正面から入れ替わるのが FP(過検知)FN(見逃し) です。TN・TPと合わせた4区分を押さえておくと、評価指標がすべてこの4つの組み合わせで定義されていることが見えてきます。

混同行列のTN・FP・FN・TPを日本語説明つきで表示した画面
タブ②の混同行列。4区分それぞれに日本語の説明が入っている。

よく使われるF1 Scoreは、RecallとPrecisionの調和平均です。両方が高いときだけ高くなり、片方が低いと平均ではなく低いほうに強く引っ張られます。たとえばPrecision 1.0・Recall 0.1のとき、通常の平均は0.55ですが、F1は約0.18にしかなりません。だから「見逃しゼロだが過検知だらけ」も「過検知ゼロだが見逃しだらけ」もF1は伸びません。ただし、F1が最大の点が自社にとって最良とは限らない——というのが前節の話です。

なお本アプリでは、分母が0で計算できない指標を「0」ではなく「」と表示します。「成績が0」なのか「計算不能」なのかを混同しないための設計です。


本アプリの位置づけ:知識を身につけるための教材

過検知と見逃しのトレードオフ、PrecisionとRecallの意味、F1が調和平均であること、ROC曲線・PR曲線の読み方——これらはAI外観検査を量産に乗せるなら理解しておくべき前提知識であり、統計と機械学習の知識そのものです。本アプリは、その知識を不要にする道具ではなく、身につけるための教材として作りました。

閾値と評価指標が扱いにくいのは、値の変化に応じて結果が連動する動的な概念を、静止した文章と数式で説明しているからです。これらは読むより、値を動かして結果の変化を見るほうが早く身につきます。操作は簡単ですが、扱っている内容は実務そのものです。アプリ内の「📖 使い方」タブには操作マニュアルを埋め込んであり、別ウィンドウでも開けるため、デュアルモニタで参照しながら操作できます。

AI外観検査の評価指標をこの形で学べる日本語の教材は多くありません。社内教育や技術者の学習に使える共通の教材として役立てていただくため、無料・登録不要で公開しています。

今後の予定

今後は以下の機能を追加する予定です。

  • 少数サンプルの問題 — 良品10枚と100枚で、評価値と閾値がどれだけブレるかを反復抽出と箱ひげ図で可視化
  • 学習・閾値調整・独立評価のフェーズ分離 — 同じ画像を使い回してはいけない理由を可視化
  • 量産シミュレーション — 生産数と欠陥率から、1日あたりの過検知数・再検査工数・処理能力超過を試算
  • CSVデータ読込 — 手元の異常スコアCSVでタブ①〜③を動かせるようにする

まとめ

AIは異常スコアという点数を出しているだけで、OK/NGの線を引いているのは閾値、つまり人間が決めた運用条件です。閾値を動かせば過検知と見逃しはシーソーのように入れ替わり、両方をゼロにする点は存在しません。

だから閾値の決定は、技術的な最適化である以上に、どちらの失敗をより避けたいかという品質方針の意思決定です。その判断を同じ用語・同じ指標で議論するための共通の土台として、本アプリをお使いいただければ幸いです。


所要5分。ブラウザで開いて、スライダーを左右に動かすだけです。
▶ AI異常検知:閾値と評価指標
https://anomalydetectiondemo.streamlit.app/

無料・インストール不要・ログイン不要・アカウント登録不要。PCでもタブレットでも動作します。


ご注意

  • 本アプリは無料の教育用シミュレーターであり、当社の製品・サービスとは異なります。
  • 表示されるデータは、すべてアプリ内で生成した疑似データです。実案件のデータ・顧客データは一切含みません。 本記事に記載した件数・比率は、いずれもデモの初期設定における疑似データ上の値であり、特定の製品や検査装置の性能を示すものではありません。
  • ロードマップに記載した機能は追加予定のものであり、公開時期は未定です。