[논문 리뷰] Towards Evaluating the Robustness of Neural Networks(C&W Attack)(1)

2022. 2. 12. 02:53논문리뷰/Adversarial Attack

지난 논문 리뷰에서 Defensive Distillation이라는 defense 기법을 알아보았다. 이 방법이 나왔을 당시 차세대 기법이라고 불릴 만큼 각광받는 defense 기법이었는데, 이를 깨버린 것이 CW Attack이 되겠다.

**CW라는 이름은 저자 두명의 앞글자를 따서 만들었다. 

https://arxiv.org/abs/1608.04644

 

Towards Evaluating the Robustness of Neural Networks

Neural networks provide state-of-the-art results for most machine learning tasks. Unfortunately, neural networks are vulnerable to adversarial examples: given an input $x$ and any target classification $t$, it is possible to find a new input $x'$ that is s

arxiv.org

 

이 논문은 이전의 Attack method들이 Network의 Robustness에 대한 지표가 되기에는 너무 약했기 때문에 새로운 강한 attack을 제시한다. 그리고 이전의 강력하다고 알려진 defensive distillation이 network의 robustness를 향상시키는 것이 아니라 단순히 이전 attack methods들이 제대로 동작하지 않도록 만드는 것이라 말한다. 실제로 새롭게 제안한 attack에 대해 defensive distillation이 아무 역할도 하지 못하게 된다. 자세한 내용을 살펴보자!!


1. Adversarial Examples

 

Deep Neural Networks는 많은 어려운 machine learning tasks에서 매우 효과적인 성능을 보여준다. 하지만 여러 연구에서 DNN이 attack에 매우 취약하다는 것이 밝혀졌다. Adversarial Attack이란, 아주 미세한 perturbation을 데이터에 가해줌으로써 딥러닝이 제대로된 동작을 하지 못하도록 하는 것을 말한다. 이러한 현상은 DNN을 security-crucial한 분야에 적용할 때 큰 문제가 된다. 

1.1 Distance Metrics

Adversarial examples를 만들 때 사용되는 perturbation은 사람의 눈으로 구별되지 않을 정도로 작아야 된다. 이러한 조건을 constraint로 제어하게 되는데 이 때 사용되는 방법으로 여러 distance metrics가 쓰인다.

  • L2-Distance: 가장 일반적으로 알려져있는 Euclidean Distance이다. 이는 이미지 x와 perturbed 이미지 x'과의 픽셀 값 차이를 계산하고 이 값을 작게 만듦으로써 perturbation의 크기를 제한한다.
    • $||x-x'||_2 = (\sum^n_{i=1} |x_i - x'_i|^2)^{\frac{1}{2}}$
  • L0-Distance: 실제로 거리를 계산하는 식은 아니고, 이미지 x에서 perturbed 이미지를 만들 때 변한 픽셀의 개수를 말한다. 즉, perturbation을 모든 픽셀에 가하는 것이 아니라 잘 선택된 특정 픽셀에만 가해줌으로써 사람의 눈에 잘 띄지 않도록 한다.
  • $L_{\infty}$-Distance: 변한 픽셀 값들 중 그 변화량이 가장 큰 값만 계산하는 방식이다. 가장 큰 변화량을 제한하면 다른 픽셀들도 그 제한선까지만 변할 수 있게 되어 크기가 제한된다.
    • $||x-x'||_{\infty} = max(|x-x'_1|, \dots , |x_n-x'_n|)$

1.2 Attack Algorithms

CW Attack을 보기 전 이전에 좋은 성능을 보였던 몇 가지 methods를 살펴보자.

1.2.1 L-BFGS

adversarial examples를 box-constrained loss를 통해서 만들어내는 논문이다. 방법은 매우 직관적이다. classifier에서 x와 다른 label을 가지면서 다른 이미지 x와 매우 비슷한 x'을 찾아내는 문제에 대한 minimization 식을 다음과 같이 나타낼 수 있다.

$$minimize \ ||x-x'||^2_2 \ \  such \ that \ C(x')=l, \ \  x' \in [0, 1]^n$$

이 문제를 직접 푸는 것은 불가능하므로 라그랑지안을 통해 바꾸어주면,

$$minimize \ c \cdot ||x-x'||^2_2 + loss_{F,l}(x') \ \ such \ that \ x' \in [0, 1]^n$$

