적대적 공격(Adversarial attack) 이란 딥러닝 모델의 취약점을 이용하여 만든 공격 방법으로, 특정 노이즈값을 이용해 의도적으로 오분류를 이끌어내는 입력값을 만들어 내는 것을 의미합니다. 논문 내 이미지를 통해 예를 들어보면
왼쪽 이미지는 누가 봐도 판다 사진이죠. 가운데 노이즈 이미지는 사람이 보기에 전혀 의미가 없는 이미지 처럼 보입니다. 그러나 가운데 노이즈는 특정 feature 값을 가지고 있는 의도적으로 만들어낸 노이즈이고, 실제로 왼쪽의 판다와 가운데 사진을 더해서 만든 사진이 오른쪽 사진인데, 육안으로 보기에는 똑같아 보이지만 오른쪽 사진은 gibbon, 긴팔 원숭이로 딥러닝 모델이 분류하고 있는 겁니다. 즉 딥러닝 모델은 사람보다 훨씬 자세하게 이미지의 정보를 학습하기 때문에, 인간이 구분할 수 없는 feature 들도 학습합니다. 이 맹점을 이용해 사람의 눈에는 구분이 없어 보이는 데이터를 속여서 학습시켜 딥러닝이 오분류를 하도록 하는 방법이 적대적 공격입니다.
이 때 오른쪽 판다 사진처럼 머신러닝 시스템을 속이기 위해 제작된 입력 값을 적대적 예제(Adversarial Example) 이라 합니다. 또한 가운데 노이즈 사진처럼 모델이 오분류를 하게끔 하는 노이즈 이미지를 적대적 패치(Adversiral Patch)라고 부릅니다. 본 논문에서는 이러한 Adversarial example 을 만드는 기법 중 하나인 FGSM(Fast Gradient Sign Method) attack에 대해 소개합니다.
Abstract
신경망을 포함한 여러 기계학습 모델들은 적대적 예제(Adversarial example)를 잘못 분류합니다. 즉 데이터 세트에 위의 예시처럼 의도적으로 형성된 입력에 의해 모델이 높은 신뢰도로 오답을 출력하게 됩니다. 이 현상을 설명하려는 초기의 시도는 비선형성과 overfitting 이었습니다. 본 논문에서는 그 이유가 아닌 다른 이유로 고차원 공간의 선형성이 adversarial examples에 영향을 미친다고 주장합니다. 이에 대한 설명은 새로운 정량적인 결과를 통해 뒷받침됩니다. 또한 적대적 예제를 생성하는 간단하고 빠른 방법도 제공합니다. 이 접근 방법을 사용해 MNIST dataset에서 실험을 진행합니다.
Introduction
이전 연구[ Intriguing Properties of Neural Networks(2014) ]에서 SOTA 신경망을 포함한 기계 학습 모델이 적대적 예제에 취약하다는 것을 밝혔습니다. 즉 적대적 예제를 사용한 머신 러닝 모델은 올바르게 분류된 예제와 약간 다른 예제를 완전히 잘못 분류합니다. 적대적 예제란, 모델 내에 교란을 일으켜 높은 confidence로 오분류를 하도록 하는 것을 뜻합니다. 여기서 더 놀라운 사실은 특정 훈련 데이터를 여러가지 아키텍처로 학습시키더라도 하나의 적대적 예제가 존재한다면 모든 아키텍처가 똑같은 적대적 예제에 대한 오분류를 한다는 점입니다. 이는 학습 알고리즘의 근본적인 맹점입니다.
이러한 현상의 원인은 알려지지 않았으며, 초기에 추측하기로는 딥러닝 신경망의 비선형성, insufficient model averaging, insufficient regularization 때문이라고 생각하였습니다. 본 논문에서는 이런 추측된 가설들이 불필요하다는 것을 보여줍니다. 고차원 공간에서의 선형성에 대한 설명만으로 적대적 예제를 야기하기에 충분합니다. (Linear behavior in high-dimensional spaces is sufficient to cause adversarial examples.) 즉 비선형성과 불충분한 정규화 등이 원인이 아니라고 주장합니다. 이러한 관점은 적대적 예제를 빠르게 생성하는 방법까지 설계할 수 있게 해주고 이 방법이 dropout만을 사용했을 때보다 더 추가적인 정규화를 제공할 수 있음을 보여줍니다.
Related Work
[ Intriguing Properties of Neural Networks(2014) ]에서는 적대적 예제를 만들기 위해 L-BFGS 기법을 사용했으나 이 기법은 시간이 많이 소요되고, 본 논문에서 제시하는 FGSM에 비해 상당히 비효율적입니다. 위 논문에서는 적대적 예제들의 특성을 아래와 같이 정리합니다.
- L-BFGS는 적대적 예제들을 잘 찾는다.
- 적대적 예제들은 인간의 눈으로 식별하지 못한다.
- 얕은 소프트맥스 회귀 모델은 adversarial model 에 취약하다.
- Adversarial model 에서의 학습은 모델의 정규화에 도움을 준다. 그러나 과다한 최적화 시간 때문에 효율적이지 않다.
The Linear Explanation of Adversarial Examples
이번 절에서는 선형 모델에서 발생하는 적대적 예제들에 대해 설명합니다. 많은 문제에서 개별적인 입력의 특징에 대한 정밀도가 제한(= 한계가 존재한다)됩니다. 예를 들어 디지털 이미지는 픽셀 당 8 bit만 사용하므로 $1/255$ 이하의 모든 정보를 버립니다. Feature에 대한 정밀도가 한계가 존재하기 때문에 adversarial input $\tilde{x} = x + \eta$ 가 있을 때, $\eta$(perturbation)의 값이 Feature들의 정밀도보다 작다면 $x$와 $\tilde{x}$는 동일하게 취급될 것입니다. [ 추가적인 설명으로 맨 위의 예시를 통해 이를 설명하면 가장 왼쪽 판다의 사진은 $x$, 중간의 패치는 $\eta$, 오른쪽 결과물이 $\tilde{x}$ 가 됩니다. ] adversarial input $\tilde{x}$ 에 내적곱을 취하게 된다면, 아래 식처럼 변형시킬 수 있습니다.
$$ w^T\tilde{x} = w^T x + w^T \eta $$
adversarial perturbation 은 $w^T \eta$ 에 의해 증가된 활성화를 야기합니다. Perturbation에 의한 변화가 육안으로 인지할 수 없을 정도로 작아야 하기 때문에 max norm constraint 를 사용합니다. max-norm이란 infinity-norm 이라고도 불리며, 각 원소의 절댓값 중 가장 큰 값을 취하는 방식입니다. 여기에 $\eta = sign(w)$를 적용합니다. sign 이란 부호 함수로 0보다 크면 1, 0보다 작으면 -1을 갖는 함수입니다. 이를 통해 $\eta$를 $-\epsilon$ ~ $\epsilon$로 제한합니다.
$$ ||\eta||_{∞} < \epsilon $$
Perturbation을 적용한 $\eta$는 sign 함수와 $\epsilon$을 곱한 값을 가집니다.(위 수식이랑 달라 헷갈릴 수 있는데, 뒤의 부분에서 설명이 나옵니다.) 즉 원래의 input $x$에 아주 작은 $\epsilon$값만 gradient와 같은 방향으로 더해주거나 빼줍니다. 엡실론은 정말 작은 값이라고 생각하시면 되고 엡실론이 곱해져도 정말 작은 변화를 의미합니다.
$w$가 $n$개의 차원이 있고 weight vector의 평균 크기가 $m$이라 할 때, perturbation에 의해 발생하는 activation 은 $\epsilon m n$ 만큼 증가하게 됩니다. 즉 $\eta = \epsilon sign(w)$라 할 때, $w\eta = \epsilon \times w \times sign(w) = \epsilon ||w||$ 이고, $w$가 $n$차원이고 원소들의 평균 값이 $m$이라면 $\epsilon m n$가 계산되는 겁니다.
말이 어려운데, 이 말은 곧 선형 모델에서 $w^T\eta$와 $ \epsilon m n$ 가 동일하다는 것을 의미합니다. 간단한 예를 통해 직접 계산하면서 이를 확인해보겠습니다.
$$ \begin{align*} & w = [3, 5, -7] \\ & \eta = sign(w) = [1, 1, -1] \\ & w^T \eta = 3 + 5 + 7 = 15 \\ \\ & \to n = 3 \\ & \to m = \dfrac{|3|+|5|+|-7|}{3} = 5 \\ & \to \epsilon m n = 15 \end{align*}$$
간단한 예를 통해 $w^T\eta$와 $\epsilon m n$이 같다는 것을 보였습니다. 이 둘의 동일성으로 인해 차원 $n$의 증가에 따라 $\eta$도 선형적으로 증가한다는 것을 알 수 있습니다. 이 말은 곧 $\epsilon$이라는 작은 값에 대한 변화가 고차원으로 갈 수록 더 큰 변화를 만들 수 있음을 의미합니다. 실제로 딥러닝 모델은 매우 고차원에서 연산이 이루어지므로 간단한 연산만으로도 엄청난 증폭을 일으킬 수 있습니다. 즉 정리하자면 비선형성이 없는 선형모델에서조차 $\epsilon$의 매우 작은 변화가 고차원인 경우에는 증폭되기 때문에 입력에서의 작은 차이가 최종 출력에는 큰 영향을 주어 적대적 예제가 나올 수 있다는 것을 보인 것입니다.
Linear Perturbation of Non-Linear Models
적대적 예제에 대한 선형적인 관점은 이를 생성하는 빠른 방법을 제안합니다. 본 논문에서는 신경망이 adversarial perturbation 에 저항하기에는 매우 선형적이라고 가정합니다. 기존의 신경망 모델들은 원활한 최적화를 위해 ReLU, LSTM, maxout network 등 linear 한 활성화 함수를 주로 사용해왔습니다. 여기서 "ReLU가 왜 선형이지?" 라는 생각이 들 수 있죠. 분명 선형함수는 아니지만, 그래프의 모양을 살펴보면 구간적으로 살펴보면 선형함수입니다. 따라서 너무 적대적인 perturbation을 견딜만큼 비선형이 아니라고 가정하는 것이죠. 이런 선형에 가까운 활성화 함수들을 사용하면 모델은 더욱 최적화하기 쉬워지는 반면 미세한 노이즈(perturbation)에도 취약해집니다. 그렇다고 sigmoid 같은 nonlinear model 들이 적대적 예제에 취약하지 않다고는 할 수 없습니다. 시그모이드 또한 가운데 부분(not-saturating)만 잘 살펴보면 선형에 가깝기 때문입니다. 즉 신경망은 생각만큼 non-linear 하지 않으며 linearity 때문에 adversarial 문제가 발생한다고 가정합니다.
$\theta$ : 모델의 파라미터
$x$ : 모델의 input
$y$ : 모델의 target value
$J(\theta, x, y)$ : cost function(loss function)
일 때, perturbation $\eta$를 다음 수식을 통해 구할 수 있습니다.
$$ \eta = \epsilon sign(\nabla_x J(\theta, x, y)) $$
이를 "Fast Gradient Sign Method(FSGM)" 이라 부르고, 그레디언트의 부호와 아주 작은 값인 $\epsilon$을 이용해 간단하고 빠르게 적대적 예제(Adversarial example) 를 만드는 방법입니다.
위 실험 결과와 같이 입력 이미지 $x$에 그레디언트 부호와 동일한 부호를 가진 0.007 값의 $\epsilon$을 더해 적대적 예제를 생성해서 테스트한 결과 높은 confidence로 전혀 다른 라벨을 출력합니다. 추가적으로 $\epsilon = 0.25$일 때, MNIST 데이터에 대해 평균 79.3%의 confidence 로 99.9%의 error rate를 가지고 같은 환경에서 maxout 네트워크는 평균 97.6%의 confidence로 89.4%를 잘못 분류했습니다. 마찬가지로 $\epsilon = 0.1$일 대, CIFAR-10 에 대해 평균 96.6% confidence로 87.15%의 error rate를 가졌습니다.
이런 단순하고 쉬운 알고리즘이 잘못 분류된 예제를 생성할 수 있다는 말은 곧 적대적 예제가 선형성의 결과라는 증거입니다. 알고리즘 또한 adversarial training의 속도를 높이거나 훈련된 네트워크를 분석하는데 유용합니다.
Adversarial Training of Linear Models Versus Weight Decay
Adversarial training은 이름 그대로 Adversarial examples를 training data로 사용해 학습하는 것입니다. 이를 weight decay랑 비교하기 위해 비교적 간단한 분류인 logistic regression에서 발생하는 adversarial training을 예로 듭니다. sigmoid 함수를 사용하는 $P(y=1)=\sigma (w^Tx+b)$, $y$가 {-1, 1}인 logistic regression의 loss function은 아래와 같이 정의됩니다.
$$ \mathbb{E}_{x, y~p_\text{data}} ζ (-y(w^Tx+b)) $$
이 때 Zeta $ζ (z) = \log (1+\exp(z))$ 로 softplus function 으로 정의됩니다. 이 내용은 간단한 로지스틱 회귀를 말하는 건데 추후 ML 카테고리에 포스팅을 하게 되면 링크를 걸어놓도록 하겠습니다.
위 식에 $x$ 대신 gradient sign perturbation에 근거한 $x$의 adversarial perturbation을 적용하면, 즉 $x$ 대신 cost의 그레디언트 방향만큼 더한 $x+\eta$를 대입하면 다음과 같습니다. 여기에 그레디언트의 부호는 $-sign(w)$와 같고, $w^Tsign(w)=||w||_1$ 를 사용해 식을 간략화 시킬 수 있습니다.
$$ \mathbb{E}_{x, y~p_{\text{data}}} ζ (y(\epsilon||w||_1-w^Tx-b)) $$
논문에는 명시되어 있지 않지만 간단한 전개 과정은 아래와 같습니다. 먼저 그레디언트의 부호가 $-sign(w)$와 같은 이유는 수식 그대로 넣어 전개해보면 바로 알 수 있듯 미분할 때 -가 나오기 때문에 그렇습니다.
$$ \begin{align*} \nabla_xJ(w,x,y) &= \nabla_x(1+\log(e^{-y(w^x+b))} \\ &= \dfrac{-yw \times e^{-y(w^Tx+b)}}{1-e^{-y(w^Tx+b)}} \end{align*} $$
그럼 그레디언트에 대한 sign을 잘 살펴보면 지수함수는 무조건 양수이기 때문에 분모는 양수, 분자에서도 부호를 결정 짓는 것이 $y$와 $w$입니다. $y$는 당연히 동일할 것이므로 - 부호가 하나 나오기 때문에 $sign(\nabla_xJ(w,x,y)) = -sign(w)$ 라는 결론이 구해집니다.
또한 위 식의 전개과정은 아래와 같습니다.
$$ \begin{align*} & \tilde{x} = x + \eta = x + \epsilon sign(\nabla_xJ(w,x,y)) \\ & sign(\nabla_xJ(w,x,y)) = -sign(w) \\ & w^Tsign(w) = ||w||_1 \\ \\ & -y(w^T\tilde{x}+b) \\ &= -y(w^Tx + \epsilon w^T sign(\nabla_xJ(w,x,y)) + b) \\ &= -y(w^Tx - \epsilon w^T sign(w) + b) \\ &= y(\epsilon||w||_1 - w^Tx - b) \end{align*}$$
위 식은 $L^1$ regularization 과 비슷한 형태를 띄고 있습니다. $\epsilon$과 비슷한 weight decay 항인 $\lambda$를 가지기 때문입니다. 그러나 중요한 차이점들이 있습니다. $L^1$은 일반적으로 feature selection의 기능이 있습니다. 즉 input이 다차원일 때 모든 차원에 대해 조금씩 움직이는 것이 아니라 몇개의 차원에 대해 크게 움직입니다. 반면 Max norm 은 모든 차원에 대해 조금씩 움직일 수 있습니다.
또한 weight decay 항인 $\lambda$는 부호가 반대로 $+$로 되어 있기 때문에 실험적으로 $\epsilon=0.25$ 로 설정하여도 Zeta가 Saturate 되어 좋은 값을 얻지만 반면 $\lambda$의 경우 0.0025 정도로 설정하여도 deactive 됩니다.
Adversarial Training of Deep Networks
Universal approximation theorem(참고할만한 글 링크)에 따르면 히든 레이어가 하나라도 있고, unit이 충분한 NN은 어떤 함수라도 특정 정도의 정확도를 얻을 수 있습니다. 하지만 UAT는 우리가 원하는 모든 disirabilities가 함수에 내장 되어있는지는 확인할 수 없습니다. 그 예시로 적대적 예제들이 우리의 함수에 존재하는지를 알 방법이 없습니다. 따라서 이를 학습과정에서 극복하는 방법을 설명합니다.
기존 Intriguing Properties of Neural Networks(2014) 에서는 adversarial과 clean example을 혼합으로 훈련시킨다면 NN이 어느 정도의 regularization을 보인다 주장했습니다. 위 논문에서는 L-BFGS 라는 방법을 통해 적대적 예제들을 훈련시켰는데 이 방법은 비용적으로 매우 expensive 하다는 단점이 있습니다. 앞의 FGSM을 이용해 이 한계를 극복할 수 있습니다. 학습 과정에 사용되는 식은 아래와 같습니다.
$$ \tilde{J}(\theta, x, y) = \alpha J(\theta, x, y) + (1-\alpha) J(\theta, x+\epsilon sign(\nabla_xJ(w,x,y))) $$
$\alpha = 0.5$ 로 설정해 실험했을 때 좋은 결과를 얻었습니다. 이 때 $\alpha = 0.5$의 의미는 clean / adversarial example 의 비율이 각각 절반 정도임을 뜻합니다. 이렇게 생성한 모델은 적대적 예제들을 막는 것에 효과적이었습니다.
결론적으로 adversarial training procedure 는 perturbation으로 인하여 발생하는 worst case error를 완화시켜줄 수 있고, 이전 논문에서의 L-BFGS 보다 빠르고 쉽게 adversarial examples 를 생성하는 FGSM을 이용하면 더 쉽게 adversarial training을 할 수 있습니다.
Reference : https://arxiv.org/abs/1412.6572