Slow is better than NOTHING

적대적 공격(Adversarial Attack)

적대적 공격(Adversarial Attack)과 방어 방법(Defense Mechanism) 소개

Jeff_Kang 2022. 1. 23. 23:27
반응형

적대적 샘플(Adversarial Examples)이란 공격자에 의해 의도적으로 딥러닝 시스템을 속이기 위해 교묘하게 제작된 결과물(output) 입니다. Machine intelligence 는 날이 갈수록 진화하고 있으며, 보다 정교하고 다양한 물체를 인간처럼 인식하는 것은 물론 인간과 상호작용하는 많은 어플리케이션들이 개발되었습니다. 하지만, 딥러닝(Deep Learning) 분야에서는 여전히 풀지못하는 난제 중 하나가 일반화(Generalization) 문제입니다.

Generalization이란, 딥러닝에 의해 구축된 시스템이 다양한 도메인(domain)에 잘 적응될 수 있는 능력을 일컫는데요, 예를 들어, 다음과 같은 두 개의 강아지 이미지가 있을 때 인간은 두 개의 이미지가 Style 정보는 다르지만 같은 "강아지(개)"라는 것을 인식할 수 있습니다. 하지만 Photo 스타일의 dog를 학습한 딥러닝 시스템은 Art style 에 좋은 Generalization performance를 보여주지 못하곤 합니다. 즉, Photo domain에 학습된 딥러닝 모델이 Art domain에 generalize되지 못한 상황이라고 볼 수 있습니다. 이는 딥러닝 모델이 Content 정보보단 Style 정보에 보다 민감하게 반응하는 경향성이 있기 때문입니다. 

좋은 딥러닝 모델(Good Model) 을 구축하기 위해서는 다양한 도메인에 큰 에러의 차이 없이 인간같은 인식 성능을 보여주어야합니다. 현실 세계에서 발생 가능한 domain adaptation문제 중 가장 일반적인 case인 노이즈(noise)에 대한 연구는 상당히 많이 진행되어왔습니다. 물체인식(Object Detection) 분야에서 현실 세계에서 발생 가능한 통계적 노이즈 분포를 다음과 같이 가정한 Imagenet Corrupted version인 ImageNet-C Dataset benchmark가 제안되기도 하였습니다.

ImageNet-C

이는 기존의 모델이 가질 수 있는 성능 하락 환경을 가정하고 이를 잘 극복할 수 있는지 평가(Validation)함으로써, security-sensitive application(예, 자율주행차, CCTV 감시체계 등)에서 fail-case를 찾아 이를 보완하여 성능을 올릴 수 있는 방법론들을 연구하고 있습니다. 위와같은 성능 하락환경에서도 좋은 성능을 보여주는 모델의 성능을 일반적으로 "Robustness"라고 표현합니다. 모델의 Robustness를 측정하는 방법론에는 크게 3가지가 있습니다. 

  • Robustness to Common Corruptions 
  • Robustness to Label Corruptions
  • Robustness to Adversarial Attack

본 포스트에서는 Adversarial attack에 대한 Robustness를 다룹니다.


Adversarial Attack

혹시 CleverHans(영리한 한스) 의 스토리에 대해 들어보셨나요? 1900년대에 독일의 한 마을에서 Hans라고 하는 말이 수학과 독일어를 할 수 있다는 사실이 알려지며 유명해졌습니다. 주인이 간단한 수학문제 예를 들어, 8 곱하기 3은 무엇이지? 라고 독일어로 물으면, Hans는 24를 말굽으로 바닥을 치면서 정답을 맞추었습니다. Hans의 주인 Wilhelm von Osten은 말에게 인간과 같은 지능이 있고 학문을 가르칠 수 있다고 주장하였습니다.

독일에서 태어난 말 Hans

사람들은 정답을 맞추는 말을 보고 그가 언어와 수학을 이해하고 문제를 풀었다고 생각했지만 실제로는 주인이 알려준 문제에 정답을 암기하여 주인의 작은 손짓 몸짓등을 보고 답을 유추한 것이였습니다. 따라서, 같은 곱셈이여도 배운적이 없는 숫자들의 곱셈은 풀지 못하였습니다.


