A Simple Unified Framework for Detecting Out-of-Distribution Samples and Adversarial Attacks
阿新 • • 發佈:2021-10-07
發表時間:2018(NeurIPS 2018)
文章要點:這篇文章提出了一個對分類任務檢測異常點的方法。文章首先說異常點可以有兩類,一類是OOD(out-of-distribution),一類是對抗樣本(adversarial samples)。很多方式只能檢測一種,不能兩種一起。作者這種方法對這兩類異常點都適用,並且更加穩健,取得了SOTA的效果。具體的,作者通過神經網路最後一層隱藏層構造特徵向量,然後用高斯判別分析(Gaussian discriminant analysis)建立各個類別的均值和協方差
有了這個,就相當於有了一個分類器,並且對每個類的聚類中心和協方差都有了一定估計。
然後基於馬氏距離(Mahalanobis distance)計算一個得分
判別一個點是不是異常點就是先找這個點最近的那個分類,然後根據上式計算得分,然後根據得分閾值判斷是不是異常點。閾值具體咋設的,文章沒說。
此外,還可以把ensemble加上,就是說不僅僅用神經網路的最後一層,中間層也可以用來做高斯判別,然後計算得分,然後所有得分加權。
最後作者還說了,可以用在class-incremental learning問題上面,就是預訓練的模型只有一部分分類任務,後面新來了新的類,可以直接用這個網路提取特徵向量,用高斯判別生成這個新類的均值和協方差,和之前的類的均值和協方差放到一起,接下來檢測異常值就和之前一樣了。
總結:
疑問:為啥對樣本做預處理的時候要加個噪聲,會不會有作弊的嫌疑?整個程式碼隨機種子都只用了一個,如果實驗結果是基於這個隨機種子調參得出來的,那改個種子大概率不能復現了。另外,從程式碼上看,閾值是訓邏輯迴歸做的,訓的時候還用了OOD的樣本作為負樣本,這感覺有點明著作弊了啊。