2. 本⽇紹介する論⽂の概要
n ⼀本⽬: 対照推定使って分布外検知したらツヨ=スンギな件
n CSI: Novelty Detection via Contrastive Learning on Distributionally Shifted Instances (arxiv)
n よくある分布外検知の問題設定:
n 分布内データ: 様々な種類の画像
n 分布外データ: ⾒たことのない種類の画像
n → CIFAR10でAUROC 0.95!?
n ⼆本⽬: pre-trainモデルの中間表現つかって分布外検知したらツヨ=スンギな件
n Modeling the Distribution of Normal Data in Pre-Trained Deep Features for Anomaly Detection (arxiv)
n あまりみない分布外検知の問題設定:
n 分布内データ: ある特定のクラスの画像
n 分布外データ: 分布内データと同じクラスの画像だが,微⼩な差異があるもの
n → MVtecでAUROC 0.95!?
8. 提案⼿法: スコア関数
n スコア関数: OODかそうでないかの基準
n (1): 訓練サンプルにどれだけ近いか
n 直感的だが,メモリコストが問題になるため,サブセットを使う
n (2): 表現のノルム
n 実験的に差がでるため使っていると考えられる(詳しくは論⽂の付録)
n 最終的なスコア関数 = (1) x (2)
n 上記を回転を⾏ってアンサンブル + 回転をどれだけあてられるか
n さらにオーグメンテーションでアンサンブル
ここまで頑張ったらまあ精度はでるよねという感じ😅
11. 提案⼿法: おおまかな流れ
n 1. 訓練済みのモデルを⽤意する
n イメージネットで訓練したEfficientNetなど
n 2. 各正常データに関して,中間層の空間成分
を平均プーリングでつぶしてベクトルにする
n テンソルの形になってるので,チャネル⽅向
のみ残す
n 3. 上記ベクトルの平均と分散を推定する
n ここが正常データの分布の学習に相当する
n 4. 推論時にマハラノビス距離を層ごとに計算
し,全て⾜し合わせる
n これを異常スコアとする
n 5. 上記スコアが⼤きいものを異常と判定する