여기서 $loss_{F, l}$은 cross-entropy이고, c는 두 term에 대한 가중치를 조절하는 상수값이다. 

1.2.2 Fast Gradient Sign

FGSM이라고 불리는 이 방식은 loss function의 gradient를 사용하여 classifier의 decision에 큰 변화를 주는 방향을 찾아 이를 perturbation으로 사용한다. 이 논문에서는 perturbation의 크기를 $L_{\infty}$ distance metric을 사용해 제한한다. 이전에 나왔던 L-BFGS의 단점이 매우 느린 동작 속도였는데, 이를 크게 개선하여 빠르게 adversarial examples를 만드는데 초점을 둔 논문이다. 

$$x' = x - \epsilon \cdot sign(\triangledown loss_{F,t}(x))$$

 

이에 대한 자세한 내용은 리뷰를 참고하길 바란다.

https://aistudy9314.tistory.com/37?category=979607 

 

[논문리뷰] FGSM:Explaining and harnessing adversarial examples

최근 Adversarial attack에 대한 논문을 읽고 정리하는 중이다. 이전에 접해본 적이 없는 분야이기 때문에 헷갈리는 부분도 많고, 잘못 이해한 부분이 있을 수 있으니 댓글로 알려주길 바란다. 첫번째

aistudy9314.tistory.com

 

Iterative FGSM

FGSM을 $\epsilon$방향으로 한번에 변화시키는 것이 아니라, 작은 step으로 나누어 여러 iteration을 통해 바꾸어 나가는 간단한 방법으로 큰 성능 향상을 이룬 방식이다. 

