2022. 1. 28. 23:55ㆍ논문리뷰/Adversarial Attack
이번 리뷰는 Adversarial Examples을 GAN을 사용하여 Defense하는 Defense-GAN에 대한 논문이다. 기존에 GAN에 대해 관심도 가지고 있었는데 이렇게 attack에 GAN을 접목시켜서 Defense를 한다니 흥미롭지 않을 수 없다 ㅎㅎ..살펴보도록 하자!
https://arxiv.org/abs/1805.06605
1. Adversarial Attack
시작하기 앞서 간단하게 Adversarial Attack이란 무엇인지 살펴보도록 하자.
위 이미지는 adversarial examples로 많이 사용되는 예제이다. adversarial attack이란 어떠한 이미지에 아주 작은 noise를 가하는 것만으로 딥러닝 네트워크의 성능을 떨어트리는 기법을 말한다. 예로 위 이미지는 57.5%의 confidence로 "panda"라 분류되었지만 noise가 더해지자, 사람의 눈으로 보았을 때는 같은 이미지이지만 딥러닝 모델은 무려 99%의 confidence로 "gibbon"을 예측하는 현상을 볼 수 있다.
이러한 Adversarial Attack 기법은 크게 Black-box와 White-box attack 두 분류로 나뉠 수 있다.
먼저 Black-box attack은 공격하는 쪽에서 model parameter에 대한 어떠한 정보 알 수 없는 상태에서 가하는 attack을 말한다.
반대로 White-box attack은 model architecture와 parameter등 네트워크의 모든 정보를 안다는 가정 하의 attack이다.
2. Defense Method
공격하는 방법이 있다면 그것을 막으려는 방법도 있기 마련이다. 다양한 defense 방식이 있지만 이 논문에서는 3가지의 그룹으로 묶어서 설명한다.
- Modifying the training data
- 예로 "adversarial Training"이 있다. adversarial examples를 training time동안 만들어내어 이를 train data에 추가함으로써 일종의 augmentation으로 model의 robustness를 향상시킨다.
- Modifying the training procedure of the classifier
- 예로 "defensive distillation"이 있다. 이전의 attack방식들이 gradient-based approach가 많았기 때문에 distillation을 통해 gradient magnitude를 줄임으로써 이러한 attack이 잘 동작하지 못하도록 방지한다.
- Attempting to remove the adversarial noise
- 예로 "Jpg compression"이 있겠다. 많은 사람들이 알다시피 jpg는 이미지를 압축하는데 사용되는 방식이고 이때 일정의 정보를 손실하는데, 이러한 과정속에서 perturbation 정보도 같이 손실되고 attack의 성능이 감소되게 된다.
이러한 traditional defense method들은 문제점이 몇 개 있는데, 우선 각 방식은 white box attack 또는 black box attack 중 한 가지의 attack에만 유효하다는 점이다. 또 하나의 단점은 대부분의 defense들이 특정 attack을 염두해두고 만들어졌기 때문에 그 외의 attack에는 성능이 떨어진다.
Defense-GAN은 이러한 두 단점을 모두 해결해버린다!!
3. Defense-GAN
Defense GAN의 직관적인 설명은 이러하다.
GAN이란 것은 간단하게 생각해서 Generator G에서 생성된 이미지들의 분포 $D_g$가 실제 이미지 분포 $D_{real}$와 최대한 같아지도록 학습을 하고 이를 통해서 진짜와 비슷한 이미지를 Generator가 만들어낼 수 있도록 한다. 또한, 원하는 이미지를 reconsturction하기 위해서는 Conditional information을 latent vector와 같이 주어야한다(논문에서는 adversarial examples를 넣어준다).
여기서 한가지 가정은 정상적인 이미지는 이러한 실제 분포 $D_{real}$에 가까이 존재할 것이고, adversarial examples는 더 멀리 떨어져 있을 거라는 것이다. 즉 어떠한 분포의 차이가 존재한다는 것이고, 위의 mapping 과정을 통해 실제 분포에 가까워 짐으로써 adversarial perturbation이 줄어들게 되는 효과를 보인다.
좀 더 자세히 알고리즘을 살펴보자!
이 논문에서는 WGAN을 사용한다. 기존 Adversarial Loss가 학습이 불안정한 점이 있어 이를 개선한 버전이라고 생각하면 될 것 같다. WGAN의 Cost function은 다음과 같다.
$$min_G max_D V_W(D,G) = E_{x~p_{data}(x)}[D(x)] - E_{z~p_z(z)}[D(G(z))]$$
순서대로 살펴보면,
- 먼저 R개의 random initialized latent vactor z를 만들어낸다.
- 다음으로 Generalized output $G(z)$가 input image x와의 L2-norm이 가장 최소인 optimal latent vector z*을 찾는다.
- 찾은 optimal z*를 Generator에 넣고 Classifier에서 최종 class가 출력되게 된다.
여기서 알아야 할 점은 Generator와 Classifier는 사전에 학습된 모델을 그대로 사용한다는 것이고, 학습도 진행하지 않는다. 여기서 Gradient Descent로 update되는 값들은 latent vector가 된다. 이 부분을 좀 더 자세히 살펴보면,
위 update 과정은 각 R개의 latent vector마다 실행되게 된다. input image x와 latent vector $z^i$의 $L2-distance$가 최소가 되는 방향으로 L번 update가 이루어지게 되는데 이를 식으로 간단히 표현해보면,
$$z^i_{j-1} + \eta_j * \triangledown_z||G(z^i_j)-x||^2_2, \ \ iterate \ L \ times$$
이렇게 모든 latent vector마다 update가 끝났다면, R개의 latent vectors들 $\{z_L^i\}^R_{i=1}$이 나오게 되고, 이 중에서 generated image G(z^i)와 input image x과의 L2-distance를 최소로 만드는 optimal z*를 뽑아낸다.
** G개의 latent vector를 만드는 이유는 최적의 start point를 찾기 위함이라고 볼 수 있다. random이기 때문에 어떤 point는 L번만에 최적의 해에 도달할 수도 있고, 또 어떤 Point는 그 이전에 도달하거나 해를 찾지 못하는 경우도 생길 수 있다. 따라서 R개의 latent vector를 만듦으로써 최적의 해를 찾을 확률을 높이는 것이라 생각한다.
마지막으로 Defense-GAN의 특징을 몇 가지 살펴보자.
- Defense-GAN은 어떠한 classifier든 structure를 변경하지 않고도 바로 적용하는 것이 가능하다. 즉, classification 이전에 추가적인 step으로 사용하여, attack에 대한 robustness를 높일 수 있다.
- GAN이 충분한 capacity를 가지고 있다면, classifier를 re-training할 필요도 없고 defense-GAN으로 생기는 성능의 저하도 무시할 수 있을 정도로 작다.
- Defense-GAN은 어떠한 Attack에 대해서도 사용할 수 있다. 어떠한 attack model을 가정한 것이 아니라, GAN의 generative power를 사용하여 adversarial examples를 reconstruct하는 것이기 때문에 특정 attack에 국한되지 않는다.
- Defense-GAN은 GAN 특성상 매우 non-linear하기 때문에 gradient-based attacks에 매우 강하다. white-box attack에서 gradient-based attack은 클래스 간 decision boundary를 넘어가게 함으로써 모델의 오분류를 일으키는데, 이러한 decision boundary가 non-linear하게 되면 이러한 boundary를 넘어가는 것이 매우 어렵게 된다. 이는 차원이 높아질 수록 더 심각할 것이고, 따라서 attack을 하기 힘들게 된다.
4. Experiments
논문에서는 attack을 block-box, white-box, white-box revisited 총 3가지로 나누어 실험한다. 여기서 revisited란, 기존 white-box에서 random seed와 random number generator 정보까지도 알고 있는 환경 하의 attack이다. 즉, 모든 random initialization $\{z_0^i\}^R_{i=1}$을 알고 있다는 것이다.
Defense on Black-box Attacks
먼저 black-box attack이기 때문에 adversarial examples를 찾는데 Substitute network를 사용한다. 그리고 Defense-GAN-Rec와 Orig는 classifier를 Reconstruction image로 학습시켰는지 original image로 학습시켰는지로 구별된다.
결과를 보면 다른 method와 비교해서 Defense-GAN이 안정적으로 attack효과를 감소시키는 경향을 보여준다. Adversarial Training의 경우, $\epsilon$이 성능에 큰 영향을 미치고, 네트워크에 따라 결과의 차이가 크기 때문에 불안정성을 보인다.
Effect of number of GD iterations L and Random restarts R
Defense-GAN알고리즘에서 latent vector의 개수인 R과 update iteration L은 하이퍼 파라메터이다. 이 파트에서는 두 파라메터의 경향성을 보여주고 있다.
먼저 L은 attack없을 때 iteration이 높아질 수록 accuracy가 높아지는 경향을 보인다. 반대로 attack이 있을 때는 iteration이 높아질 수록 accuracy가 감소하는 것을 볼 수 있다. 이는 MSE $||G(z) - (x+\delta)||^2_2$에 대해서 iteration이 너무 높아지게 되면 noise(perturbation)까지 fitting되어 버리기 때문이다.
다음으로 R은 더 많이 줄수록 accuracy가 상승하는 결과를 보여준다. 이는 이전에 설명했던 것과 비슷하게 R을 늘림으로써 여러 개의 다른 local minima 값을 찾을 수 있고, global minima에 더 가까운 값을 찾을 확률이 그만큼 높아지는 것이다. 하지만 당연하게 두 하이퍼 파라메터를 높이면 computation cost가 더 필요할테니 적절한 값을 선정하는 것도 하나의 문제일 것이다.
Attack Detection
이전에 설명했던가정(perturbed image distribution은 real-image distribution과 차이를 보인다)을 이용하여 attacked image를 판별할 수 있다. 방법은 간단하다. 그냥 generated image와 x의 L2-distance가 threshold $\theta$보다 크면 attack이고, 작으면 attack이 아닌 것이다.
Defense on White-box Attacks
White-box attacks에 대해서도 Defense-GAN이 우월한 성능을 보여주고 있다. FGSM까지는 어느정도 이해하는데 CW attack까지 완벽히 방어해내어서 좀 놀랐다....GAN의 위대함인가...
이렇게 Defense-GAN에 대해서 리뷰해보았다. GAN을 사용하여 처음 Defense method를 제안한 것과 성능도 뛰어나다는 점! 심지어 black-box, white-box 구분없이 전반적인 attack에 대한 defense가 가능하다는 것도 큰 장점인 것 같다. 하지만 논문에도 나와있듯이 defense-GAN은 GAN모델이 성능을 좌지우지하는데, GAN 자체가 아직까지는 training이 불안정해서 잘 학습된 GAN을 얻는 것이 어려울 수 있다는 것이다. 또한, hyper parameter L, R도 성능에 영향을 미치기 때문에 이러한 hyper-parameter tuning도 잘 해주어야 한다고 한다!
'논문리뷰 > Adversarial Attack' 카테고리의 다른 글
[논문리뷰] F-mixup: Attack CNNs From Fourier Perspective (2) | 2022.02.06 |
---|---|
[논문리뷰] Defensive Distillation (7) | 2022.02.05 |
[논문리뷰] Amplitude-Phase Recombination (1) | 2022.01.12 |
[논문리뷰] Threat of Adversarial Attacks on Deep Learning in Computer Vision: A survey (0) | 2021.08.15 |
[논문리뷰] FGSM:Explaining and harnessing adversarial examples (0) | 2021.08.09 |