PGD and Adversarial Training
Projected Gradient Descent (PGD) は、adversarial robustness の標準的な white-box attack です。Madry らの研究以降、 adversarial training では、内側の maximization を PGD で近似する min-max optimization が基本形になりました。
自作概念図。Adversarial training は、内側で adversarial example を作り、外側でその adversarial example に対する loss を下げます。
PGD attack
PGD は、perturbation set の中で loss を最大化するために、gradient ascent と projection を繰り返します。
制約では、projection は各 pixel の perturbation を に clip します。
さらに、画像範囲 も満たすように clip します。
Random restarts
PGD は非凸 optimization なので、初期値に依存します。そのため、random restarts を使います。
複数の初期値から PGD を実行し、最も loss が高い adversarial example を採用します。Robustness 評価では、iteration 数と restart 数を明示する必要があります。
PGD as universal first-order adversary
Madry らは、PGD を「first-order adversary」に対する強い攻撃として位置づけました。つまり、gradient 情報を使う攻撃者に対して、PGD で見つかる worst-case example に耐えるように訓練することが、実用的な robust optimization の近似になります。
Adversarial training
Adversarial training は、clean example ではなく adversarial example で model を訓練します。
実装では、mini-batch ごとに PGD で を作り、その adversarial input で gradient descent します。
TRADES
TRADES は、natural accuracy と robust accuracy の trade-off を明示的に扱う training objective です。Clean prediction と adversarial prediction の KL divergence を正則化として使います。
は robustness と clean accuracy の trade-off を制御します。
Robust overfitting
Adversarial training では、training robust accuracy は上がるのに、test robust accuracy が途中から下がる robust overfitting が起こることがあります。Early stopping、data augmentation、weight averaging、model capacity の調整が重要です。
実務上の注意
| 注意点 | 内容 |
|---|---|
| Attack strength | 弱い PGD で training / evaluation すると robustness を過大評価します。 |
| Clean accuracy trade-off | Robust training は clean accuracy を下げる場合があります。 |
| Computational cost | PGD step 数の分だけ training cost が増えます。 |
| Norm specificity | で robust でも や spatial perturbation に強いとは限りません。 |
| Adaptive evaluation | 防御を含めた attack で評価する必要があります。 |
数式で見る PGD と adversarial training
PGD attack は、loss を増やす方向へ perturbation を反復更新し、許された集合に projection します。
ここで、 は feasible set への projection、 は step size です。この式の気持ちは、「画像を少しずつ、model が最も間違えやすくなる方向へ動かし、許容範囲から出たら戻す」というものです。
Adversarial training は、PGD で作った adversarial example に対して学習します。
この式は robust risk の直接的な最適化です。Clean accuracy と robust accuracy の trade-off、attack strength、label leaking、gradient masking の有無を確認する必要があります。
関連ページ
主なソース
- Towards Deep Learning Models Resistant to Adversarial Attacks: https://arxiv.org/abs/1706.06083
- Theoretically Principled Trade-off between Robustness and Accuracy: https://arxiv.org/abs/1901.08573
- Adversarial Robustness May Be at Odds with Accuracy: https://arxiv.org/abs/1805.12152
- Rice et al., Overfitting in adversarially robust deep learning: https://arxiv.org/abs/2002.11569