본문 바로가기

[논문 리뷰]Explaining and Harnessing Adversarial Examples 본문

AI/논문 Review

[논문 리뷰]Explaining and Harnessing Adversarial Examples

점핑노루 2021. 8. 18. 15:43

1. Introduction


Adversarial examples란, 모델 내에 작은 교란을 일으켜 높은 confidence로 오분류를 하도록 하는 것을 뜻한다.

놀라운 사실은 특정 훈련 데이터를 여러가지 architecture로 학습시켰더라도, 하나의 adversarial example이 존재한다면 모든 architecture이 똑같은 adversarial example에 대한 오분류를 한다는 것이다. 이것은 학습 알고리즘의 근본적인 맹점이다.

 

학자들은 처음 adversarial example들이 등장했을 때 deep neural network의 비선형성, insufficient model averaging & regularization의 산물 때문에 이 현상이 발생하였다고 생각하였다. 그러나 본 논문은 고차원 공간의 선형성이 adversarial examples에 영향을 끼친다는 사실을 밝혀낸다. 나아가 dropout 말고도 추가적인 regularization을 제공해주었다는 점에서 의의가 있다.

 

 

2. Related Work


Intriguing Properties of Neural Networks(2014)에서는 adversarial example들의 특성을 아래와 같이 정리한다.

  • L-BFGS는 adversarial exmaple들을 잘 찾는다.
  • Adversarial example은 인간의 눈으로 식별하지 못한다.
  • 얕은 softmax regression model은 adversarial model에 취약하다.
  • adversarial model에서의 학습은 모델의 정규화에 도움을 준다. 하지만 과다한 optimization 시간 때문에 효용적이지는 않다.

 

그래서 아무리 효율적인 architecture이 있다 하더라도 일종의 "Potemkin Village"를 형성할 수도 있다는 위험성을 주장한다. 참고로 Potemkin Village란 가난한 나라에 외벽, 외관을 제공함으로써 그곳의 사람들이 더욱 나은 방향으로 나가고 있다는 맹목적인 믿음을 주는 건축물이라고 한다.

 

Potemkin Village의 예시를 들면서 test set에서도 성능이 좋아보이는 다양한 architecture들이 사실 adversarial example들을 내포할 수 있다는 위험성을 알려주려고 하는 것 같다.

 

 

 

3. The Linear Explanation of Adversarial Examples


앞서 언급하였듯 linear model에서 발생하는 adversarial example들에 대하여 설명할 것이다.

 

많은 문제에서 각각의 input feature의 precision에는 "한계"가 존재한다. 디지털 이미지의 dynamic range(측정할 수 있는 최대의 시그널과 최소의 시그널의 비)가 1/255 이하인 정보들은 제외시키기 때문이다. 그렇기 때문에 adversarial input x˜=x+η가 있다고 했을 때, η(perturbation)의 값이 feature들의 precision보다 작다면 x와 x˜는 동일 취급해야 한다고 한다. 

 

만약 위와 같은 adversarial input x˜에 w로 내적곱을 한다면 식은 아래와 같이 변형될 것이다.

 

 

 

그렇다면 이 식에서는 adversarial perturbation은 WTη만큼 증가할 것이다. 그렇기에 max norm contraint(weight에 upper bound를 정하는 방식)을 통해 η를 η = sign(w)로 제한한다. (sign()이란 0보다 크면 1, 0이면 0, 0보다 작으면 -1을 반환하는 함수이다.) 그리고 w가 n개의 차원이 있고 weight vector의 average magnitude가 m이라고 했을 때, 교란으로 인해 발생하는 activation은 εmn 만큼 증가할 것이다. (ε는 매우 작은 값으로 제외되어도 되는 정보라 생각하면 편하다)

 

아래의 예시를 보면 본 설명이 용이할 것이다.

 

 

WTη와 εmn의 동일성으로 인하여, 차원 n의 증가와 함께 η도 선형적으로 증가하는 모습을 확인할 수 있다. 그래서 고차원일 경우에는 ε의 매우 작은 변화가 최종 output에는 큰 영향을 주어 adversarial exmaple이 나올 수 있다고 한다. 

 

 

4. Linear Perturbation of Non-Linear Models


기존 모델들은 원활한 최적화를 위해 ReLU, LSTM, maxout network등 linear한 activation function을 주로 사용해왔다. 그러나 앞서 언급한 이유 때문에 이는 오히려 adversarial example들에 취약하다는 단점을 지니고 있다. 그렇다고 sigmoid같은 nonlinear model들이 adversarial example들에 취약하지 않다고 할 수 없다. Sigmoid는 주로 non-saturating한 지 점들에 집중하는 경향이 있는데, 이 또한 linear한 부분이기 때문이다. (시그모이드의 가운데 부분)

 

 