$$x'_i = x'_{i-1} - clip_{\epsilon}(\alpha \cdot sign(\triangledown loss_{F,t}(x'_{i-1})))$$

 

1.2.3 Jacobian-based Saliency Map Attack(JSMA)

$L_0$ distance를 사용하여 attack을 한 논문으로, Jacobian matrix($\triangle Z(x)_l$)로부터 saliency map 을 계산하여, classification결과에 미치는 영향이 큰 픽셀들만 선택하여 attack을 가한다. 이 방식은 greedy algorithm으로 한번에 한 픽셀만 바꾸어 나간다. 이를 반복하다가 정해둔 threshold 픽셀 개수를 넘어가면 중단한다.

 

이를 식으로 나타내면,

$$\alpha_{pq} = \sum_{i\in \{p, q\} } \frac{\partial Z(x)_t}{\partial x_i}$$

$$\beta_{pq} = (\sum_{i\in \{p, q\} } \sum_j \frac{\partial Z(x)_j}{\partial x_i}) - \alpha_{pq}$$

여기서 $\alpha_{pq}$는 픽셀 p와 q를 변화시켰을 때 target class에 대한 logits 값의 변화량을 뜻하고, $\beta_{pq}는 반대로 target class를 제외한 다른 label들의 logits 변화량을 말한다.

**Z(X)는 DNN의 가장 마지막 layer인 logits, F(X)는 softmax(Z(X))를 뜻한다.

 

perturbation을 가할 픽셀을 고르는 식은 다음과 같다.

$$(p^*, q^*) = argmax_{(p,q)}(-\alpha_{pq} \cdot \beta_{pq}) \cdot (\alpha_{pq} > 0) \cdot (\beta_{pq} < 0)$$

즉, target class에 더 가깝고$(\alpha_{pq} > 0)$, 다른 class들과는 덜 가까운$(\beta_{pq} <0)$ 조건에서 가장 큰 $(-\alpha_{pq} \cdot \beta_{pq})$ 값을 가지는 픽셀 p, q들을 찾아내고 이 픽셀들에 대해서만 perturbation을 가하는 것이다.

**찾아낸 p, q는, 값이 바뀌었을 때 target class에 대한 logits값 또한 크게 변하고, target 이외의 class에 대한 logits은 그 영향을 적게 받는 픽셀이 된다. 이렇게 변화에 sensitive한 픽셀들만 attack을 가함으로써 사람 눈에 indistinguishable하도록 한다.

 

JSMA에서는 일반적으로 logits Z를 사용하는데, softmax output인 F를 사용해서도 JSMA를 구현할 수 있다. 이 때, logits을 이용한 방식을 JSMA-Z, softmax output을 사용한 방식을 JSMA-F라고 부른다.

 

1.2.4 DeepFool

Deepfool은 untargeted attack으로 constraint에서 L2-distance를 사용한다. 이는 L-BFGS보다 efficient하면서 더 작은 perturbation을 만들어낼 수 있다. 저자는 Neural Network가 totally linear하다는 가정을 가지고 알고리즘을 만드는데, 실제로는 Neural Network가 non-linear하기 때문에 여러 step을 거쳐서 adversarial examples를 구한다.

 

2. Defensive Distillation

CW Attack이 Defensive Distillation을 중심으로 attack의 강력함을 보여주기 때문에 이에 대해서도 간단히 살펴보도록 하자.

 

Defensive DistillationKnowledge Distillation이라는 기법을 사용하여서 defense를 하는 방법이다. 먼저 Support Network를 먼저 학습 시킨 후에 이 softmax outputs을 Target Network의 label로 사용함으로써 attack에 대한 Defense가 이루어진다. 이 때 softmax 식에 logits을 Temperature T로 나누는데, Training time에 이 T를 크게 주어서 target class만이 아니라 다른 class와의 correlation과 같은 다른 정보도 label에 담을 수 있게 되고 이를 사용하여 Target Network의 Robustness를 높이게 된다. 마지막으로 test time에 T를 다시 1로 되돌림으로써 target class confidence를 다시 높여주고, attack이 제대로 동작하지 않게 된다.

 

더 자세한 내용은 밑 리뷰 글을 참고하길 바란다.

https://aistudy9314.tistory.com/54

 

[논문리뷰] Defensive Distillation

Adversarial Attack이 있으니 당연히 Defense 기법도 존재한다. 이번 리뷰에서는 Defense 기법 중 하나인 "Defensive Distillation"을 소개할 것이다. 이 논문은 처음 나왔을 때 많은 사람들에게 관심받으며 차세.

aistudy9314.tistory.com

 

3. C&W Attack

adversarial examples를 찾는 문제를 정의해보면 다음과 같다.

$$minimize \ D(x, x+\delta) \ \ such \ that \ C(x+\delta)=t, \ \ x + \delta \in [0, 1]^n$$

 

이를 direct하게 푸는 것은 불가능하므로 이를 적절한 optimization instance로 바꾸어줘야하는데, 이 때 사용할 수 있는 algorithm은 여러가지가 존재한다. 논문에서는 이 중에서 가장 Effective한 algorithm을 찾기 위해 여러 가지를 고려하고 실험을 한다.

 

3.1 Objective Function

첫번째로 다양한 Objective Function f를 제안한다. 이때 f는 $C(x+\delta)=t$이면서 $f(x+\delta) \le 0$을 만족한다.

 

$$f_1(x') = -loss_{F,t}(x')+1$$

$$f_2(x') = (max_{i\neq t}(F(x')_i) - F(x')_t)^+$$

$$f_3(x') = softplus(max_{i \neq t}(F(x')_i) - F(x')_t) - log(2)$$

$$f_4(x') = (0.5 - F(x')_t)^+$$

$$f_5(x') = -log(2F(x't)_t - 2)$$

$$f_6(x') = (max_{i\neq t}(Z(x')_i) - Z(x')_t)^+$$

$$f_7(x') = softplus(max_{i \neq t}(Z(x')_i) - Z(x')_t) - log(2)$$

** s는 correct label, $(e)^+$는 $max(e, 0)$, softplus(x)=$log(1+exp(x))$, $loss_{F,s}(x)는 cross entropy를 나타낸다.

 

위 function들을 하나 하나 살펴보면 좋겠지만 너무 긴 글이 되기 때문에 여러분들이 해보기를 권장한다. 전체적으로 모든 function들이 목표로 하는 것은 target t에 대한 probability를 높여 classifier가 t를 예측하도록 하는 것이다. 논문에서는 여러 실험을 통해서 $f_6$를 가장 최적의 objective function으로 뽑았다.

 

아까 위에서 정의한 formula는 direct하게 optimizaiton problem에 적용하는 것은 불가능하다 했다. 이를 라그랑지안을 통해서 바꾸어주고, Distance metrics를 $l_p$ norm으로 정해주면 다음과 같다.

$$minimize \ ||\delta ||_p + c \cdot f(x+\delta) \ \ such \ that \ x + \delta \in [0,1]^n$$

이 때, c > 0 은 hyper-parameter로 두 term간의 가중치를 정해주게 된다. 

 

 

위 그래프는 상수 c에 대한 attack success probability 그래프이다. c를 높게 줄 수록 attack 성공률은 높아지는 경향을 보이지만 그에 따라서 distortion은 커지게 된다. 따라서 적절한 c를 정해주어야 하고 논문에서는 binary search를 통해서 이를 찾는다.

 

3.2 Box Constraints

이미지 x에 perturbation $\delta$를 가했을 때의 output이 valid image가 되기 위해서는 $0\le x_i + \delta_i \le 1$ 조건을 만족해야 하고, 이러한 조건을 만족시키기 위한 방법을 "box constraint"라 한다.

 

논문에서는 이러한 box constraint도 여러 방법을 고려해보았다.

1) Projected Gradient Descent

