논문 리뷰

[논문 리뷰] Adversarial Examples Are Not Bugs, They Are Features

망나 2020. 5. 31. 17:11

paper - Adversarial Examples Are Not Bugs, They Are Features

 

 

2019년도 NIPS에서 발표된 논문으로 Adversarial Examples이 만들어지는 현상의 이유에 대해서 새로운 관점으로 해석한 논문입니다. AI 보안 이슈에서 아주 중요한 분야이기 때문에 모든 AI 연구자들에게 도움이 되는 논문이라고 생각합니다.

 

Adversarial Example이란, 아래 보이는 왼쪽의 돼지 이미지에 아주 작은 노이즈를 더하여 오른쪽의 돼지 이미지를 만드는 것을 의미합니다. 사람의 눈으로 볼 때는 아무런 변화가 없지만, 분류 모델의 입장에서 두 이미지는 "pig"와 "airliner"로 완전히 다른 이미지로 인식됩니다. 따라서 이러한 문제는 앞서 말했듯이 AI 보안에서 아주 중요한 이슈입니다.

보통 이런 문제가 왜 발생하는지에 대한 이전 연구들을 보면 2가지 주장으로 나눌 수 있습니다. 첫번째는, 이론적인 모델 자체의 문제라고 주장하는 논문들이 있습니다. 두번째로는, 데이터의 높은 차원에서 발생하는 문제 또는 입력 데이터의 어떤 통계적인 변동에 의한 문제라고 주장하는 논문들이 있습니다. 하지만, 본 논문 "Adversarial Examples Are Not Bugs, They Are Features"에서 저자들은 아래와 같은 주장을 합니다.

 

데이터에 well-generalizing된 features들에 대한 모델의 sensirivity에 의해 발생하는 문제다. 즉, 데이터의 특정 features에 대해서 모델이 민감하게 반응하고 이러한 featrues들에 의해서 adversarial example이 만들어지는 것이라고 합니다.

 

그렇다면 저희가 분류 모델을 어떻게 학습시키는지를 한번 생각해보겠습니다. 대부분 label이 붙은 데이터를 모델에 입력하고 예측 결과와 실제 결과의 차이를 구하고(loss function 이용) accuracy를 최대화 하도록 weight를 업데이트하는 방식으로 모델을 학습시킵니다. 이때, 모델의 입장에서 최종 목적은 accuracy를 최대화 하는 것이기 때문에 accuracy를 올릴 수 있는 모든 feature들을 사용합니다.

사람의 입장에서 돼지를 분류할 때 돼지의 "코", "귀", 그리고 "꼬리" 같은 특징들이 자연스럽게 더 중요하게 여겨지지만 모델의 입장에서는 그렇지 않다는 것 입니다. 사람의 눈에 보이지 않은 특징들 예를 들면 "털의 방향" 등도 모델의 정확도를 높이는데 도움이 된다면 모델은 학습을 하게 되는 것 입니다.

그래서 논문에서 저자들은 우리가 가진 모든 데이터에는 아래와 같은 Useless한 feature와 Useful하면서 Robust한 feature 그리고 Useful하면서 Non-robust한 feature들이 있고, adversarial example은 모델이 민감하게 반응할 수 있는 Non-robust한 feature들을 변형시켜 발생하는 것이고 따라서 사람의 눈으로는 이미지의 변화를 알아 볼 수 있다고 주장합니다.

그러니까 adversarial example은 아래와 같이 robust한 feature는 그대로 있고, non-robust한 feature가 변형 된 것이고 모델이 이 non-robust한 feature를 보고 이미지를 잘 못 분류하게 되는 것 입니다.

 

 

이러한 가정을 증명하기 위해서 논문에서는 아래와 같이 2가지 버전의 분류기를 구성하고 실험을 진행하였습니다.

 

(a) 첫 번째로, 우리가 데이터의 feature를 robust한 feature와 non-robust한 featrue로 분리시킬 수 있다고 가정할 때, robust한 feature만 가지고 있는 데이터 세트로 학습시킨 모델은 standard accuracy와 robust accuracy에서 모두 좋은 성능을 보입니다. 노이즈에 민감하지 않은 robust feature만을 가지고 있기 때문에 당연히 adversarial example에 대해서도 재대로 된 분류를 하게 되고 따라서 robust accuracy에서 좋은 성능을 보이게 되는 것 입니다. 반면에 non-robust feature만 가지고 있는 데이터 세트로 학습시킨 모델은 standard accuracy에서는 좋은 성능을 보이지만 데이터의 feature가 모두 non-robust하고 따라서 작은 노이즈에도 민감하기 때문에 rubust accuracy에서는 좋지 않은 성능을 보이게 됩니다.

 

