1. 程式人生 > 其它 >Double Descent in Adversarial Training: An Implicit Label Noise Perspective

Double Descent in Adversarial Training: An Implicit Label Noise Perspective

目錄

Dong C., Liu L. and Shang J. Double descent in adversarial training: an implicit label noise perspective. In International Conference on Learning Representations (ICLR), 2022.

對抗訓練非常容易過擬合, 但是作者發現, 對抗訓練和標準訓練一樣, 當訓練次數足夠多的時候, 也會出現 Double Descent 的現象, 即測試誤差先下降再上升然後再下降. 作者認為, 即便普通樣本 \(x\)

質量夠高, 其條件概率可以近似認為

\[p(Y=y|x) = \mathbb{1}(y = y^*), \]

其中\(y^*:= \mathop{\arg \max} \limits_{j} p(Y=j|x)\)為真實的標籤, 對抗樣本 \(x_{\delta} = x + \delta\) 的條件概率也強硬地認為是

\[p(Y=y_{\delta}|x_{\delta}) = \mathbb{1}(y_{\delta} = y^*) \]

是不合適的. 這或許就是導致容易出現過擬合現象的原因.

主要內容

假設

  1. 假設訓練集標籤沒有噪聲, 即樣本\(x\)的標籤\(y = y^*\)
    \(p(y|x) = p(y^*|x)\).
  2. 訓練集\(\mathcal{X}\)中的樣本\(x\)的質量很高, 即可以認為\(P(Y=y^*|x) \approx 1\);
  3. 對抗樣本\(x_{\delta} = x + \delta\), 其中
\[\delta = \mathop{\arg \max} \limits_{\|\delta\| \le \epsilon} \ell (f(x + \delta;\theta), y). \]

\(x_{\delta}\)的標籤\(y_{\delta}* := \mathop{\arg \max}_{j} p(Y_{\delta} = j | x_{\delta}) = y^*\)

, 即擾動\(\delta\)應該不改變預測的標籤. 這個是合理的, 因為我們一般採用\(8 / 255\), 這雖然會導致圖片語義模糊, 但不至於改變其語義.

擾動前後條件概率的距離

我們用 total variation 來定義兩個分佈\(p, q\)的距離:

\[\|p - q\|_{TV} = \mathrm{sup}_{A} |p(A) - q(A)|, \]

對於離散分佈而言

\[\|p - q\|_{TV} = \frac{1}{2} \sum_{j}| p_j - q _j| \]

我們假設 \(p(Y_{\delta}=y_{\delta}^*|x_{\delta})\)是已知\(x_{\delta}\)的情況下的真實分佈, 而\(p(Y=y^*|x_{\delta}) = p(Y=y^*|x)\)是我們在對抗訓練過程中所給予的一個先驗分佈 (既然我們在訓練中利用交叉熵令\(f_{\theta}(x_{\delta}\)的概率值和此概率接近)). 現在我們討論這兩個\(Y_{\delta}, Y\)的差距.

定理3.1:

\[p(Y \not= Y_{\delta} | x_{\delta}) \ge \|p(Y_{\delta}|x_{\delta}) - p(Y|x)\|_{TV}, \]

即二者不等的概率是至少大於二者分佈的TV的. 所以由此導致的分佈不匹配的問題是需要引起重視的.

proof:

\[\begin{array}{ll} |p(Y_{\delta} \in J|x_{\delta}) - p(Y \in J|x_{\delta})| &=|p(Y_{\delta} \in J, Y = Y_{\delta}|x_{\delta}) + p(Y_{\delta} \in J, Y \not= Y_{\delta}|x_{\delta}) \\ &\quad- p(Y \in J, Y = Y_{\delta}|x_{\delta}) - p(Y \in J, Y \not= Y_{\delta}|x_{\delta})| \\ &\le|p(Y_{\delta} \in J, Y = Y_{\delta}|x_{\delta}) - p(Y \in J, Y = Y_{\delta}|x_{\delta})| \\ &\quad+ |p(Y_{\delta} \in J, Y \not= Y_{\delta}|x_{\delta}) - p(Y \in J, Y \not= Y_{\delta}|x_{\delta})| \\ &\le 0 + p(Y\not= Y_{\delta} | x_{\delta}). \end{array} \]

對於任意的\(J\)成立, 證畢.

label smoothing 用於減輕過擬合

假設我們手頭有訓練好的網路:

\[g(x;T;\theta) := \frac{\exp(z_j / T)}{\sum_j \exp(z_j / T)}, \: z = g(x). \]

