1. 程式人生 > 其它 >Detecting Overfitting via Adversarial Examples

Detecting Overfitting via Adversarial Examples


發表時間:2019(NeurIPS 2019)
文章要點:這篇文章的出發點是說,大家都在資料集上刷點,雖然都分了訓練集和測試集,但是刷到最後的結果肯定是在測試集上效果越來越好了,但是會不會出現在測試集上overfitting的問題?文章通過從測試集生成對抗樣本並用importance weighting來修正樣本分佈的方式來檢測有沒有在測試集上出現overfitting的情況,如果說對抗樣本的錯誤率和測試集的錯誤率差異很大,就可以認為這個模型在測試集上overfitting了。具體做法就是,先根據測試集生成一些對抗樣本,生成的樣本需要滿足三個條件


G1是說生成的樣本的標籤和原樣本要一樣。G2是說如果本來這個樣本就被模型分錯了,就不用拿來生成對抗樣本了。G3是說生成的樣本和原來的樣本的概率密度要一樣。
滿足這幾個條件之後,我們就有了一個根據測試集生成的對抗樣本集。令測試集表示為

對抗樣本集表示為

定義分類誤差為

我們有

那麼模型f在測試集和對抗樣本集上的經驗誤差都應該是無偏的,也就是說對


如果f和樣本集合是獨立的,對上面這兩個式子,我們有


那麼我們就只需要比較這兩個集合的預測誤差是不是差不多就行了

基於此,作者最後就用假設檢驗confidence intervals,Pairwise test以及訓練多個模型來做檢驗(N-model test)的方式來檢測這兩集合上的預測誤差是不是差不多的。最後實驗用VGG和resnet在ImageNet上面做實驗,結果表明這兩個網路結構在ImageNet上沒有overfitting。
總結:

很有意思的工作,不過生成對抗樣本應該也不是一個容易的事情吧,還需要控制這些樣本到底加了多少擾動才能畫出文章裡的實驗結果圖。
疑問:證明啥的也沒仔細看,就看了個大概意思。圖裡這裡不知道咋來的。

這一步等號也不懂