[논문리뷰] Threat of Adversarial Attacks on Deep Learning in Computer Vision: A survey

2021. 8. 15. 18:32논문리뷰/Adversarial Attack

Introduction

  • 딥러닝은 과거 ML과 인공지능 분야에서 해결하지 못했던 문제들을 풀 수 있는 가능성을 가졌다.
  • 풀리지 않는 과학 난제들을 해결하기 위해 사용되고, 최근 speech recognition과 language understanding 문제에서도 많이 쓰이고 있다. (ex. brain circuit, DNA 등)
  • 특히 2012년도에 Convolution Neural Network가 등장하여, Computer vision 분야에서 엄청난 성능을 보였다.
  • 이 이후로 컴퓨터 비전분야에서는 medical science부터 mobile applications까지, 다양한 어려운 문제들을 딥러닝 연구를 통해 풀어내면서 수많은 contributions을 내었다.
  • 딥러닝의 발전과 함께, 점차 안전과 보안이 중요한 applications에도 사용되기위해 개발되고 있음.
    • ex) 자율주행, 감시 카메라, 드론, 로봇, mal-ware 탐지 등
    • 최근 실례로 개발된 얼굴 인식 ATM과 FaceID는 명백히 딥러닝 기반 solution.
  • 하지만 딥러닝에 문제점이 보이기 시작!
  • 딥러닝은 여러 task에서 높은 정확도로 문제를 풀어내지만, adversarial attack에 취약하다는 보안적 문제가 발생.
  • adversarial attack은 사람이 인식할 수 없을 정도의 미세한 perturbation을 input에 가함으로써 모델이 완전히 다른 prediction output을 산출하도록 만듬.
    • 심지어 high confidence
  • 게다가 같은 image perturbation을 사용하여 여러 classifiers를 속일 수 있음.
  • 이러한 결과들은 많은 연구자들이 adversarial attack과 그 defense 방법에 흥미를 갖게 만들었고, 그와 관련하여 다양한 성과들이 발표되었다.
  • 예를 들어, image-specific perturbation이 아닌, 어떤 image에도 적용될 수 있는 "universal perturbation"이 발표되었고, 또 3D 프린팅으로 만든 물체조차 딥러닝을 속일 수 있다는 것이 증명되었다. 
  • 이 논문에서는 컴퓨터 비전 분야에서의 딥러닝에 대한 adversarial attack에 대해 처음으로 종합적인 조사를 발표한다.

 

2. Definition of Terms

  • adversarial example/image : ML 기술을 속이기 위해 clean image에 의도적으로 변화를 가하여 만들어진 image.
  • adversarial perturbation : adversarial example을 만들기 위해 clean image에 가해지는 미세한 변화(like noise).
  • adversarial training : adversarial examples와 clean images를 사용하여 ML 모델을 학습시키는 것.
  • adversary : 보통 adversary examples를 만드는 주체. 때로는 examples 자체를 뜻하기도 함.
  • black-box attacks : 모델에 대한 정보(ex. model parameters)를 확실히 모르는 상태에서 생성된 adversarial examples를 target 모델에 적용하는 것.
  • detector : adversarial examples를 detect하는 메카니즘.
  • fooling ratio/rate : adversarial attack에 의해 변한 prediction의 비율.
  • one-shot/one-step methods : single step computation(ex. loss에 대한 gradient를 한 번만 계산)만을 수행해서 adversarial perturbation을 만들어내는 방식. 
    • 반대 개념인 iterative method는 한 perturbation을 구하기 위해 같은 연산을 여러 번하는 방식.
  • quasi-imperceptible : 사람 눈으로는 인식할 수 없도록 아주 미세하게 이미지를 손상시킴.
  • rectifier : 원래 prediction되었던 output이 나오도록 adversarial examples를 바꾸어주는 객체.
  • targeted attacks : 모델이 특정 target label로 잘못 예측하도록 속이는 attack.
    • 반대 개념은 non-targeted attacks로, predicted label이 올바른 label이 아닌 이상 어떤 값이든 무관한 attack.
  • threat model : black-box attack과 같이 approach에 의해 이루어지는 잠재적 attack의 일종.
  • universal perturbation : 어떤 이미지든 높은 확률로 모델을 속일 수 있는 perturbation.
    • universality는 perturbation이 좋은 transferability를 가지는 것과 달리, 이미지에 구애받지 않는 속성을 말한다.
    • universal perturbation은 transferability가 떨어지나??
  • white-box attacks : 타겟 모델에 대한 지식(ex. parameter, architecture, training method 등)을 완벽하게 알고 있다는 가정하에 행하는 attack.