CleverHans는 Adversarial Attack이 지적하는 딥러닝 모델의 문제점을 비유적으로 지적할 수 있는 좋은 스토리입니다. 우리는 딥러닝 모델이 인간보다 뛰어난 성능을 가졌고 앞으로도 더욱 발전하며 언젠가는 인간을 대체할 기술들이 도래할 것이라 기대합니다. 하지만 실제로 딥러닝이 동작하는 방식은 개발자에 의해 생성된 데이터셋으로 부터 input-output 관계를 도출해내기 위해 모델(cleverhans)를 훈련시키게 됩니다. 인간처럼 물체를 인식하는 딥러닝 모델의 발전은 머신이 영리하게 행동하는 것처럼 보이겠지만(Hans가 수학을 이해하고 푸는 것처럼) 머신은 그저 주어진 입력 값에 대한 scalar value로 부터 의미있는 semantic information을 도출해내는 과정(주어진 입력 값을 암기하여 추론)에 불과합니다. 또한 인간은 물체를 인식할 때 Global shape과 local texture feature를 동시에 고려하지만 머신은 픽셀값이 어떠한지만을 고려(Hans가 암기하는 과정에서 문제가 아닌 주인의 손짓,몸짓을 보고 답을 유추)합니다. 요약하자면, Adversarial Attack 학문에서는 현재의 딥러닝 모델이 실제로는 현실세계를 이해하고 인식하는 것이 아닌 그저 외운것에 불과하며 인간과 머신사이에는 여전히 의사결정 과정에서의 큰 차이가 존재한다고 주장합니다.

Adversarial Attack 이란, 모델의 Robustness를 평가하는 가장 일반적인 방법입니다. 일종의 악의적인 노이즈 분포를 가정하고 이를 입력값에 삽입함으로서 모델의 성능(예, Accuracy)이 하락하는지 여부를 평가합니다. 이미지 분류 모델을 구축할 때 CrossEntropy 와 이미지 데이터셋을 이용해 훈련된 모델의 결정 경계(Decison Boundary)가 아래와 같다고 가정해보겠습니다. 클래스 정보는 학습된 경계를 기반으로 구분되며, 모델이 잘 학습되었을 수록 많은 클래스를 정확하게 분류해낼 수 있습니다. Adversarial attack은 최적화 관점에서 모델의 오분류를 유도할 수 있도록 정교하게 제작된 노이즈($\delta$) 를 input image에 삽입함으로써 적대적 예제(Adversarial examples = $x_{adv}$)를 생성합니다. 주로 $\epsilon$ 이라는 norm-constraint를 통해 제한된 범주 내에서 모델을 교란시킬 수 있는 최적의 아웃풋 값을 찾는 것을 목표로 합니다. 

Adversarial Example

 

생성된 노이즈 $\delta$ 에 의해 입력 이미지는 훈련된 모델의 의사결정 경계를 넘을 수 있는 능력이 생기며, 최종적으로 오분류(Misclassification)을 초래하게 됩니다. 이러한 과정을 통해 생성된 적대적 예제는 다양한 연구 분야에 적용되어왔습니다. 그 중 재밌는 몇 가지를 소개해드리겠습니다.

1. Medical Diagnosis Fraud to get high reimbursement

의료 AI분야에서 이미지 인식 기술을 이용해 해당 사진이 정상(Benign) 인지 병변이 있는지(Malignant)인지를 판단하게 됩니다. 결과에 따라 보험료를 받을 수 있을지 없을지 또는, 적게 받을것인지 많이 받을지가 결정되게 됩니다. [1] 논문에서는 의료 AI분야에서 적용가능한 Adversarial Attack 예제를 소개하면서 Medical Data에서 Adversarial Attack이 적용이 가능하며 공격이 미치는 영향력이 상대적으로 클 수 있음을 지적하고 있습니다.

Adversarial Attack at Medical AI

2. Adversarial Glasses 

Adversarial Glasses는 현실 세계에서 발생 가능한 적대적 공격을 실험하였는데, 그 중 Face recognition분야를 대상으로 실험을 진행했습니다. 특정방법으로 생성된 Adversarial Glasses를 착용하면 완전히 다른 사람으로 Face recognition이 되어 얼굴 기반의 보안 시스템 (예, Face-ID)의 보안 이슈가 있을 수 있음을 시사하였습니다. 아래의 그림에서는 adversarial glass를 착용한 일반 성인 남성의 얼굴이 Jennifer Lopez라는 배우로 인식되고 있습니다. 

Adversarial Attack at Face recognition


Defense Mechanism

적대적 공격을 고려해야하는 이유?