그렇기에 η에 대한 새로운 식을 제공하고자 한다. x를 모델의 input, y를 x로 인해서 출력되어야 하는 target,

θ를 parameter이라고 하자. 또한 J(θ, x, y)를 neural network에서 발생하는 cost라고 하자. 그러면 우리는 optimal max-norm constraint를 다시 한 번 사용하여 perturbation을

 

 

 

와 같은 식으로 만들 수 있다. 이것을 "Fast Gradient Sign Method(FGSM)"이라고 부르도록 한다.

 

FGSM을 활용하면 모델들이 input을 잘못 분류하도록 한다. 아래 이미지는 그 예시를 보여준다.

 

 

위 이미지는 ε = 0.007이라는 매우 작은 숫자를 사용하였음에도 불구하고 99.3%의 신뢰도로 판다를 기본원숭이라고 오분류한다.

 

그 외에도 ε = 0.25 일 때 MNIST test set에서 평균 79.3%의 신뢰도로 99.9%의 오류를 범했고, ε = 0.1이었을 때 CIFAR-10 test set에서 평균 96.6% 신뢰도로 87.15%의 오류를 범했다. 

 

 

5. Adversarial Training of Linear Model Versus Weight Decay


Adversarial training은 말 그대로 adversarial example들을 training data로 사용하여 학습하는 것이다. 이것을 weight decay랑 비교하기 위해서 logistic regression에서 발생하는 adversarial training을 예시로 든다. 예를 들어 y가 {1,-1}인지 분류하는 logistic regression을 실행한다고 했을 때, 그 loss function은 아래와 같다.

 

 

여기서 ζ(z) = log(1+exp(z))는 softplus function이라고 한다. 그리고 이 loss function에다 x에 대한 gradient descent를 실행하여 perturbation 값을 도출해내고, adversarial training에 대한 loss function을 아래와 같이 제시한다. (논문에서 도출 과정은 생략되었는데, 어떻게 이루어져 있는지는 잘 모르겠다.) 

 

 

 

이것은 L1 regularization과 비슷한 형태를 가지고 있다. 이 또한 ε와 비슷한 weight decay항인 λ를 가지고 있기 때문이다. 하지만 adversarial loss에서의 ε는 빼기(?)로 이루어져 있기 때문에 loss가 사라진다. 그러므로 ζ가 "saturate"된다고 표현을 한다. λ는 더하기로 이루어져 있기 때문에 값을 조금만 크게 해도 deactivation이 발생할 우려가 있다고 한다. 예를 들어 ε=0.25로 했을 때 adversarial training에서는 좋은 값을 얻지만, λ를 0.0025로 설정하여도 그 값은 너무 커서 deactivate 된다고 한다. 그렇기 때문에 대부분의 논문에서는 weight decay를 0.0005 정도의 아주 작은 값으로 설정한다고 하나 보다...

 

L1 regularization (본 논문과는 무관). 위와 같이 람다가 바깥에 있는 모습을 확인할 수 있다.

 

 

 

 

6. Adversarial Training of Deep Network


Universal Approximator Theorem에 따르면, hidden layer이 하나라도 있고, unit이 충분한 neural network는 어떤 함수라도 특정 정도의 accuracy를 얻을 수 있다고 한다. 하지만 universal approximator theorm은 우리가 원하는 모든 desirabilities가 함수에 내장되어 있는지는 확인할 수 없다. 그 예로 adversarial example들이 우리의 function에 존재하는지 알 길이 없다. 이것을 training에서 극복하는 방법을 아래에서 설명할 것이다.

 

기존에 Szegedy et al. (2014b)에서는 adversarial과 clean example을 혼합으로 훈련시킨다면 neural network가 어느 정도의 regularization을 보인다고 하였다. 하지만 이는 L-BFGS라는 방법을 도입하여 adversarial exmaple들을 훈련시켰는데, 이는 비용적으로 매우 expensive하다는 단점이 있었다. 우리는 앞서 배운 FGSM을 도입하여 이 한계를 극복한다. training을 하는 식은 아래와 같다.

 

 

여기에서 α= 0.5로 설정하였고, 이 값으로 설정하였을 때 좋은 결과를 얻었다. α= 0.5란, clean example과 adversarial example이 반반씩 들어간 것이나 다름없다.