3. Adversarial Attacks

  • adversarial attack에 대한 리뷰.
  • real-word조건에서의 adversarial attack 기술은 Section 4에 기재. 
  • Section 3는 실제 상황에서 딥러닝 모델에 큰 영향을 끼칠 수 있는 잠재성을 가졌고, real-world attack 기술의 기반이 되는 기술들이므로 눈여겨 보아야 됨.

3.1 Attaks for classification

3.1.1 Box-contrained L-BFGS

  • Szegedy는 처음으로 단지 clean image에 작은 perturbation을 더하는 것만으로도 딥러닝 모델이 오분류를 일으키도록 속일 수 있다는 것을 증명하였다. 
  • $I_c$를 clean image, $\rho$를 additive perturbation, C()를 classifier, l을 이미지의 label이라 하면

$$min_p \ ||\rho||_2 \ s.t. C(I_c+\rho) = l; \ I_c + \rho\in [0,1]^m \ \ ...(1)$$

 

저자는 $l$이 $I_c$의 원래 label이 다른 non-trivial solution을 풀 것을 제안했다.

그런 경우, (1) 식이 hard problem이 되어 box-constrained L-BFGS를 사용하여 근사 해를 찾아야만 했다.

 

$$min_p \ c|\rho| L(I_c+\rho, l) \ s.t. \ I_c + \rho\in [0,1]^m \ \ ...(2)$$

 

여기서 c는 perturbation $\rho$가 커지지 않도록 조절하는 상수인 것 같다.

 

위 method를 사용하여 perturbation을 구할 수 있고, fig.2에서 볼 수 있듯이 clean image에 더해짐으로써 neural network를 속일 수 있지만, 사람 눈으로 보았을 때 clean image와 어떠한 차이를 느낄 수 없다.

 

또한, 한 neural network에서 구한 perturbation은 다수의 다른 networks 또한 속일 수 있다는 결과를 보였다.

이것은 딥러닝의 맹점을 의미하였고, 그 결과가 밝혀졌을 때에 컴퓨터 비전 분야에서 딥러닝 features는 perceptural distances가 Euclidean distances로 잘 근사될 수 있는 공간을 정의한다라는 주장을 받아들이고 있는 중이었기 때문에 위에 모순적인 결과는 많은 연구자들의 흥미를 끌었다.

-> 기존에는 딥러닝 features가 perceptually similar하면 같은 결과를 내보낼 것이라고 유추.

 

3.1.2 Fast Gradient Sign Method(FGSM)

szegedy에 의해서 deep neural network의 robustness가 adversarial training을 통해 향상될 수 있다는 것을 발견되었다.

 

  • 효율적인 adversarial training을 위해, Goodfellow는 효율적으로 adversarial perturbation을 계산하는 방법을 제안.

$$\rho = \epsilon sign(\bigtriangledown J(\theta,I_c,l)) \ \ ...(3)$$

 

여기서 $\bigtriangledown J()$ 는 clean image $I_c$에 대한 모델 parameter $\theta$의 현재 값에 대한 cost function의 gradient를 의미한다. clean image에 해당하는 cost function의 gradient.

 

$\epsilon$은 perturbation의 크기를 제한 하는 역할. FGSM이라고 불린다.

 

흥미롭게도 과거에는 deep network model이 매우 비선형적이라고 흔히 생각했었는데, 해당 모델에서는 DNN의 고차원공간에서의 선형성을 이용함.

 

DNN은 linear behavior를 유도하여 연산적인 이득을 얻도록 디자인되어 있는데, 이런 점이 싸고 분석적인 perturbation에도 예민하게 만든다고 가정하였다.

 

IMAGENET에서 top-1 error가 63-69%.

 

또한 "one-step target class"라는 FGSM을 약간 변형한 방식도 제안하였는데, (3)번식에서 $l$대신, $I_c$에 대해 모델이 가장 아니라고 예측한 label $l_{target}$을 사용한다.

 

그렇게 계산된 perturbation은 adversarial examples로써 clean image에서 빼지게 되고, cross-entropy에 대해 모델이 target label $l_{target}$로 예측할 확률을 최대화시키게 된다.

 

random하게 뽑은 class도 target label로써 사용할 수 있지만, 결과가 조금 덜 효과적일 수 있다.

예를들어 원래 방식은 강아지(말티즈)를 타조로 인식하게 만들지만, random방식은 강아지(말티즈)를 강아지(포메라니안)으로 인식하는 정도.

 

