딥러닝

[딥러닝] Adversarial Attack

수터디 2022. 9. 23. 23:36

Adversarial Attack은 원본 이미지에 약간의 noise를 가해서 유사한 이미지로 neural net을 속이는 공격 기법을 이야기한다. I Goodfellow가 초기 개념 정리를 했고, FGSM, PGD 등과 같은 공격 기법 등이 개발되었다. 공격 원리에 대한 어렴풋한 이해는 있으나 아직 완전히 이해하지 못했고 이에 따라 완전한 보안 방법도 나오지 않았다. 이러한 공격을 막지 못하면, 자율주행 등 neural net을 이용하는 많은 시스템에서 큰 위협이 될 수 있다. 본 summary는 성균관대학교 이지형 교수의 딥러닝 강의를 참고하여 작성되었으며, 기본 개념, 공격 기법, 방어 기법에 대해 살펴보고자 한다. 



1. Adversarial Attack이 발생하는 이유?

 



위 그림에서 trainig 데이터가 존재하는 공간 주변에 작게 잡은 범위를 ball이라고 한다. boundary 근처에 있는 데이터의 경우 training 데이터는 학습된 boundary 내에 있지만, ball이 boundary를 넘어가는 경우가 있다. 이 경우 사람은 동일한 데이터라고 인식하지만, 학습된 모델은 이를 boundary 경계 너머에 있는 데이터로 판단, labeling을 잘못 하는 경우가 발생한다. 그림에서는 경계 근처에 데이터만 adversarial attack을 당할수 있는 것처럼 표현했지만, 사실상 데이터는 매우 고차원의 공간상에 존재하므로, 거의 모든 training 데이터에 대한 adversarial attack을 할 수 있다고 생각하면 된다. 

결론적으로, 원래 데이터와 공격 데이터가 매우 가까이 있지만 학습된 모델이 다르게 labeling할 때 이것을 adversarial이라고 부른다. Adversarial attack에서는 계산상의 편의를 위해 infinity norm을 주로 사용한다. 


2. 공격 기법 

2-1) 큰 분류

  • White-box / Black-box
    White-box의 경우 train data, NN의 구조, weight를 모두 공개한다.  반면 Black-box의 경우 train data는 알려주지만 NN의 구조는 알려주지 않는다(당연히 weight도). White-box가 당연히 공격자에게 더 유리한 것은 맞지만 Black-box라고 해서 공격이 어려운 것은 아니다. Adversarial Attack의 특성 상, 동일 데이터로 train된 다른 구조/알고리즘의 neural net을 공격할 수 있는 Adversarial 데이터는 대부분의 같은 데이터로 학습한 neural net을 성공적으로 공격할 수 있다. 따라서 Black-box일 경우에는, 주어진 데이터로 모델을 학습하고 이를 통해 얻은 adversarial 데이터를 활용하면 된다. 

 

  • Non-targeted attacks / Targeted attacks
    Non-targeted는 label에 상관 없이 neural net이 틀리기만, targeted는 어떻게 틀려야하는지 까지도 가이드를 주는 방식이다.

2-2) 개별 기법

 

[ 1회 이동 방식 ]


FGSM 계열 (Fast Gradient Sign Method)

  • FGSM
    : Untargeted 방식으로, 데이터가 존재하는 지점에서 gradient의 sign, 즉 방향만 취한다. 그리고 그 방향으로 정해진 infinity norm만큼 한 번 이동한다. 공격 정확도는 낮지만, 계산이 빠르기 때문에, 실패할 경우 성공할 때까지 공격한다. 

 

  • Randomized FGSM
    : 데이터가 존재하는 지점에서 우선, random한 변형을 가한다. 이후 FGSM과 마찬가지로 gradient의 반대 방향으로 한 번 이동하는데, 이 때는 random하게 이동한 크기만큼 덜 이동한다. 



One Step Gradient Method
Targeted 방식으로, FGSM과는 다르게, target label 방향으로 noise를 추가한다. 소수 클래스의 label로 판단되도록 조정한다.

 

[ Iterative Methods ]
굳이 한 번만 이동할 필요는 없다. 시간과 비용은 좀 더 들지만 고품질의 Adversarial 데이터를 만들 수 있는 방법으로 Iterative한 방식을 사용할 수 있다. 

 

  • Basic iterative method
    : Gradient ascent 방식을 활용한다. Gradient descent를 약간 변형한 방식으로, gradient의 반대 방향으로 이동한다는 뜻이다. 반복된 이동이 infinity norm의 범위를 벗어나게 되는 경우 데이터를 범위 내로 다시 끌어오는 로직이 포함되어 있다. (Clip) 
  •  

  • Iterative least-likely class method
    : 소수 클래스로 labeling 하도록 하는 targeted 기법이다. 

 

  • PGD
    : FGSM 기법에 iteration, random start 방식을 추가했다. 현재까지 가장 강력한 adversarial attack 기법으로 알려져 있다. 시간이 오래 걸려도 웬만하면 공격에 성공한다. Neural net이 속지 않으면, 공격에 성공할 때까지 계속 loss가 큰 지점을 향해 attack이 반복되므로 속을 수밖에 없다.


3. Defense

몇 가지 방법들이 개발되었으나, 아직 완전한 해결책은 나오지 않았다. Attack에 대한 완전한 이해가 없으니, 방어도 완전할 수 없다. 

1) Denoising
Denoising의 경우, 공격 데이터에서 noise를 제고하는 작업을 거쳐 NN이 속지 않는 데이터로 만드는 방식이다. 그러나 denoising 방법조차, adversarial attack을 당할 수 있어 사실상 효과적이지 않다. 

2) Filtering/Detecting
Adversarial sample의 패턴을 학습해서, 공격이 들어왔을 때 판단하지 않는다. 실 사용에 적용하기에는 매우 한정적인 기능이며, 마찬가지로, filter/detector조차 adversarial attack을 당할 수 있다. 

3) Adversarial Training
그 중 가장 효과적인 것으로 알려진 방어 기법이다. 학습할 때 adversarial sample을 포함해서 학습하는 것이다. 가장 그럴듯 하지만, adversarial sample을 원래 데이터에 augmentation 해서 학습하는 것이 쉽지 않고*, 원래 데이터에 대한 성능이 떨어진다는 단점이 있다. 


학습 방식은, loss를 가장 크게하는 noise를 찾은 후 그 noise를 넣어 학습한 nn의 loss를 가장 작게 하는 weight를 찾는 방식이다. 

  • Adversarial Logit Pairing
    : Softmax function에 들어가는 값에 대해, training sample과 adversarial sample의 차이의 절대값을 loss에 추가하는 방식. softmax에 들어가는 값이 비슷해지면 최종 label도 비슷해질 것이라는 기대하는 방식이다.

 

  • Defensive Distillation
    : 기존의 neural net에서 입력데이터와 softmax의 output을 독립-종속 변수 set으로 하여 이를 작은 neural net에 학습시킨다. 작은 neural net은 기존의 neural net 대비 표현력이 떨어진다. 달리 말하면 generalized 되었다는 뜻으로, adversarial sample에서 나타나는 약간의 변화를 알아차리지 못해 오히려 정확하게 분류되기를 기대하는 방식이다.