TL;DRPallasは、AI…
TL;DR
VLMで動画異常検知をする際、生成された回答(例:「はい」「5点」)をそのままスコアにするより、回答候補全体の確率分布から期待値を計算する方が、AUROC/APで一貫して5〜13ポイント高い性能を示しました。生成回答は同点が多くなり順位がつぶれる「ランク圧縮」が起きるためです。確率読み出しは追加推論コストなしで実装でき、実務上の即効性があります。
解説
ねえ智也くん、この論文のタイトル、『VLMの異常検知スコアは「答え」より「確率」で読むべき』って面白いね。どういうこと?
ああ、VLMで動画の異常検知をするとき、普通はモデルに「異常か?」って聞いて、その回答をそのままスコアにするんだ。でも、その回答は「はい」とか「5点」みたいな離散的な値だから、同点が多くなって順位がつぶれちゃうんだよ。
順位がつぶれる?それってどういうこと?
例えば、異常度を1〜5で答えるとして、多くの動画が「3」って答えたら、全部同じスコアになっちゃうでしょ。それだと異常な動画と正常な動画をうまく区別できない。これがランク圧縮問題だよ。
なるほど!じゃあ、どうやって解決したの?
生成された回答だけを見るんじゃなくて、回答候補全体の確率分布から期待値を計算するんだ。つまり、モデルが「3」を出す確率が0.6で「4」が0.4なら、スコアは3.4みたいに連続値になる。これで同点が減って、順位がちゃんとつくようになるんだ。
へえ、確率を使うだけでそんなに変わるの?
うん、実験ではAUROCとAPが一貫して5〜13ポイントも向上したんだ。しかも追加の推論コストはほぼゼロで、実装も簡単。実務で即効性があるよ。
すごい!でも、なんで確率分布の方がいいの?生成された回答はモデルが一番確率が高いものを選んでるんじゃないの?
一番確率が高いものを選ぶと、その確率が例えば0.4でも、他の候補の情報が全部捨てられちゃうんだ。期待値を使うと、他の候補の確率も考慮するから、より細かいスコアが得られるんだよ。
なるほどね。でも、この方法には限界とかあるの?
うーん、確率分布がうまく校正されていないと、期待値もあまり意味がないかもしれない。あと、VLMの出力トークンが限られている場合、候補の数が少ないと効果が薄いかも。
でも、全体的にはすごく実用的だね。私も試してみたいな。
試してみるといいよ。コードも公開されてるし、すぐに使えるはず。
じゃあ、私も「確率」で読むようにしてみる!…って、これじゃあまるで占い師みたいだね。
占い師じゃなくて、データサイエンティストだよ。