我們希望利用\(g\)提供的條件概率分佈和原先的條件概率分佈做一個調和:

\[p_{\theta;T, \lambda}(Y_{\delta}=y_{\delta}|x_{\delta}) := \lambda \cdot g(x_{\delta}; \theta, T) + (1 - \lambda) \cdot p(Y = y^*|x). \]

定理4.1:
如果\(\mathop{\arg \max}_j g(x_{\delta}; \theta)_j = y_{\delta}^*\), 則存在\(T\)

\[\|g(x_{\delta}; \theta, T) - p(Y_{\delta}|\delta)\|_{TV} \le \|p(Y|x) - p(Y_{\delta}|x_{\delta})\|_{TV}. \]

這說明, 替代分佈加上 label smoothing 比單純的標籤有效 (注意, 需要\(g\)關於\(x_{\delta}\)是正確判斷的).

定理4.2:
如果\(\mathop{\arg \max}_j g(x_{\delta};T; \theta)_j \not= y_{\delta}^*\), 則存在\(\lambda\)使得

\[\|p_{\theta;T, \lambda}(Y_{\delta}|x_{\delta}) - p(Y_{\delta}|x_{\delta})\|_{TV} \le \mathrm{min} (\|g(x_{\delta}; T;\theta) - p(Y_{\delta}|x_{\delta})\|_{TV}, \|p(Y|x) - p(Y_{\delta}|x_{\delta})\|_{TV}). \]

注: 文中只給出了前者, 我發現通過同樣的構造:

\[p_{\theta;T, \lambda^*}(Y_{\delta}|x_{\delta}) = p(Y_{\delta}|x_{\delta}), \]

同時滿足

\[\lambda^* (1 - g(x_{\delta};T;\theta)_{j^*}) = 1 - p(Y_{\delta} = j^* | x_{\delta}). \]

可以類似證明出後者.

這個定理表明, 即便是在\(g\)誤判的情況下, 我們也能找到一個合適的\(\lambda\)使得結果比單純用標籤效果好.

實際的操作

根據上面的結果, 一個合理的做法是為每一個樣本定製一個\(T, \lambda\), 不過文中發現, 大部分的\(T, \lambda\)都比較集中. 所以作者選擇同一個. 其由下式優化的得到:

\[T, \lambda = \mathop{\arg \min}_{T, \lambda} -\mathbb{E}_{(x_{\delta}, y_{\delta}) \sim \mathcal{D}_{\delta}^{\mathrm{val}}} \log p_{\theta; T, \lambda} (Y_{\delta} = y_{\delta}|x_{\delta}). \]

在實際中, 作者採用的是如下方式優化的:

\[T, \lambda = \mathop{\arg \min}_{T, \lambda} -\mathbb{E}_{(x_{\delta}, y_{\delta}) \sim \mathcal{D}_{\mathrm{val}}} \: \ell_{ce} (\lambda \cdot g(x_{\delta}; T; \theta) + (1 - \lambda) \cdot g(x_{\delta}; \theta^s, T), y_{\delta}). \]

注意: \(\mathcal{D}_{\sigma}^{val}\)\(\mathcal{D}_{val}\), 我想應該不是筆誤. 作者用後者, 給出的理由是標籤不知道?我的感覺是因為我們不確定的是 \(\mathcal{D}_{\sigma}^{val}\).
設想, 雖然我們從測試集\(\mathcal{D}_{val}\)中取樣\(x\)然後再加上擾動就可以得到\(x_{\delta}\), 但是倘若我們簡單地量\(y_{\delta} = y\), 那此時我們所預設的條件分佈為

\[p(Y_{\delta} | x_{\delta}) = p(Y|x), \]

此時最小化該損失結果得到的是

\[p_{\theta; T, \lambda} (Y_{\delta} = y_{\delta}|x_{\delta}) \rightarrow p(Y|x), \]

那就沒有意義了.
我們需要保證條件分佈

\[p(Y_{\delta}|x_{\delta}) \]

為真實的分佈, 但我們又不知道該分佈. 所以我們可以用\(g(x_{\delta}; \theta^s, T)\)來替代 (這個也很離譜的, 因為比較存在錯判的情況啊) ? 但是作者顯然不是從這個角度出發的.

最後, 利用下列損失訓練:

\[\mathop{\arg \min}\limits_{\theta} \mathbb{E}_{\mathcal{D}_{\delta}} \: \ell (f(x_{\delta}; \theta), p_{\theta^{Trad}; T, \lambda} (y_{\delta|x_{\delta}})). \]