방어방법을 소개하기에 앞서, 적대적 공격을 왜 고려를 해야하며 이것이 미치는 영향이 어떠한지 알아보겠습니다.

  • To defend against an adversary who will attack the system
    머신러닝을 이용해 개발된 기술은 누군가(예, Adversary)에 의해 공격을 받을 가능성이 있습니다. 이 공격자는 시스템이 오작동을 일으키는 것으로부터 그들은 큰 이익을 얻을 수 있습니다. 예를 들어, 위에 소개한 medical fraud의 경우 시스템의 오분류를 이용해 높은 금액의 보험금을 가져갈 수도 있습니다. 따라서, 서비스를 제공하기 전 adversary에 대한 공격 가능성을 염두해두고 보안 이슈에 대한 대비책을 고려해보어야 합니다.
  • To test the worst-case robustness of machine learning algorithms
    횡단보도에 불이 켜진 경우 자율주행 자동차는 신호를 보고 보행자가 지나갈 것이라 예상하여 속도를 줄이고 정차합니다. 하지만 지나가던 행인이 갑자기 방향을 틀어 무단횡단을 하기 위해 전력질주하는 상황의 불확실성(Uncertainty)은 자율주행 시나리오에서 자주 생기지 않습니다. 좋은 모델인지를 평가하기 위해서는 위와같은 시나리오도 커버가 가능하다! 라고 주장한다면 매우 좋은 모델이라고 인식하겠죠. 이렇듯, Adversarial example은 모델의 오분류를 위해 의도적으로 제작된 샘플로서 이를 방어할 수 있는 모델이라면 worst-case 입장에서 보안성이 입증되었기에 다른 악의적인 조작에도 어느정도 방어가 될 것이다라는 강력한 증거를 가질 수 있게 되는것입니다. 
  • To measure progress of machine learning algorithms towards human-level abilities
    딥러닝 기술의 발전으로 때로는 딥러닝이 인간의 인지 성능을 뛰어넘었다고는 하지만 여전히 설명할 수 없는 차이가 존재함은 분명합니다. 앞서 설명드린 style정보값의 변경으로 예측을 실패하는 generalization error는 대표적인 케이스라고 볼 수 있습니다. Adverarial attack은 인간과 머신의 의사결정 과정이 전적으로 다름을 관통하며 adversarial example에 대한 robustness를 강화함으로서 인간과 얼마나 비슷한 성능을 가질 수 있는지에 대한 척도가 될 수 있음을 시사하고 있습니다.

 

적대적 공격 방어 방법(Defense mechanism against Adversarial Attack)

적대적 샘플의 존재가 발견되고 다양한 도메인에 적용가능한 취약점을 갖고 있기에 그에 상응하는 방어방법들도 제안되었습니다. 방어 방법은 크게 Adversarial Training(이하 적대적 훈련)과 Pre-processing(이하 전처리) 방식으로 나뉩니다. 그 중 본 포스트에서는 Adversarial Training에 대해서 간략히 소개하겠습니다.

1. Adversarial Training

적대적 훈련이란 딥러닝 모델의 훈련 과정에서 적대적 샘플을 생성 후 학습시켜 적대적 공격에 대한 Entropy를 최소화 시킬 수 있는 일종의 Data Augmentation 방법입니다. Madry LAB에서는 적대적 공격을 universal 하게 가정하기 위한 PGD(Projected Gradient Descent) attack을 제안하였고, $L_\infty$ constraint에서 강력한 robustness를 보여주는 모델을 구축하였습니다. 

PGD adversarial training

PGD (untargeted) attack으로 인해 생성된 $\delta$ 가 input $x$에 더해지면서 $x_{adv}$ 가 생성되는데 이때 $\delta$는 ground-truth label $y$ 에 대해 CrossEntropy loss가 "최대화"되는 방향으로 결정됩니다. 이렇게 생성된 $x_{adv}$에 대해 모델은 다시 ground-truth label $y$에 대한 CrossEntropy loss를 "최소화" 하는 방향으로 훈련됩니다. 위와같은 Min-Max Game을 훈련 과정동안 반복함으로서 모델은 적대적 샘플에 대한 Robustness를 학습할 수 있게 됩니다. 

* 적대적 훈련의 장점

적대적 훈련은 사실상 적대적 공격에 대한 가장 간단하면서도 효과적인 대응방법입니다. 보지 못한 분포에 대한 오분류를 일으켰다면 그 분포를 학습시켜준다면 해결됩니다. 하지만 다양한 adversarial attack을 대표할 특성을 가진 universal adversary의 부재는 적대적 훈련을 통해 네트워크를 강화시킨다기보단  "적대적 공격에 취약하다면 그것을 같이 학습시키면 되는것 아니야?" 라는 연구자들의 intuition을 충족시키는 연구들이 지배적이였습니다. PGD adversary의 등장으로 적대적 훈련이 다양한 종류의 attack 에 대해 상당히 잘 generalization되었고 black-box, white-box에 걸쳐 주목할만한 성능 변화를 보여주었습니다. 

