13-3. Adversarial Attack (적대적 공격)과 방어 기법
1. 적대적 공격(Adversarial Attack)의 개요
딥러닝 모델은 다양한 분야에서 혁신적인 결과를 보여주고 있지만, 동시에 치명적인 취약점을 가지고 있습니다. 바로 적대적 공격(Adversarial Attack)입니다. 적대적 공격은 딥러닝 모델의 예측을 의도적으로 오도하기 위해 설계된 악의적인 입력 데이터를 사용하는 공격 기법을 의미합니다. 이러한 공격은 모델의 결정 경계를 교묘하게 조작하여, 모델이 잘못된 예측을 하도록 유도합니다.
예를 들어, 이미지 분류 모델이 고양이 사진을 "고양이"로 정확하게 분류하도록 학습되었다고 가정해 보겠습니다. 적대적 공격자는 이 고양이 사진에 사람의 눈으로는 거의 감지할 수 없는 미세한 노이즈를 추가하여, 모델이 해당 사진을 "개"로 잘못 분류하도록 만들 수 있습니다. 이러한 공격은 자율 주행, 얼굴 인식, 스팸 메일 필터링 등 실제 세계에서 딥러닝 모델이 활용되는 다양한 애플리케이션에 심각한 위협이 될 수 있습니다.
1) 적대적 예시 (Adversarial Example)
적대적 공격에 의해 생성된 입력 데이터를 적대적 예시(Adversarial Example)라고 합니다. 적대적 예시는 원본 입력 데이터와 매우 유사하지만, 모델의 예측을 완전히 다른 클래스로 변경합니다. 이러한 적대적 예시는 모델의 일반화 능력을 저하시키고, 안전에 대한 우려를 야기합니다.

