Conference : ICML 2022
논문 링크 : https://arxiv.org/pdf/2205.07460.pdf
Abstract
Adversarial purification은 생성 모델을 사용하여 adversarial purturbation을 제거하는 defense 방법이다.
이러한 방법은 attack 형태와 classification model의 형태를 가정하지 않으므로, 보이지 않는 위협으로부터 기존의 classifier를 robust 하게 만들 수 있다.
그러나 현재 이러한 방법의 성능은 adversarial training 방법에 비해 뒤떨어진다.
이 논문에서는 adversarial purification을 위해 diffusion model을 사용하는 DiffPure 모델을 제안한다.
adversarial example이 주어지면 소량의 노이즈를 사용하여 forward diffusion을 거치고, reverse process를 통해 clean image로 복구한다.
강력한 adaptive attack에 대해 효율적이고 확장 가능한 방식으로 평가하기 위해 reverse generative process의 full gradient를 계산하는 adjoint method를 제안한다.
CIFAR10, ImageNet, CelebA-HQ dataset과 ResNet, WideResNet, ViT model에 대해서 실험을 진행하였고, 현재의 adversarial training과 adversarial purification method를 뛰어넘는 SOTA를 달성했다.
Abstract를 읽고 난 후 궁금한 점
- Q1 : attack받은 이미지가 입력으로 들어오면 purification을 거쳐서 adversarial perturbation을 제거하는데, 그럼 모든 이미지(attack이든 아니든)에 대해서 이 process를 시행하는 건가? 아니면 clean image와 adversarial perturbed image를 구분하는 과정이 포함되어 있나?
- Q2 : training할 때는 clean image에 attack을 가한 후 이를 diffusion model로 purification 하는 방식으로 반복 학습하는 것인가?
- Q3 : Adversarial purification은 Diffusion model이기에 가능한 것인가? 아니면 다른 Generative model로도 가능한 것인가?
이 질문들에 대한 나의 답은 본 포스팅 마지막에 기재해놓았다.
Introduction
신경망은 adversarial attack에 취약하다.
따라서 adversarial defense에 관한 다양한 연구들이 진행되어 왔으며, adversarial training이 효과적이어서 standard defense form이 되었다.
하지만 대부분의 adversarial training method는 특정 attack에 대해서만 방어할 수 있다.
최근 adversarial training(AT) 연구들에서 unseen threats에 대한 defense 방법을 고안하고 있지만 여전히 성능이 저하되는 문제가 있다. 또한 adversarial training은 computational complexity가 높다.
이와 대조적으로, adversarial purification(AP)은 adversarially perturbed image를 classification 하기 이전에 정화하기 위해 생성 모델에 의존한다.
Adversarial purification 방법은 unseen threats (이전에 보지 못한 적대적 공격)에도 방어할 수 있다. 이것은 매우 중요한 장점으로, 실제 환경에서는 공격자가 항상 새로운 방법으로 공격을 시도할 수 있기 때문이다.
Adversarial purification을 사용하면 plug-n-play manner로 모델을 방어할 수 있다. 이는 특별한 재학습 과정 없이도 기존의 classifier 모델을 그대로 사용하면서 적대적 공격을 방어할 수 있음을 의미한다.
plug-n-play manner : 보통 컴퓨터 주변기기를 꽂아서(plug) 바로 사용한다(play)라는 의미로 사용된다. 본 논문에서는 특정한 attack에 대해 training 하는 과정 없이 곧바로 adversarial perturbation을 purification 할 수 있다는 의미로 해석된다.
이렇게 할 수 있는 이유는 생성 모델이 threat model과 classifier 사이에서 독립적으로 학습되기 때문이다.
이러한 장점에도 불구하고 AP는 AT보다 성능이 떨어지며, 특히 white-box attack에서의 adaptive attack에 대해 성능이 낮다.
이는 일반적으로 현재 생성 모델의 단점, 즉 GAN의 mode collapse, EBM의 낮은 품질, 적절한 무작위성 부족 등이 원인으로 작용한다.
최근 diffusion model들이 강력한 생성 모델로써 이미지 생성에서 좋은 샘플 품질을 보여준다.
저자들의 main contribution은 다음과 같다.
- 사전 학습된 diffusion model을 활용한 최초의 adversarial purification 방법인 DiffPure를 제안한다.
- label의 의미를 파괴하지 않고 adversarial purturbation을 제거하기 위해 forward process에서 추가되는 노이즈의 양에 대한 이론적 분석을 제공한다.
- 강력한 adaptive attack에 대한 evaluation에서 reverse generative process의 full gradient를 효율적으로 계산하기 위해 adjoint method를 사용할 것을 제안한다.
- 다양한 adaptive attack 벤치마크에서 SOTA를 달성했다.
저자들이 제안한 방법은 두 단계로 구성된다. pre-trained diffusion model이 주어지면,
- small diffusion timestep으로 forward process를 따라 adversarial example에 노이즈를 추가한다.
- reverse stochastic differential equation(SDE)를 풀어서 diffused adversarial example로부터 clean image를 복구한다.
이 method에서 중요한 design parameter는 diffusion timestep이다. 이는 forward process 중에 추가되는 노이즈의 양을 나타내기 때문이다. 저자들의 이론적 분석에 따르면 adversarial purturbation을 제거할 만큼 노이즈가 충분히 커야 하지만, label semantic를 파괴할 정도로 크면 안 된다. 또한 강력한 adaptive attack은 SDE solver를 통한 gradient backpropagation을 필요로 하는데, 이 방법은 naive 하게 구현할 경우 메모리 이슈가 발생한다.
따라서 저자들은 adjoint method를 사용하여 일정한 메모리 비용으로 reverse SDE의 full gradient를 효율적으로 계산하는 방법을 제안한다. 최신 adversarial training 방법론과 adversarial purification을 활용한 모델을 비교하였는데, 제안한 method가 SOTA를 달성했다. 또한 unseen attack에 대해 adversarial training method와 비교해서 +36% 정도의 robust accuracy 상승을 보여준다.
Method
Diffusion purification
forward SDE의 역할은 점진적으로 noise를 추가하면서 data의 local structure를 지우는 것이다.
small local structure의 한 형태인 adversarial example 또한 forward process를 거치면서 점차 smoothing 될 것이라 가정한다.
Theorm 3.1을 통해 clean data distribution p(x)와 adversarially perturbed data distribution $q(x)$ 가 forward process를 거치면서 점차적으로 가까워진다는 것을 의미한다.
즉, noise가 추가되면서 adversarial perturbation이 “washed out”되는 것이다.
위의 observation에서 영감을 받아, 저자들은 diffusion model을 활용한 two-step adversarial purification method를 제안한다.
- adversarial example $x_a$ 가 주어지면, VP-SDE를 통해 diffused 된다.
2. SDE의 최종 솔루션 $\widehat{x}(0)$ 를 얻기 위해 diffused adversarial sample을 이용하여 reverse-time SDE를 푼다.
$\widehat{x}(0)$ 가 closed-form solution을 갖고 있지 않기 때문에, sdeint라는 SDE solver를 사용한다.
이 solver는 일반적으로 Euler-Maruyama 방법을 사용하여 SDE를 수치적으로 해결한다.
sdeint는 확률적 편미분 방정식(SDE, Stochastic Differential Equation)을 수치적으로 해결하기 위한 Python 패키지 중 하나이며, 주로 미분 방정식의 수치 해법 중 하나인 Euler-Maruyama 메서드를 사용하여 SDE를 푼다. 이를 통해 확률적 프로세스를 모델링하고 시뮬레이션할 수 있다.
Choosing the diffusion timestep $t^{*}$
Theorm 3.1에 의해, $t^{*}$ 는 local adversarial perturbation을 제거할 만큼 충분히 커야 한다.
하지만, t는 무작위로 크게 설정할 수 없다. 왜냐하면 t가 계속해서 증가하면 global label semantics도 diffusion process에 의해 제거될 수 있기 때문이다.
형식적으로, 아래 theorm은 diffusion timestep $t^{*}$ 가 clean image $x_0$ 와 우리 방법을 통해 얻은 정제된 이미지 $\widehat{x}(0)$ 간 차이에 어떤 영향을 미치는지를 알아본다.
$\gamma (t^{*})$ 가 단조 증가하고, 0보다 크거나 같으므로 마지막 2개의 term은 증가한다.
따라서, 좌변이 작아지려면 $t^{*}$ 는 충분히 작아야 한다.
local perturbation을 purifying(with a larger $t^{*}$ )하는 것과 global structure를 보존(with a smaller $t^{*}$ )하는 것의 trade-off가 존재하기 때문에, 높은 robust accuracy를 얻기 위한 diffusion time step $t^{*}$ 가 존재한다.
adversarial perturbation은 작은 $t^{*}$ 으로 제거될 만큼 작기 때문에, 대부분의 adversarial robustness task에서 상대적으로 작게 유지된다.
Adaptive attack to diffusion purification
강한 adaptive attack은 full gradient를 필요로 한다. 하지만 SDE를 통한 간단한 backpropagating은 computational memory를 많이 차지한다. (O(N)의 시간복잡도를 가짐)
그래서 기존의 adversarial purification 방법들은 이러한 메모리 이슈를 피하기 위해 black-box attack으로 evaluation 하거나 evaluation 전략을 변경했었다.
이러한 방법들은 adversarial training 방법이 사용하는 AutoAttack과 같은 표준적인 evaluation과 fair comparison 하기 어려웠다.
이를 극복하기 위해 저자들은 SDE의 full gradient를 효율적으로 계산하는 adjoint method를 제안한다.
직관적으로 SDE를 통한 gradient는 다른 augmented SDE를 풀면 알 수 있다는 것이다.
이상적으로, SDE solver가 작은 수치 오차를 가지면, Proposition 3.3에서 얻은 gradient는 그 실제 값과 근사하게 일치할 것이다.
gradient 계산이 증강된 SDE를 푸는 것으로 변환되었기 때문에 중간 작업을 저장할 필요가 없으며, 결과적으로 $O(1)$ 메모리 비용으로 끝난다.
즉, 위에서 설명한 Adjoint Method는 Eq.(4)의 reverse-time SDE를 미분 가능한 작업으로 변환한다 (메모리 문제없이).
Eq.(3)의 forward diffusion step도 reparameterization 기법을 사용하여 미분 가능하며, 따라서 강력한 adaptive attacks으로 생성된 적대적 이미지의 손실 함수에 대한 전체 gradient를 쉽게 계산할 수 있다.
Experiments
Datasets and network architectures
CIFAR-10, Celeb-HQ, ImageNet ResNet, WideResNet, ViT
Adversarial attacks
diffusion과 denoising process에서 생기는 stochasticity 때문에, Expectation Over Time(EOT)를 적용한다.
Evaluation metrics
adaptive attack을 적용할 때, computational cost가 많이 발생한다.
따라서 test set에서 randomly sampled 된 512개의 images를 이용해서 robust accuracy를 측정했다. (이 부분이 아쉽다. ImageNet 512개는 너무 적은 거 아닌가..)
Comparison with the state-of-the-art
CIFAR-10과 ImageNet에서 기존 Adversarial training 방법론들의 성능을 뛰어넘는 SOTA를 달성했다.
Defense against unseen threat
기존 adversarial training 방법론들이 unseen attack 상황에서 대응하지 못함을 지적하며, 본 논문의 방법론은 강건함을 보이고 있다.
Comparison with other purification methods
기존 purification 방법론들과의 성능을 비교하며 Diffusion의 압도적인 성능을 보여주고 있다.
Ablation studies
Impact of diffusion timestep $t^{*}$
Attack마다 최적의 timestep $t^{*}$ 가 다름을 보여준다.
Impact of sampling strategy
Combination with adversarial training
Adversarial training classifier와 결합했을 때, 더 좋은 성능을 보인다.
Limitations
본 논문은 Diffusion model을 활용해서 뛰어난 purification 성능을 보여주었지만 diffusion의 고질적 단점인 latency 문제가 존재한다.
이미지 1장을 inference 하는데 무려 17.14초가 걸린다..
What did I feel
본 논문은 굉장히 깔끔하게 잘 쓰인 것 같다는 생각이 든다. (역시 엔비디아)
기존에 존재하는 model과 방법론(sdeint)들을 잘 조합해서 Diffusion으로 adversarial perturbation을 지우는 아이디어는 대단한 것 같다.
하지만 그럼에도 불구하고 Diffusion을 활용한 첫 adversarial purification 논문인만큼 개선돼야 할 점이 분명하며, 향후 발전할 수 있는 방향성이 많이 보이는 논문이다.
논문을 읽고 난 후 궁금점 해결
- Q1 : attack 받은 이미지가 입력으로 들어오면 purification을 거쳐서 adversarial perturbation을 제거하는데, 그럼 모든 이미지(attack이든 아니든)에 대해서 이 process를 시행하는 건가? 아니면 clean image와 adversarial perturbed image를 구분하는 과정이 포함되어 있나?
- A1 : 사전에 clean image와 adversarial perturbed image를 분류하는 과정이 존재하지는 않는다. 따라서 본 논문이 제안한 model이 실제로 적용이 된다면, 모든 이미지에 대해 purification을 수행할 것이다. 그렇기에 clean image에 대한 accuracy를 낮추는 단점이 존재한다. clean image와 adversarial perturbed image를 사전에 detect 하는 연구도 진행되고 있기에 향후에 알맞게 결합되면 더 좋은 시너지를 발휘할 수 있지 않을까 생각한다.
- Q2 : training 할 때는 clean image에 attack을 가한 후 이를 diffusion model로 purification 하는 방식으로 반복 학습하는 것인가?
- A2 : 아니다. 잘못짚었다. 본 논문에서 제안한 방법은 별도의 training과정이 아예 필요 없다. pretrained diffusion model과 pretrained classifier만 있으면 pipeline을 구축할 수 있다!
- Q3 : Adversarial purification은 Diffusion model이기에 가능한 것인가? 아니면 다른 Generative model로도 가능한 것인가?
- A3 : GAN, EBM 등과 같은 diffusion이 아닌 generative model로도 adversarial purification이 가능하다. 하지만 diffusion에 비해 성능이 많이 낮기 때문에 잘 활용되지는 않는 것 같다.