gradient descent에서 한번 update를 할 때마다 전체 픽셀을 clip해주는 방식이다. 이 방식은 복잡한 update step을 가지는 optimizer(ex. momentum)를 사용할 때 안 좋은 결과를 보이는데, $x$를 clip하고 나서 다음 iteration에 예상치 못한 변화가 일어날 수 있다고 한다.

 

2) Clipped Gradient Descent

이 방식은 1)처럼 iteration마다 x를 clipping하지 않고, objective function 내에서 clipping을 한다. 즉, $f(x+\delta)$를 $f(min(max(x+\delta, 0), 1))$로 대체하는 것이다. 이는 위 1) 방식의 문제를 해결하지만, 이미지 x의 특정 픽셀$x_i$들이 maximum 값을 넘어가도록 커지는 현상이 발생할 수 있기 때문에 partial derivative가 0이 되고, $x_i$를 줄임으로써 성능을 향상시킬 수 있음에도 불구하고 gradient descent가 더이상 update를 하지않는 새로운 문제가 발생한다.

 

3) Change of Variables

새로운 변수 $w$를 선언하여 이를 대신 optimizing에 사용함으로써 box constraint를 한다. 이때 $\delta_i$를 다음과 같이 나타낼 수 있다. 

$$\delta_i = \frac{1}{2} (tanh(w_i) + 1) - x_i$$

**$-1 \le tanh(w_i) \le 1$이기 때문에, $0 \le x_i + \delta_i \le 1$를 만족시키게 된다. 

 

논문에서는 이 방식이 위에서 설명한 문제들을 해결하기 때문에 가장 적합한 방식이라고 주장한다. 

 

Evaluation of approches

 

위에서 제시한 objective function들과 box constraints를 각각 적용하여 성능에 어떠한 차이가 있는지 비교한 table이다.

**여기서 mean은 distortion의 정도이고 prob은 attack success probability이고, metric은 $l_2$를 사용했다.

 

결과를 살펴보면, objective function에 대한 성능 차이는 있었지만 box constraint 방식에서는 거의 차이를 보이지 않았다. 이전에 말했던 $f_6$가 가장 낮은 distortion과 높은 success probability를 가지고 있는 것을 볼 수 있다.

 

 3.3 Discretization

Discretization이란, normalized된 continuous value(0~1)를 다시 적합한 이미지 discrete value(0~255)로 바꾸는 작업을 말한다. 흔히 그냥 255를 곱해줌으로써 이를 해결하는데, 이러한 rounding이 adversarial examples의 작은 quality 저하를 일으킨다고 한다. 

 

보통 이러한 degradation은 매우 미세하기 때문에 다른 방법들에서는 무시하였는데, 논문에서는 이전 attack과 비교해서 더 작은 distortion의 examples를 찾아낼 수 있기 때문에 신경을 써주어야한다고 한다. 

 

논문에서는 greedy search를 통해 discretization을 한다고 하는데 자세한 방법은 나와 있지 않다...

 


논문의 내용이 생각보다 많기 때문에 글이 너무 길어져서 두 파트로 나누어서 작성하려고 한다. 다음 파트에서는 3가지 distance metric을 사용한 attack 알고리즘을 살펴보고 이를 defense distillation에 적용하여, 이전 attack들이 왜 defense distillation에 약했고 왜 proposed attacks은 강할 수 있는지를 설명할 것이다.