위 그림에서 확인할 수 있듯이, 적대적 예시는 사람의 눈으로는 차이를 거의 알아차릴 수 없지만, 모델의 예측 결과는 완전히 달라집니다. 이러한 특성 때문에 적대적 공격은 방어가 매우 어렵습니다.
2) 공격의 동기 및 위험성
적대적 공격은 다양한 동기에서 비롯될 수 있으며, 그 위험성은 매우 심각합니다.
- 기만: 모델을 속여서 잘못된 결정을 내리도록 유도하여 특정 목표를 달성하려는 시도입니다. 예를 들어, 자율 주행 차량의 객체 인식 모델을 속여서 보행자를 인식하지 못하게 하여 사고를 유발할 수 있습니다.
- 정보 탈취: 모델의 학습 데이터를 추론하거나, 모델의 구조를 파악하기 위해 사용될 수 있습니다.
- 무력화: 모델의 성능을 저하시켜 서비스의 신뢰도를 떨어뜨리거나, 사용 불가능하게 만들 수 있습니다.
이러한 위험성 때문에 적대적 공격에 대한 이해와 방어 기법 개발은 딥러닝 연구 및 실무에서 매우 중요한 과제로 여겨지고 있습니다.
2. 적대적 공격의 원리
적대적 공격은 주로 딥러닝 모델의 선형성(linearity)과 과도한 학습(overfitting)에 기인합니다. 딥러닝 모델, 특히 신경망은 선형 연산의 조합으로 구성되어 있으며, 복잡한 비선형 관계를 학습하기 위해 깊은 레이어를 사용합니다. 이러한 구조는 모델이 훈련 데이터에 과도하게 적합(overfitting)되도록 만들 수 있으며, 이는 입력 데이터의 작은 변화에도 민감하게 반응하게 합니다.
1) 선형성 (Linearity)
신경망은 각 레이어에서 선형 변환과 비선형 활성 함수를 반복적으로 적용하여 데이터를 처리합니다. 입력 데이터에 작은 변화를 가하면, 이러한 변화가 각 레이어를 거치면서 증폭될 수 있으며, 결국에는 최종 예측에 큰 영향을 미칠 수 있습니다.
위 그림은 신경망 레이어의 선형 변환을 보여줍니다. 입력 데이터 x는 가중치 w와 곱해지고, 편향 b가 더해져 최종 출력 y를 생성합니다. 입력에 작은 변화가 발생하면, 가중치 w에 의해 해당 변화가 증폭되어 출력에 영향을 미칩니다.
2) 경사 하강법 (Gradient Descent)과 적대적 공격의 연관성
딥러닝 모델은 일반적으로 경사 하강법(Gradient Descent)을 사용하여 훈련됩니다. 경사 하강법은 모델의 손실 함수(loss function)를 최소화하는 방향으로 모델의 가중치를 업데이트합니다. 적대적 공격은 이러한 경사 정보를 이용하여 모델의 결정 경계를 조작합니다.
적대적 공격은 모델의 손실 함수에 대한 그래디언트(gradient)를 계산하고, 그래디언트의 방향으로 입력 데이터를 미세하게 변경하여 모델의 예측을 원하는 방향으로 유도합니다. 즉, 모델이 잘못된 예측을 하도록 만드는 최소한의 "방해"를 찾는 것입니다.
3) 과적합 (Overfitting)
과적합은 모델이 훈련 데이터에는 높은 성능을 보이지만, 새로운 데이터(테스트 데이터)에는 낮은 성능을 보이는 현상입니다. 과적합된 모델은 훈련 데이터의 미세한 특징까지 학습하기 때문에, 입력 데이터에 작은 노이즈가 추가되더라도 예측 결과가 크게 바뀔 수 있습니다.
3. 주요 적대적 공격 기법
다양한 적대적 공격 기법이 존재하며, 각 기법은 공격의 강도와 효율성, 그리고 모델의 방어 난이도에 차이가 있습니다.
1) FGSM (Fast Gradient Sign Method)
FGSM은 가장 기본적인 적대적 공격 기법 중 하나입니다. FGSM은 입력 데이터에 손실 함수의 그래디언트의 부호(sign)를 곱한 작은 값을 더하여 적대적 예시를 생성합니다.
수식으로 표현하면 다음과 같습니다.
$$x_{adv} = x + \epsilon \cdot sign(\nabla_x J(\theta, x, y))$$
- $x_{adv}$: 적대적 예시
- $x$: 원본 입력 데이터
- $\epsilon$: 공격의 강도를 제어하는 작은 값
- $sign()$: 부호 함수 (양수: +1, 음수: -1, 0: 0)
- $\nabla_x J(\theta, x, y)$: 입력 데이터 $x$에 대한 손실 함수 $J$의 그래디언트
- $\theta$: 모델의 파라미터
- $y$: 정답 레이블
FGSM은 간단하지만, 효과적인 공격 기법으로, 빠른 속도로 적대적 예시를 생성할 수 있습니다.
2) PGD (Projected Gradient Descent)
PGD는 FGSM을 여러 번 반복하는 기법입니다. 각 반복에서 FGSM과 유사하게 그래디언트의 방향으로 입력 데이터를 변경하고, 변경된 데이터가 특정 범위를 벗어나지 않도록 투영(project)합니다.
PGD의 알고리즘은 다음과 같습니다.
- 입력 데이터 $x_0$를 초기화합니다. $x_0 = x$
- 반복 횟수 $T$만큼 다음 단계를 반복합니다.
- 그래디언트를 계산합니다. $\nabla_x J(\theta, x_t, y)$
- FGSM과 유사하게 입력 데이터를 업데이트합니다. $x_{t+1} = x_t + \alpha \cdot sign(\nabla_x J(\theta, x_t, y))$
- 입력 데이터를 투영합니다. $x_{t+1} = clip(x_{t+1}, x - \epsilon, x + \epsilon)$
- 최종 적대적 예시 $x_{adv} = x_T$를 반환합니다.
- $\alpha$: 각 반복에서 입력 데이터를 변경하는 정도
- $clip()$: 입력 데이터가 $[x - \epsilon, x + \epsilon]$ 범위를 벗어나지 않도록 조정
PGD는 FGSM보다 강력한 공격 기법이며, 다양한 방어 기법에 대한 모델의 취약점을 테스트하는 데 사용됩니다.
3) C&W (Carlini & Wagner)
C&W는 손실 함수를 직접 최소화하여 적대적 예시를 생성하는 기법입니다. 이 기법은 L0, L2, L∞ 노름을 사용하여 공격의 강도를 제어하며, 공격의 성공률이 높지만, 계산 비용이 많이 듭니다.
4) 기타 공격 기법
이 외에도 다양한 적대적 공격 기법이 존재합니다.
- DeepFool: 모델의 결정 경계에 가장 가까운 적대적 예시를 찾습니다.
- JSMA (Jacobian-based Saliency Map Attack): 입력 데이터의 픽셀 중요도를 기반으로 적대적 예시를 생성합니다.
- One-pixel Attack: 단 하나의 픽셀만 변경하여 적대적 예시를 생성합니다.
4. 적대적 공격 방어 기법
적대적 공격으로부터 모델을 보호하기 위한 다양한 방어 기법이 연구되고 있습니다.
1) Adversarial Training (적대적 훈련)
Adversarial Training은 적대적 공격에 대응하는 가장 효과적인 방어 기법 중 하나입니다. 이 기법은 모델을 훈련할 때, 적대적 예시를 함께 사용하여 모델의 강건성을 향상시킵니다.
Adversarial Training의 과정은 다음과 같습니다.
- 훈련 데이터에서 배치(batch)를 추출합니다.
- 각 배치에 대해 적대적 예시를 생성합니다 (예: FGSM, PGD 사용).
- 원본 데이터와 생성된 적대적 예시를 사용하여 모델을 훈련합니다.