또한 FGSM에 의해 만들어진 adversarial examples에 대한 adversarial training을 통해 DNN의 robustness를 향상시킬 수 있다는 것을 증명.

 

FGSM은 classifier의 loss가 증가하는 방향으로 이미지를 변형시킨다. sign 함수로 이 loss의 크기가 최대화되도록하며, $\epsilon$에 대한 $l_{\infty}-norm constraint$로 perturbation을 제한한다. 

 

아주 비슷한 방식으로 perturbation을 계산하는 다른 방법이 제안.

$$\rho = \epsilon \frac{\bigtriangledown J(\theta, I_c, l)}{||\bigtriangledown J(\theta,I_c,l)||_2}$$

 

위 방식은 계산된 gradient를 $l_2-norm$으로 normalize하고 있으며, 비슷게 $l_{\infty}-norm$을 이용한 방식도 제안하였다. 이들은 "Fast Gradient $l_2(l_{\infty})$"로 불린다.

 

큰 범위에서 위와 같은 방식은 "one-step" 또는 "one-shot" 방식이라고 여겨진다.

 

3.1.3 Basic & Least-Likely-Class Iterative Methods

one-step methods는 classifier의 loss가 커지는 방향으로 크게 한 step만 이동하는 방식이다.

 

이러한 방식의 확장으로 iterative하게, 각 step마다 방향을 조절하면서, 작은 step을 여러 번 이동하는 방식을 제안하였다. 이것은 Basic Iterative Method(BIM)이라 불리며 다음과 같은 식을 가진다.

 

$$I_{\rho}^{i+1} = Clip_{X,\epsilon} \{ I^i_{\rho} + \alpha sign(\bigtriangledown J(\theta,I^i_{\rho},l))\}$$ 

 

여기서 $I^i_{\rho}$는 i번째 perturbed image를 의미하고, $Clip_{X,\epsilon}$은 이미지의 범위를 $[X-\epsilon, \ X+\epsilon]$까지로 clip하는 식이다. 또, $\alpah$는 step size를 의미한다(보통 1).

 

BIM알고리즘은 $I^0_{\rho} = I_c$로 시작하며, iterative 횟수는 다음 공식으로 정해진다.

 $$[min(\epsilon+4, 1.25\epsilon)] \...(4)$$

 

FGSM이 one-step target class로 확장된 것과 비슷하게, BIM 역시 Iterative Least-Likely Class Method(ILCM)으로 확장되었다. 이 경우, (4)식의 l이 classifier가 가장 아니라고(Least Likely) 예측하는 target label $l_{target}$으로 변경된다.

 

ILCM이 image classificiation method에서 정확도에 심각한 영향을 미치는 것을 보여주었다.

 

3.1.4 Jacobian-based Saliency Map Attack(JSMA)

사람 눈으로 변화를 인식하기 어렵게 만들기 위해 adversarial examples를 만들 때, 보통 perturbation을 $l_{\infty}$ 또는 $l_2$-norm constraint를 사용하였다. 하지만 $l_0-norm$ constraint을 사용하여 만든 perturbation 또한 adversarial examples가 될 수 있다고 주장되었다. 

 

이것은 전체 이미지 픽셀이 아니라 오직 몇 픽셀만 바꾸더라도 classifier를 속일 수 있다는 것을 의미.

 

clean image에서 한번에 한 픽셀씩만 변경하고, classification 결과를 보면서 변경에 따른 효과를 살핀다.

 

이때 Neural Network outputs의 gradient를 이용한 silency map을 사용한다.

이 map에서는 높은 값을 가지고 있을 수록 network를 속일 가능성이 높다는 것을 의미한다.

 

map을 계산하고 나서, 위 알고리즘은 네트워크를 속이기에 가장 효율적인 픽셀들을 고르고, 그 값들을 변경한다.

이 과정은 모든 픽셀들이 바뀌었거나 모델을 속이는 데 성공할 때까지 반복된다.

 

3.1.5 One Pixel Attack

adversarial attack에서 극한의 경우는 분명 오직 하나의 pixel값만 바꾸어서 classifier를 속이는 것일 것이다. 흥미롭게도 이미지 당 오직 한 pixel만 바꾸어서, test image에 대해 70.97%의 확률로 3개의 다른 모델들을 속이는 것에 성공하였다고 발표하였다.

 

또한 잘못된 label을 산출하였을 때의 average confidence가 97.47%나 나온다고 말하고 있다.

 

이 논문에서는 이러한 결과를 얻기 위해서 Differential Evolution(DE)을 사용하였다고 한다.

 