* 적대적 훈련의 단점

비록 PGD 기반의 적대적 훈련 방식이 다양한 영역의 adversarial attack에 대해 일관되고 신뢰할만한 성능을 달성하였지만, 적대적 훈련 방식에는 무시하지 못할 단점이 있습니다. 바로, clean accuracy 와 robust accuracy간의 trade-off 관계가 존재한다는 것입니다. 다음 내용은 TRADE 논문에 이론적으로 풀이되어 있습니다. 간단히 요약하자면, 적대적 샘플에 대한 Robustness가 증가할 수록 원본 이미지에 대한 정확도는 감소하며, 반대도 동일합니다. 

Adversarial Robustness vs Clean Accuracy Trade-Off 

위 실험 결과는 trade-off를 설명할 수 있는 Madry 논문에 소개된 PGD-adversarial training 모델의 성능 변화입니다.

  • Natural : 원본 데이터를 원본 라벨과 훈련(일반적인 모델 훈련 방식)
  • FGSM training : FGSM adversarial attack을 이용한 적대적 훈련 모델
  • PGD training : Madry가 고안한 universal adversarial attack을 이용한 적대적 훈련 모델
  • Simple/Wide : 모델의 Capacity를 표현하는 방식으로 Simple은 일반 ResNet, Wide는 Wide-ResNet을 의미합니다.

표의 (a) 에서 Standard training의 경우 FGSM/PGD attack에 대해 상당히 취약한 성능을 보여주는 반면 natural(원본 샘플) 에 대해서는 90% 이상의 높은 성능을 보여주고 있습니다. (b)의 경우 FGSM adversary를 이용해 훈련한 모델의 경우 FGSM 공격에는 상대적으로 우수하지만 PGD공격에는 효과적이지 못합니다. 즉, 특정 공격에 상당히 overfiting 된것으로 볼 수 있습니다. (c)의 경우 PGD 공격은 FGSM/PGD 공격에 비교적 일관된 Robustness를 보여주었습니다. 여기서 주목할 점은 Natural accuracy가 상당히 감소되었다는 점입니다. (92.7% --> 79.4% at Simple, 95.2% --> 87.3% at Wide) 

적대적 공격에 대해 0.8%-->43.7% 등 비교적 상당한 성능변화를 이끌었지만 원본 이미지 또한 제대로 분류할 수 없어지는 현상이 생기게 됩니다. 이러한 특성은 현실 세계에 적용되는 다양한 딥러닝 기반의 application에 적대적 훈련 모델을 적용하기가 상당히 힘들어지는 문제점이 발생합니다. 또한, iterative 방식의 PGD adversarial example은 생성하는 과정에서 backpropagation을 여러번 하기 때문에 computational cost 또한 무시하지 못하기 때문에 큰 Dataset (예, ImageNet, GPT-3 등) 으로의 확장성이 다소 떨어지는 문제가 있습니다. 

 

적대적 훈련 방법 이외에도 전처리 방식(preprocessing)의 방법론들도 많이 등장했습니다. Natural Accuracy를 잘 보존해주는 장점이 있었지만, 다양한 공격 방법들에 적용이 불가능한 Generalization 문제점이 대두고 BPDA 공격과같은 Gradient-free attack에 대한 방법론의 등장은 Non-differentiable method들에 대해서도 완벽하지 못함을 크게 시사해주었습니다.

 


Adversarial Attack이라는 특수한 연구분야는 아직 Academical level에 남아 있습니다.Industry에 종사하고 있는 입장에서 해당 연구 분야에 대한 Applicability는 상당히 회의적입니다. 하지만, 이 연구분야는 끊임없이 Machine Learning model이 완벽하지 않을 수 있음을 실험적으로 지적하고 인간과 비슷한 수준의 성능을 내기 위해 어떠한 점을 고려해야하는지에 대한 방향 제시는 여전히 흥미롭습니다. 추후 연구 논문들에서는 이들이 "왜" 실패를 이끄는지에 대한 연역적 또는 귀납적 추론이 있는 논문을 읽을 수 있으면 좋겠네요. 

모두가 좋다고 주장하는 AI 모델이 사실은 그렇지 않을 수 있다는 점을 연구한다는것 자체가 AI 연구분야에서 "Adversarial Learning" 이 아닐까 싶습니다. 이 연구 분야에서 나온 새로운 Observation들이 기존의 모델이 실패하는 부분을 찾아내고 보완책을 제시할 수 있게 된다면 아마도 인지분야 AI 모델에서 큰 영향력을 행사할 수 도 있지 않을까 싶습니다.

반응형