Adversarial Training은 모델이 적대적 공격에 더 강하게 반응하도록 학습시키지만, 훈련 시간과 계산 비용이 증가하는 단점이 있습니다.
2) Defensive Distillation (방어적 증류)
Defensive Distillation은 모델의 예측 확률을 부드럽게(smooth) 만들어 적대적 공격에 대한 저항성을 높이는 기법입니다. 이 기법은 두 개의 모델을 사용하며, 먼저 teacher model을 훈련합니다. 그 후, teacher model의 출력 확률을 사용하여 student model을 훈련합니다. student model은 teacher model보다 예측 확률이 더 부드럽게 나타나며, 적대적 공격에 덜 민감하게 반응합니다.
3) Input Transformation (입력 변환)
Input Transformation은 입력 데이터를 변환하여 적대적 공격의 영향을 줄이는 기법입니다.
- 입력 클리핑(Input Clipping): 입력 데이터의 픽셀 값을 특정 범위 내로 제한합니다.
- 노이즈 제거(Noise Reduction): 입력 데이터에서 노이즈를 제거합니다 (예: 가우시안 필터).
- 이미지 압축(Image Compression): 이미지를 압축하여 적대적 노이즈의 영향을 줄입니다.
4) Robust Optimization (강건한 최적화)
Robust Optimization은 손실 함수에 특정 정규화 항을 추가하여 모델의 강건성을 향상시키는 기법입니다. 예를 들어, adversarial training에서 생성된 적대적 예시를 활용하여 모델의 손실 함수에 페널티를 부여하는 방식으로 구현될 수 있습니다.
5) 기타 방어 기법
이 외에도 다양한 적대적 공격 방어 기법이 연구되고 있습니다.
- 가드 레일(Guard Rails): 예측 결과에 대한 신뢰도를 평가하여, 신뢰도가 낮은 예측은 거부합니다.
- 탐지기(Detectors): 적대적 예시를 탐지하는 별도의 모델을 사용하여, 공격을 식별합니다.
5. 결론
적대적 공격은 딥러닝 모델의 안전성과 신뢰성에 심각한 위협을 가하는 문제입니다. 본 포스트에서는 적대적 공격의 개념, 원리, 주요 기법, 그리고 방어 기법에 대해 살펴보았습니다. 딥러닝 기술의 발전과 함께 적대적 공격 기법은 더욱 정교해지고 있으며, 이에 대응하기 위한 방어 기법 또한 지속적으로 연구되고 있습니다.
6. 추가적으로 고려해야 할 사항
1) 방어 기법의 한계
현재까지 개발된 대부분의 방어 기법은 특정 공격 기법에 대해서만 효과적이며, 새로운 공격 기법이 등장하면 무력화될 수 있습니다. 또한, 방어 기법은 모델의 정확도를 저하시키거나, 훈련 시간 및 계산 비용을 증가시킬 수 있습니다.
2) 지속적인 연구의 필요성
적대적 공격과 방어는 끊임없이 진화하는 분야입니다. 따라서, 지속적인 연구를 통해 새로운 공격 기법에 대응하고, 보다 효과적인 방어 기법을 개발하는 것이 중요합니다.
3) 실용적인 고려사항
딥러닝 모델을 실제 서비스에 적용할 때, 적대적 공격에 대한 방어는 매우 중요한 요소입니다. 모델의 안전성을 확보하기 위해, 적절한 방어 기법을 선택하고, 모델의 성능과 비용을 고려하여 균형을 맞추는 것이 필요합니다.
비슷한 글 추천
3-7. 경사 하강법의 변형: Momentum, AdamW
경사 하강법의 단점을 보완하기 위한 모멘텀, AdamW 등 다양한 최적화 알고리즘에 대해 설명하고, 각 알고리즘의 특징과 사용 사례를 비교합니다.
1-5. 딥러닝 개발 환경 설정: GPU, CUDA, cuDNN
딥러닝 연구 및 실습을 위한 GPU, CUDA, cuDNN 설치 및 설정 방법, 환경 점검 방법을 다룹니다.
3-1. PyTorch 소개: 텐서
PyTorch 소개, 텐서 생성, 텐서 자료형
1-4. 딥러닝의 주요 응용 분야: 이미지, 음성, 자연어 처리
딥러닝이 활발하게 활용되는 주요 분야(이미지 인식, 음성 인식, 자연어 처리)의 대표적인 사례를 소개합니다.
Comments (0)
No comments yet. Be the first to comment!
Please to write a comment.