먼저 cleam image $I_c$에 대해 5차원 vector 400개를 만든다. 각 vector는 임의의 후보 pixel에 대한 xy coordinate와 RGB 값들을 가지고 있다. (x, y는 uniform distribution에 의해 정해지고, rgb 값은 gaussian distribution에 의해 정해짐)

 

그리고 각 iteration마다 다음 DE 공식을 이용하여 다른 400개의 child candidate를 만들다. 

 

$$x_i(g+1) = x_{r1}(g) + F(x_{r2}(g) - x_{r3}(g)), \ \ r1 \neq r2 \neq r3$$

 

$x_i$는 candidate solution의 element이고, r1, r2, r3는 랜덤으로 정해진 수, F는 scale parameter로 0.5를 사용한다. 또 g는 generation의 현재 index를 의미한다.

 

이렇게 child candidate가 만들어졌으면, 예측된 label들의 확률들을 기준으로, parent(이전 candidate)와 비교하여 더 attack을 잘한 candidate가 살아남아 다음 iteration으로 넘어간다. 그리고 최종적으로 살아남은 child candidate가 해당하는 이미지의 픽셀을 변경한다.

 

이러한 간단한 evolutionary 방법으로도 성공적인 attack이 가능하다는 것을 보여주었다.

또한 이러한 방식은 그 모델의 parameters나 gradient와 같은 어떠한 정보없이도 adversarial examples를 만들어낼 수 있었다. 오직 필요한 것은 target model이 예측한 labels의 확률(probabilistic labels by softmax) 뿐이다.

 

3.1.6 Carlini and Wagner Attacks(C&W)

defensive distillation에 대응해서 3개의 adversarial attacks이 제안되었다.

이 attack들은 $l_2, l_{\infty}, l_0 norms$에 의해 perturbation을 제한하여 인지할 수 없도록 만들었고, defensive distillation을 완벽히 돌파하여 attack을 성공시켰다.

 

게다가 불안정적인(un-distilled) 모델에서 만들어진 adversarial examples가 안정적인(distilled) 모델에서 잘 동작하였고, 이것은 계산된 perturbation이 black-box attack에 적합하다는 것을 보여주었다.

 

추가로 transferability를 이용하여 black-box attacks을 만드는 "Zeroth Order Optimization"도 발표되었다. 이 논문은 CW attack을 base로 만들어졌으며 target model의 gardient를 직접 측정하는 attack이다.

 

3.1.7 DeepFool

이 알고리즘은 iterative 방식으로, minimal norm adversarial perturbation을 계산한다.

 

알고리즘 DeepFool은 decision boundaries에 의해 제한된 영역에 있다고 추정되어지는 clean image로 초기화 된다.

 

각 iteration마다 image는 작은 vector에 의해 변형되고, 이 vector는 그 이미지가 존재하는 region의 boundaries를 선형화하여 얻어진 다면체의 boundary에, 결과로 나온 image를 보내어 계산된다.

 

perturbation은 attacked image가 오분류를 일으키는 최종 perturbation을 찾을 때까지 축적되어진다.

 

위 알고리즘은 FGSM과 비슷한 fooling ratio를 가지면서 더 작은 perturbation을 찾을 수 있다는 것을 보여주었다.

 

3.1.8 Universal Adversarial Perturbations

FGSM, ILCM, Deepfool같은 방식의 경우 이미지 하나마다 perturbation을 계산해야하지만, universal adversarial perturbations은 어떤 이미지든 간에 높은 확률로 DNN을 속일 수 있다. 또한 여전히 다른 방식과 같이 사람 눈으로는 인식할 수 없게 미세한 값만을 가진다. 

 

universal perturbations는 다음과 같은 constraint를 만족시킨다.

$$P_{I_c}\left(C(I_c) \neq C(I_c+\rho)\right) \ge \delta, \ \ s.t. \ ||\rho||_p \le \xi \ ...(6)$$

 

여기서 P(.)는 확률, $\delta \in (0,1]$은 fooling ratio, $||.||_p$는 $l_p-norm$ 그리고 $\xi$는 사전 정의된 상수이다.

perturbations는 $\delat$와 $\xi$의 영향을 크게 받는다. 

 

저자는 $l_2$와 $l_{\infty}-norm$으로 제한하여 universal perturbations를 계산하였고, 최신 classifier 모델들에 대해서 심각한 fooling ratio를 내었다. iterative 방식은 deepfool 방법과 관련이 있는데, data point를 점점 decision-boundary 방향으로 밀어내는 방식으로 작동한다. 그러나 이 경우에는 모든 training data가 순차적으로 각 각의 decision boundaries로 밀려져야하고, 모든 이미지에 걸쳐 계산된 perturabtion 또한 (6)번 조건을 충족하는 영역으로 back-projecting하면서 점차 축적되어지게 된다.

 