(b) 두 번째로, 원본 이미지(강아지) 사진에 adversarial attack을 통해 adversarial example을 만들고 해당 사진을 고양이로 다시 레이블링을 해서 모델에 학습을 시킨다면(이 경우 이미지에는 강아지에 대한 robust features와 고양이에 대한 non-robust features를 가지게 되고 고양이로 label이 된 상태) 해당 모델에 정상적인 고양이 사진을 입력했을 때, 모델이 정상적으로 고양이로 잘 분류하게 됩니다. 왜냐하면 사람이 보기에는 강아지 모습의 이미지이지만 그 안에 고양이에 대한 non-robust한 feature들이 존재하고 고양이로 레이블이 되어 있기 때문에 모델은 non-robust feature를 보고 이미지를 분류하도록 학습이 되기 때문입니다.

 

실험을 위해서 데이터를 robust 데이터와 non-robust 데이터로 나누어야 하는데, 중요한 것은 우리는 직접적으로 feature들은 골라서 나눌 수가 없다는 것 입니다. 그래서 논문에서는 어떤 방법을 썼냐, 바로 robust한 모델을 활용해서 데이터를 robust 데이터로 학습을 시킵니다. 이게 무슨 말이냐...

 

adversarial training을 통한 robust 모델에 이미지를 입력하여 분류를 하면, 모델은 이미지의 robust feature만을 보고 분류를 하게 됩니다.

 

이미지 \(x\)를 robust model에 넣어 얻게 되는 representation layer \(g(x)\)는 robust feature들에 대한 정보를 포함하고 있습니다. 따라서 다른 이미지 \(x_{r}\)을 robust model에 넣어 얻게 되는 representation layer \(g(x_{r})\)을 \(g(x)\)와 같게 되도록 \(x_{r}\)을 학습 시키게 되면 \(x_{r}\)은 robust feature만을 가지게 된다는 것 입니다.

 

이렇게 만든 데이터가 아래 보이는 \(D_{r}\)이고 \(D_{NR}\)은 adversarial attack을 이용해서 이미지에 non-robust feature를 추가한 데이터 입니다.

 

 

위 실험의 결과 그래프를 보면 robust feature를 가진 데이터는 standard training만으로도 어느정도 괜찮은 adversarial accuracy를 얻는 것을 확인할 수 있습니다. 반면에 non-robust feature를 가진 데이터는 standard training의 결과로 좋은 standard accuracy를 얻었지만, adversarial accuracy에 대해서는 굉장히 낮은 수치를 얻은 것을 확인할 수 있습니다.

 

추가적으로 논문에서는 non-robust feature만 가지고도 좋은 standard classification 모델을 만들 수 있다는 것을 실험을 통해서 보였는데요, 아래 보이는 것 처럼 2가지 방식으로 데이터를 만들었습니다.

 

실험을 위해 입력-출력 데이터 \((x, y)\)를 adversarial attack을 통해 \((x_{adv}, t)\)로 만들었는데요 여기서 \(x_{adv}\)는 \(x\)를 타겟 label \(t\)로 분류하도록 adversarial attack을 가해 만들어진 adversarial example입니다.

 

여기서, \(\hat{D}_{rand}\) 데이터는 \(t\)를 랜덤하게 뽑은 것 입니다. 즉 아래 데이터를 보면 원본 강아지 이미지가 있을 때 사슴, 트럭 등의 랜덤한 타겟 이미지에 adversarial attack을 통해 강아지의 non-robust feature를 만들었다고 볼 수 있습니다. 이 경우 만들어진 adversarial example들이 가진 본래의 robust feature들은 모델의 학습에서 label과의 유의미한 관계로 학습이 되지 않기 때문에 모델은 오직 non-robust feature만을 학습한다고 볼 수 있습니다.

 

반면에, \(\hat{D}_{det}\) 데이터는 \(t\)를 고정적으로 뽑은 것 입니다. \(\hat{D}_{rand}\) 와 다르게 하나의 타겟 label을 정하고 해당 label의 이미지만을 이용해서 adversarial example을 만든 것 입니다. 이 경우 모든 adersarial example들은 동일한 본래의 robust feature를 가지고 있기 때문에 모델의 학습에 이러한 feature들이 방해가 될 수 있습니다.

 

 

실험 결과를 보면 랜덤한 타겟 이미지를 뽑은 \(\hat{D}_{rand}\) \(\hat{D}_{det}\) 보다 높은 분류 정확도를 얻은 것을 확인 할 수 있습니다. ImageNet 데이터의 결과 정확도가 87.9%로 non-robust feature만을 가지고도 이정도의 높은 정확도의 모델을 얻을 수 있다는 것 입니다. 하지만, \(\hat{D}_{det}\) 도 64.4%의 결코 무시할만한 정확도는 아니고 특히 이미지에 predictive한 robust feature들이 존재하더라도 모델이 non-robust feature들을 학습할 수 있다는 결론을 내릴 수 있습니다.