머신러닝/불확실성

Adversarial Attacks and Defenses

망나 2020. 3. 23. 16:40

Adversarial Attack

 

Adversarial Attack과 Defense를 설명하기 위해 아래 그림을 인용하는 것이 가장 직관적으로 이해하기 쉬울 것 같습니다.

 

Goodfellow, Ian J., Jonathon Shlens, and Christian Szegedy. "Explaining and harnessing adversarial examples"

 

위 그림을 우리 눈으로 보면 좌, 우측에 판다가 있고 중앙에 노이즈처럼 생긴 그림이 있습니다.. 문제는 좌측의 판다를 57.7%의 신뢰도로 "판다"라고 분류 가능한 분류기가 있다고 가정할 때, 공격자는 중앙에 보이는 것과 같은 노이즈를 주어 우측 판다 이미지를 합성하게 됩니다. 그 결과 우측 판다 이미지는 우리에게는 여전히 "판다" 이미지로 보이지만 이전의 동일한 분류기로 이미지 식별 결과 99.3%의 신뢰도로 "긴팔원숭이"로 판단하게 된다는 것 입니다. 

 

즉, 사람이 구분할 수 없는 노이즈를 이미지에 합성시켜 인공지능이 잘못된 예측을 하도록 유도할 수 있다는 의미입니다.

 

이게 무슨 문제를 유발할까요?

 

인공지능은 생각보다 우리 실생활에 가까워져 있습니다.. 요즘 대부분의 사람들이 얼굴인식을 통한 보안 설정을 많이 사용하고 있습니다. 위 기술을 이용하면 아래 보이는 그림의 좌측 남자를 우측의 여배우로 인식하도록 우리의 모델을 속일 수 있습니다. 

 

Sharif, Mahmood, et al. "Accessorize to a crime: Real and stealthy attacks on state-of-the-art face recognition"

 

또한, 자율주행모델의 경우에는 도로의 표지판을 잘못 인식하도록 유도하여 큰 사고가 발생할 수도 있습니다. 이러한 공격이 실제로 가능하다는 사실에 대해서는 실제 논문을 통해서도 증명이 되어 있습니다.

Eykholt et al, "Robust Physical-World Attacks on Deep Learning Visual Classification"

 

그렇다면 SafeAI를 위해서 Adversaral Attack과 이를 해결하기 위한 방법에 대해서 알아보도록 하겠습니다.

 

Goal

  Poisoning Attack은 DNN 알고리즘 훈련 데이터베이스에 fake 샘플들을 삽입하거나 기존의 훈련 데이터를 변형시키는 공격입니다. 결과적으로 공격당한 데이터를 학습한 모델은 낮은 정확도를 갖게 됩니다. 이 공격은 공격자가 데이터베이스에 접근권한을 가질때만 가능합니다.
  Evasion Attack은 모델 또는 모델의 파라미터를 변경할 수는 없지만 모델이 잘못된 분류를 하도록 가짜 데이터를 생성하는 공격입니다. 예를 들어, 도로의 'stop' 표지판에 테이프 몇 조각을 붙여는 것으로 자율주행 자동차의 표지판 식별 모델을 속이고 사고를 유발시킬 수 있습니다.

https://secml.github.io/class1/


  Targeted Attack은 \((x, y)\) 샘플 데이터에 대해서 ground truth label인 \(y\)가 아닌 \(t\)로 예측하는 샘플 데이터 \(x^{'}\)를 생성합니다. 예를 들어 금융 회사의 신용 평가 모델을 이 방법으로 공격하여 스스로를 신뢰 고객으로 위장할 수 있습니다. 피해 샘플 x에 대해서 특정한 target label인 t가 없는 공격을 Non-Targeted Attack이라고 합니다.

 

 

Knowledge

White-Box Attack은 공격자가 모델(뉴럴넷)의 모든 정보 즉, 모델의 아키텍처, 파라미터, 그래디언트를 모두 알고 있는 상황에서의 공격을 말 합니다.

 

Black-Box Attack은 White-Box Attack과 달리 공격자는 모델의 정보를 알 수 없으며 오직 모델의 입력과 출력 패턴을 보고 공격을 합니다. 따라서 White-Box Attack보다 공격이 까다롭습니다.

 

Gray-Box Attack에서는 공격자는 공격 모델에 대한 정보를 갖은 상태에서 adversarial example들을 만들 수 있는 생성 모델을 학습시킵니다. 가짜 데이터를 생성할 모델의 학습이 끝나면 이제 공격 대상에 대한 정보는 필요가 없게되며 black-box Attack같이 가짜 데이터를 계속 생성하여 공격이 가능합니다.

https://secml.github.io/class1/