ブログ一覧

検出器の精度ではなく誤検知時の体験で仕様を書く

更新: Web開発者向け

リアルタイム AI アプリで、映像からの動き・イベント検出を作っていました。フレーム差分ベースの検出器は誤検知と取りこぼしだらけで、閾値を調整する精度チューニングに終わりが見えません。取りこぼしを減らせば誤検知が増え、誤検知を減らせば無反応になります。

チューニングをやめました。精度を上げる代わりに、検出結果の「使い方」を信頼度で二層に分ける設計にしたら、低信頼側の検出器は雑な実装のまま出荷できました。

設計: 検出を二層に分ける

高信頼シグナル(明示的なユーザー操作、確度の高い入力)には、断定的な反応と、記録への書き込みを許します。

低信頼シグナル(フレーム差分・輝度変化のような雑な CV)には、次の制約を課します。

  • 出力は疑問形の先走り反応のみ。「お、始まったか!?」のように断定しない
  • 間違っていたら自己訂正するか、ユーザーの訂正を無条件で受け入れる
  • 記録には書かない。数値・履歴・成績のような後に残るものは、高信頼側だけが更新する
  • 頻度予算を設ける。先走り反応はセッション N 回まで。同じ先走りが何度も繰り返されると飽きられて、演出として成立しなくなるからです

この制約の下では、低信頼検出器の誤検知は「間違い」ではなく「早とちり」になります。AI のキャラクターが早とちりして、違っていたら引っ込む。誤検知が体験の欠陥ではなく、会話のきっかけに変わります。

実証: 約 30 行のフレーム差分で 6 サイクル

映像を見て実況する音声 AI に、この二層設計でシーン遷移の検出を組み込みました。低信頼側の検出器は 64x48 のグレースケールに縮小した画像のフレーム差分で、実装は約 30 行、閾値は勘で決めた値のままです。

この検出器で、シーン遷移の進行がハンズフリーで 6 サイクル回りました。途中の誤検知は疑問形の先走りとして体験に吸収され、記録の正確性は確定イベント(高信頼側)だけが担保します。recall も precision も測っていません。測らなくても出荷できる設計にしたからです。

機構: 仕様の書き方が精度要求を作っていた

検出器の要求仕様を precision / recall で書くと、その数値に到達するまでチューニングが終わりません。しかも「何 % なら十分か」は体験から逆算しにくく、根拠の薄い目標値になりがちです。

仕様を「誤検知したとき、ユーザーは何を体験するか」で書き換えると、精度要求そのものが消えます。誤検知の体験コストが十分に低い — 疑問形で流れて、訂正が効いて、記録が汚れない — なら、検出器は雑でかまいません。逆に、体験コストを下げられないシグナル(記録への書き込みなど)には、検出器ではなく明示的な操作を割り当てます。

LLM のキャラクターと組み合わせる場合は、誤りの回収の仕方までキャラクター設計に含めるのが要点です。訂正されたときの受け方(「そうか、まだだったか」)を設計しておくと、誤検知がユーザーの発話を誘発するきっかけにすらなります。黙って正確な検出器より、よく喋る早とちりの方が、対話の総量は増えます。

どこで止まるか

  • この設計が使えるのは、誤検知を演出として吸収できるプロダクトに限られます。記録・課金・安全に直結する検出には、疑問形の先走りという逃げ場がありません。そこは従来どおり精度が要ります
  • 低信頼シグナルは記録に書けないままです。それは欠陥ではなく仕様ですが、「検出したのに何も残らない」ことを設計として受け入れる必要があります
  • 頻度予算の N は体験を見て勘で決めた値で、根拠のある算出方法は持っていません

この構成で気をつけること

  • 検出器の要求仕様を精度(recall / precision)ではなく、誤検知時の体験で書く
  • 低信頼シグナルの出力は疑問形に限定し、記録には書かせない
  • 訂正の受け方までキャラクター設計に含める
  • 先走り反応には頻度予算を付ける。無制限だと演出が摩耗する

「精度が足りないから出荷できない」と思っていた検出器は、精度が問題だったのではなく、その出力に断定と記録を許していた仕様が問題でした。仕様の側を直したら、勘で閾値を決めた約 30 行の検出器で足りました。

関連

この記事をシェア