이 알고리즘은 한 모델(ResNet)을 타겟으로 하여 perturbation을 계산하였는데, 이 perturbations는 다른 네트워크에도 어느정도 잘 동작하게 만들어졌다고 한다(특히 architecture가 비슷할 수록).

 

이런 점에서 저자는 "doubly universal"이라고 불렀다(모든 이미지에 대해서, 또 여러 모델에 대해서 attack 가능하므로).

 

게다가 오직 2000개의 training images를 이용하여 만든 perturbation으로 0.5이상의 fooling ratio를 만들어낼 수 있다는 것을 보였다.

 

이를 응용하여 univeral adversarial examples를 feature maps의 Jacobian metrices singular vectors로써 만들어낸 논문도 발표되었다. 이는 적은 수의 이미지만으로 상대적으로 높은 fooling rates를 얻을 수 있게 된다.

 

또 다른 방식으로는, "fast-feature-fool"이 있으며, 이는 data와 독립적인 universal perturabtions를 만들어낸다.

 

3.1.9 UPSET and ANGRI

UPSET: Universal Perturbations for Steering to Exact Targets과 ANGRI : Antagonistic Network for Generating Rogue Images 두개의 black-box attack 알고리즘이 발표되었다.

 

UPSET은 n개의 클래스에 대해, n개의 image-agnostic perturbations를 만들어낸다.

이 perturbations는 target class에 target class에 속하지 않은 image에 더해져서, 이 attacked image는 classifier에 의해 target class로 분류될 것이다. 

 

UPSET 알고리즘의 강력함은 residual generating network R(.)에서 나온다. 전체적인 방식은 UPSET network라 불리는, 다음 optimization problem을 풀어내는 것이다.

 