이렇게 하여 생성한 모델은 adversarial example들을 막는 데에 효과적이었다. Adversarial training이 없었을 때, adversarial example들에 대하여 89.4% error rate이 있었다. 그러나 adversarial training 후 error rate이 17.9%로 떨어지는 모습을 볼 수 있었다. 그러나 adversarial training을 해도 adversarial exmaple을 오분류할 가능성이 여전히 있다. 오분류에 대한 신뢰도도 81.4%로 매우 큰 값이었다. 모델을 생성할 때 adversarial training을 포함시키니 weight들의 값이 기존과 달리 크게 변화한 것을 볼 수 있었다.

 

Adversarial training을 거치지 않은 것(왼쪽)과 거친 것(오른쪽). Adversarial training을 거치면 조금 더 localized되어있고 설명 가능한 형태인 것을 볼 수 있다.

 

그래서 adversarial training procedure은 perturbation으로 인하여 발생하는 worst case error을 완화시켜주는 역할을 한다.

 

 또한 adversarial training을 할 때 픽셀마다 노이즈에 ±ε를 하거나, ε 자체에 U(-ε, ε)의 값을 가지고 adversarial training을 하였을 때, error rate이 각각 86.2% with confidence of 97.3%, 90.4% with confidence of 97.8%로 adversarial example에 robust하지 않음을 보여준다. 그러니까 ε값도 사전에 정한 값으로 진행하는 것이 좋다는 뜻이다.

 

7. Different Kinds of Model Capacity


Adversarial exmaple들이 직관적이지 않아보이는 이유는 그것이 발생하는 차원이 우리가 인지하는 차원보다 너무 높음에 있다. 또한 capacity가 낮은 모델은 여러 confident한 예측을 하지 못할 것이라고 한다. 그러나 이는 틀린 사실이다. shallow RBF network를 예로 살펴보자. 일단 그 식은 아래와 같다.

 

 

그리고 RBF network도 adversarial example에 면역을 가지고 있다고 한다. 그 error rate은 55.4%로, 타 모델들보다는 낮은 편인 것을 확인할 수 있다. 주목할 만한 점은 잘못 분류한 example에 대한 confidence는 1.2%로 매우 낮다는 것이다. 즉, 완벽히 이해하지 못한 이미지에서는 confidence를 대폭 낮춘 것이나 다름없다.

 

그래서 linear units랑 RBF units랑 비교해봤을 때, linear units은 높은 recall과 낮은 precision이 있었던 반면, RBF units은 높은 precision과 낮은 recall을 가지고 있다. 

 

 

8. Why do Adversarial Examples Generalize?


앞서 언급하였지만 특정 모델에서 오분류가 일어난다면, 다른 모든 architecture에서도 동일한 오류를 범한다. 

 

그리고 확인하였듯이 linear view에서 adversarial exmaple은 높은 차원에서 발생하는데, 이 때 중요한 것은 바로 ε의 값이다. 아래 그림은 ε의 크기에 따라서 augmented softmax가 변하는 양상을 보여준다. 아래 그림을 살펴보자. 

 

 

우리는 4를 올바르게 분류하고 싶은데, 가운데 영역 (ε가 -1~0 사이에 있는 부분)에서 4에 대한 softmax가 가장 큰 것을 확인할 수 있다. 그 외의 부분에서는 4에 대한 softmax가 가장 크지 않음을 확인할 수 있다. 하지만 입실론의 값에 따라서 softmax가 linear한 형태로 이루어져 있다.

 

그리고 우리가 다루는 대부분의 architecture들은 모두 linear한 형태로 이루어져 있다. 그렇기 때문에 훈련을 시킬 때 비슷한 weight을 주는 것으로 결론이 나는 데다가, 사실 머신러닝 알고리즘들은 generalization이 용이하다. 

 

 

9. Alternative Hypothesis


해당 섹션에서는 adversarial example들에 대한 다른 가설들을 살펴보고, 그 가설에 대한 반박을 할 것이다.

 

1. Generative training은 훈련 과정에서 제약을 주어 가짜 데이터와 진짜 데이터를 구분하긴 하지만, 진짜 데이터에서만 높은 confidence를 준다.

 

아니다. MP-DBM 모델로 실험해본 결과, 그냥 adversarial example들에 취약하다.

 

2. 여러 모델들의 weight에 대한 평균을 내면서 adversarial exmaple들이 사라질 수 있다.

그럴 수 없다. 12개의 MNIST maxout network들을 앙상블로 훈련시켰음에도 91.1%의 error을 ε=0.25로 설정했을 때 얻는다.

 

논문 출처: https://arxiv.org/pdf/1412.6572.pdf 

Comments