$$I_{\rho} = max(min(sR(t) + I_c, 1, -1)$$

 

여기서 t는 target class이고, R(t)는 computed perturbation, s는 scalar 값이다. clean image $I_c$는 [-1, 1] 사이로 normalize되고, 식에서 알 수 있듯이 perturbed image도 위의 범위에 오도록 clip되어진다. 

 

UPSET과 비교해서, ANGRI는 image-specific perturbations를 가진다. 이 perturbations 또한 target class로 모델을 속이는데 사용된다. 

 

3.1.10 Houdini

"task loss"를 사용하는 gradient-based learning machines에 적합한 Houdini라는 알고리즘이 제안되었다.

기존 알고리즘들은 미분 가능한 loss function의 gradient를 이용하여 perturbation을 만들었는데, task losses의 경우 위와 같은 접근을 하기 쉽지 않다. 예를 들어, speech recognition에서 사용되는 word-error-rate기반의 task loss의 경우, loss function의 gradient를 직접 이용하는 것이 불가능하다. 이런 경우에 houdini가 adversarial examples를 만들어내는데 적합하게 사용될 수 있다.

 

Houdini는 classification외에도 speech recognition과 human pose estimation에서도 성공적인 attack을 보였다.

 

3.1.11 Adversarial Transformation Networks(ATNs)

다른 target-network에 대한 adversarial examples를 만들어내기 위해 feed-forward neural network를 학습시키는 알고리즘이다.

 

adversarial examples는 두 parts로 합쳐져 있는 joint loss 함수를 최소화함으로써 계산되어진다.

첫번째 part는 perturbation에 의한 변화가 사람 눈으로 인식할 수 없도록 restriction을 주는 부분이고, 두번째는 target network의 예측 값을 바꾸는데 집중하는 부분이다.

 

비슷한 방식으로, black-box attack에 대한 adevrsarial examples를 훈련하는 neural network가 개발되었다.  발표된 결과에 의하면 adversarial examples가 clean image와 거의 구별이 가지 않지만 압도적인 확률로 target network를 속일 수 있다고 한다.

 

6. Defenses Against Adversarial Attacks

adversarial attack에 대한 defense는 크게 다음과 같이 3개의 방향으로 나뉘어져있다.

  1. training method를 수정하거나 input을 수정하여 사용하는 방법.
  2. network 자체를 수정하는 방법(ex. layers나 sub-networks를 추가하는 방법과 loss/activation function을 바꾸는 법)
  3. "network add-on"으로써, 외부 모델을 사용하는 법.

첫번째 방식은 모델을 학습시키는데 직접적으로 관여하지 않지만, 그 외 두개 방식은 neural network 자체에 좀 더 관련되어져있다.

 

이 3개의 카테고리 안에서 2개의 타입들로 한번 더 나누어질 수 있다.

  • complete defense
  • detection only

complete defense는 target network가 adversarial examples에 대해서 제대로 된 결과를 얻도록 만들어준다.

다른 방식으로 detection only는 잠재적 adversarial examples에 대해, 이후의 과정에서 제외되도록, 경고 신호를 내보내는 것을 의미한다.

 

modifying network와 add-on의 차이

전자는 train중에 DNN architecture와 parameters를 바꾸고, 후자는 test중에, 원래 모델은 그대로 유지하면서 외부 모델을 추가한다.

 

 

6.1 Modified Training/Input

6.1.1 Brute-force adversarial training

딥러닝이 Adversarial attack에 대해 취약하다는 사실이 밝혀지고, 여러 연구를 걸치면서 adversarial training을 통해 DNN의 Robustness를 향상시킬 수 있다는 것을 알게 되었다. 

 

그래서 새로운 adversarial attack을 발표하는 대부분의 연구에서, 동시에 그 attack에 대한 adversarial training이 같이 제안되었다. 

 

adversarial training은 DNN의 robustness를 향상시킬 수 있었지만, 효과를 제대로 보기 위해서는 강한 attack을 사용해야하고, network architecture 또한 충분히 컸어야만 했다. 이렇게 adversarial training이 training과 data size의 증가를 필요로하기 때문에 "brute-force" 방식이라고 불린다.

 

brute-force adversarial training은 보통 regularizing효과도 함께 보인다. regularizing은 과적합을 줄여주며 결국에는 adversarial examples에 대한 DNN의 robustness를 향상시키는 결과를 낳는다.

 

이러한 관점에 영향을 받아, neural network의 output distributions을 smooth하게 만드는 "Virtual Adversarial Training"이 발표되었고, 비슷하게 input image의 작은 왜곡에 대한 neural network의 robustness를 향상시키는 "stability training"도 제안되었다. 

 

마지막으로 흥미롭게, adversarial training이 DNN의 robustness를 향상시킨다고 알려져있는데, 이미 adversarially trained networks에서도 효과적인 adversarial examples를 만들어내는 것이 가능하다고 발표되었다.

 

6.1.2 Data Compression as defense

가장 인기있는 classification datasets들은 JPG images로 되어있다는 것을 발견하였다.

이러한 점에서 착안하여, FGSM으로 계산된 perturbation에 대한 JPG compression의 효과에 대해 연구하였다. 

 

이 논문에서 JPG compression은 실제로 FGSM perturbations에 대해 큰 폭으로 classification 정확도 저하를 막을 수 있다고 발표되었다. 이러한 결과에도 불구하고, compression만으로는 효과적인 defense는 불가능하다는 것이 결론이었다.

 

다른 연구로도 JPEG compression을 이용하여 여러 성과를 내었는데, 이러한 연구들 중 stronger attack(ex. C&W attack)에 대한 분석은 전혀 없었다. 게다가 adversarial examples는 JPEG compression의 영향을 받지 않을 수 있다는 연구결과도 발표되었다.

 

Discrete Cosine Transform(DCT)에서 사용된 compression 또한, universal perturbations에 대한 defense로는 부적절하다는 것이 알려졌다.

 

compression based defense에 가장 주요한 문제중 하나는, larger compression은 clean image에 대한 classification 정확도 감소를 야기하고, smaller compression은 보통 adversarial perturbation을 제대로 제거하지 못한다는 것이다.

 

다른 접근 방식으로, Principal Component Analysis(PCA) 방식으로 input data를 compression하여 adversarial robustness를 높이는 방식이 있었는데, 이러한 compression 또한 이미지의 spatial structure에 영향을 미쳐 performance가 저하될 수 있다고 발표되었다.

 

6.1.3 Foveation based defense

foveation 메커니즘을 사용하여 L-BFGS와 FGSM으로 만들어진 adversarial examples에 대한 모델의 robustness를 향상시킬 수 있다고 발표하였다.

 

foveation 메커니즘이란, neural network를 이미지의 다른 영역에 적용시키는 것을 말한다. (아래 내용을 더 봐보자)

 

여기서 foveation이란, 이미지를 resize하거나 crop, translation하여서 이미지 내 object에 변화를 주는 것을 말하는 것 같다. 

 

이들은, Image-net과 같은 아주 큰 데이터셋을 이용하여 학습한 CNN기반 classifier는 객체의 scale과 translation variations에 대하여 일반적으로 robust하다고 가정하였다.

 

그러나 adevrsarial patterns는 위와 같은 "불변성"을 가지고 있지 않기때문에 adversarial attacks의 효과를 줄이는데 foveation이 좋은 역할을 해줄 것이라고 주장하였다. 그러나 이 방법 또한 아직 더 powerful attacks에 대해서는 효과를 증명하지 못하였다.

 

6.1.4 Data Randomization and Other methods

adversarial examples에 대한 random resizing으로 그 효과를 줄일 수 있다는 결과가 나왔다. 그리고 random padding을 더해주는 것 또한 fooling rate를 줄여준다고 한다. 이와 비슷하게 Data augmentation도 조금이지만 neural network의 robustness를 높이는데 도움이 된다고 한다.

 

6.2 Modifying the network

먼저 complete defense에 대해 다루고, detection only는 6.2.8절에서 다루기로 한다.

6.2.1 Deep Contractive Networks

Denosing Auto Encoders는 adversarial noise를 줄일 수 있지만, 기존 network에 덧붙이게 되면 오히려 perturbations에 취약하게 된다고 알려져 있다. 

 

이러한 점을 기반으로, DCN은 training 절차에서 Contractive Auto Encoders와 비슷한 smoothness penalty를 사용한다(비슷한 input은 같은 menifold에 놓이도록 함).

 

DCN은 L-BGFS 기반 attack에는 잘 동작한다는 것이 증명되었지만, 그 이후의 attack에 대해서는 알려진 바가 없음.

 

6.2.2 Gradient Regularization/Masking

input-gradient regularization으로 adversarial robustness를 높일 수 있다고 한다.

그들은 perturbed image에 대해 variation 정도에 penalty를 주면서 output을 생성한다.

 

이로인해, 작은 adversarial perturbations는 훈련된 모델의 output에 거의 변화를 주지 못하게 됨으로써 robustness를 향상시킨다. 

 

위 방식은 brute-force방식과 결합해서 사용하면 FGSM이나 JSMA 계열의 attack에 매우 강한 모델을 만들 수 있다. 하지만 거의 두배로 network의 training 복잡도가 늘어나기 때문에 사용하기 힘들다.

 

이전에 robustness를 위해 input에 대한 loss function의 gradient를 penalizing하는 개념을 사용한 적이 있다. 이와 비슷하게, adversarial examples에 대한 model의 loss를 최소화하는 방식으로 neural network의 local stability를 향상시키는 방식이 제안되었다. 그들은 원래 data 대신에 worst-case adversarial examples에 대한 모델의 loss를 최소화시켰다.

 

6.2.3 Defensive Distillation

distillation 개념을 이용하여 adversarial attacks에 대한 robustness를 향상 시키는 기법이다.

distillation이란, 더 복잡하고 큰 network로부터 간단하고 작은 network로 knwoledge를 전이하는 방법이다. 

 

이 방식에서 knowledge는 class probability vectors 형태로 뽑아지고, 다시 원래 모델을 학습시킬 때 사용된다. 그렇게 함으로써 작은 perturbation에 대한 모델의 회복력이 높아진다고 한다.

 

게다가 추후작업으로 논문에서 마주한 수많은 불안정성을 해결나가면서 확장되었다.

 

하지만 Carlini and Wagner(C&W) attack에 의해 defensive distillation이 돌파당했다고 알려져있다.

 

6.2.4 Biologically inspired protection

높은 비선형 activations로 adversarial attack에 대해 모델이 자연스러운 robustness를 가질 수 있다고 증명하였다.

다른 기법인 Dense Associative Memory models 또한 같은 원리를 사용하여서 잘 동작하였다.

 

Goodfellow가 제안한 linearity 가설을 살펴보면, activations의 선형적인 효과로 neural network의 adversarial examples에 대한 취약성이 강해지는 것을 알 수 있다.

 

따라서 computations의 수치적 한계로 인해 "biologically inspired protection"을 위 attack이 뚫을 수 없다고 얘기한다.

반대로 그러한 computations를 안정화할 수 있다면 성공적으로 attack을 할 수 있을 것이라 말하고 있다.

 

6.2.5 Parseval Networks

network의 global Lipschitz constant를 조절하여서 layer-wise regularization을 이용한다.

network란 각 layer에서의 function들로 구성되어 있으므로, 이의 robustness가 이러한 function들의 작은 Lipschitz constant를 유지함으로써 향상될 수 있다고 주장하였다.

 

network의 weight metrics의 스펙트럼 규범을 조절하여 "parseval tight frames"로 parameterizing한다.

 

6.2.6 DeepCloak

classification을 다루는 layer전에 masking layer를 넣는 것을 제안하였다.

이 masking layer는 forward-pass로 clean image와 adversarial image를 모두 넣어 학습되고, 이전 layer에서의 두 이미지 간에 output features 차이를 담게 된다. 이 추가 layer에서 가장 큰 weights를 network의 가장 민감한 feature라 가정하고, classification 때 0으로 masking되게 된다. 

 

6.2.8 Detection Only Approches

SafetyNet

adversarial examples가 기존 clean image와 다른 relu patterns을 만들어낸다는 가설이 제안되었다.

이런 가설을 기반으로, Radial Basis Function SVM classifier를 target model에 추가하였고, 이 SVM은 network의 마지막 Relu에서 계산되는 discrete code를 사용하였다. 

 

SVM을 사용하여서, Test-set에서의 나온 discrete code와  training sampels의 discrete code를 비교함으로써 perturbation을 감지할 수 있었다.

 

Detector subnetwork

adversarial pertuabations를 탐지해내는 binary classification subnetwork를 target network와 함께 사용하는 방식을 제안.

 

이러한 subnetwork를 내부 layers로 추가하는 것과 adversarial training이 FGSM, BIM과 DeepFool방식으로 만들어진 examples를 탐지하는데 도움을 준다고 말한다.

 

하지만 counter-counter 방식에는 여전히 취약하다는 것으로 알려져있다.

 

Exploiting convolution filter statistics

말그대로 CNN 가반의 convolution filters의 statistics를 사용하여 clean image이미지인지 adversarial 이미지인지 탐지하는 알고리즘이다. 

 

cascade classifier가 이 statistics로 만들어졌다고 하니, Haar feature selection을 사용하는 것인가

 

Additional class augmentation

모든 adversarial examples를 class로 두어 분류하도록 증강하는 기법.

 

6.3 Network Add-ons

6.3.1 Defense against Universal Perturbations

Universal perturbations에 대응하는 framework를 제안.

이 framework는 target network에 pre-input layer를 추가함으로써 perturbed image를 바로 잡아준다. 

이 pre-input layer는 "Perturbation Rectifying Network(PRN)"이라고 불리며, target network의 parameter update없이 학습되게 된다.

training image에 대한 PRN의 input-output difference로부터 feature를 추출하여 여러개의 detector가 만들어진다.

 

test 시에는, 먼저 image가 PRN으로 들어가고, output으로 나온 feature를 사용하여 perturbation을 탐지한다.

만약 perturbation이 탐지되었다면, 위의 features는 test image를 분류하는데 사용된다.

 

밑 사진에서 보이는 removed patterns를 이용하여 detection을 하게 된다.

 

6.3.2 GAN-based Defense

GAN을 사용한 Defense방법을 제안.

generator가 network에 대한 perturbation을 생성하고, classifier(determinator)는 clean image와 perturbated images를 올바르게 분류하는 방향으로 훈련.

 

나중에 나온 논문으로 generator가 perturbed image를 바로 잡아주는 역할로써 사용한다.

 

6.3.3 Detection Only approches

Feature Squeezing

두 가지의 external model을 사용하였고, 이들은 이미지의 각 픽셀의 color bit depth를 줄이고, 이미지에 대한 spatial smoothing을 하였다. original image와 squeeze image에 대한 target model의 예측 값이 비교되고, 이 예측 값이 크게 차이가 난다면 adversarial examples라고 간주하였다. 이 방법은 C&W와 같은 강력한 attack에도 합리적으로 잘 작동한다는 것이 증명되었다. 

 

MagNet

clean image와 adversarial image를 분류하기 위해 하나 또는 두개 이상의 externel detector를 사용.

이 network는 clean images의 manifold를 학습하는 방향으로 진행된다.

test 시에는, 이 manifold와 멀리 떨어져있으면 adversarial examples라고 간주되어 거부된다.

manifold와 가까이 있는 이미지는 manifold에 놓이도록 다시 형성되며, 이 이미지를 classifier에게 넘기게 된다.

 

이렇게 manifold와 멀리 있는 이미지는 떨어트리고, 가까이 있는 이미지는 끌어들이는 개념에 영감을 받아 MagNet이라고 칭하게 되었다. 하지만 C&W attack에서 아주 조금 큰 perturbations를 사용하여 돌파할 수 있다고 알려져있다.