PGD란?
- 미분 가능한 모델을 대상으로 적대적 공격을 하는 방법이다.
- 입력 데이터에 소규모의 노이즈를 추가해서 모델이 잘못된 예측을 하도록 유도한다.
- 초기화 -> 기울기 계산 -> 교란 추가 -> 투영 -> 반복의 과정이다.
- 교란의 크기는 ϵ에 의해서 조정된다.
- 투영은 추가된 교란이 허용된 ϵ의 범위 안에 있게 입력을 다시 조정하는것.
- 이는 FGSM을 확장한 형태이며, 반복적으로 공격을 수행해서 더 정교한 교란을 생성한다.
- 즉, FGSM을 Iterative하게 실행하는 방식이다.
- 시계열을 다루는 모델에는 각 타임 스텝에서 입력값에 교란을 추가해서 전체 시퀀스를 왜곡하는 방식으로 한다.
PGD 공격을 자세히.....
1. 주어진 모델을 f(x)라고 하자.
2. 손실 함수는 L(x,y), 원본 입력 데이터는 x, 목표 라벨은 y라고 하자.
3. 다음과 같이 초기화 시킨다. δ는 아주 작은 무작위값인 노이즈로 초기화 됨.

4. 기울기를 업데이트...
- 여기에서 α는 업데이트 크기를 의미.
는 손실 함수에 대한 입력의 기울기를 의미.

5. 투영...
- Proj B(x)는 ϵ범위 안에서 원본 데이터 x로부터 멀어지지 않게 하는 투영함수다.

PGD의 장점
- FGSM과 다르게 반복적으로 교란을 생성하니 좀 더 정교한 공격이 가능하다.
- 미분 가능한 모든 모델에 적용이 가능하다.
PGD의 단점
- 반복적인 기울기 계산으로, FGSM에 비해서 연산 비용이 더 크다.
- 너무 많은 반복을 하면 오히려 모델이 적대적 예제에 대한 저항력을 가지게 된다.
PGD를 방어하는 방법
- 적대적 예제로 모델을 훈련시키기.
- 모델의 기울기를 흐리게 만들어, 공격자가 기울기를 정확하게 계산 못하게 한다.
시계열 모델에 대한 PGD공격
- 시계열 모델에 대한 PGD 공격은 각 time step에서 입력값에 교란을 추가해 전체 시퀀스를 왜곡하는 방식으로 실행.
공격과정
1. 초기화....
- 원본 시계열 데이터에서 시작한다. 여기서 T는 시퀀스의 길이다.
- 초기 교란 δ는 미세한 무작위 값으로 설정.
- 공격 목표는 모델의 예측값을 틀리게 하는것.

2. 손실함수를 선택.
- 일반적으로 시계열 예촉 모델에서는 손실함수로 MSE나 Cross-Entropy Loss를 사용.
- PGD의 공격에서 적절한 손실함수를 선택하는 것은 중요하다.

3. 각각의 time step에서 기울기를 계산하여, 해당 시퀀스의 입력에 대한 손실함수의 기울기를 구한다.

이 기울기는 모델이 손실을 줄이기 위해서 입력값을 어떻게 바꿀지 나타내는 정보이다.
4. 교란 추가
- FGSM과 유사하게, PGD 공격에서는 기울기를 기반으로 교란을 추가하지만, 여러 번 반복하여 교란을 더 정교하게 한다.

5. 투영
- PGD 공격은 교란이 설정한 범위 ϵ안에 있게 해야함.
- 시계열 데이터에 대한 공격에서는 각 time step의 교란이 원본 데이터와 너무 멀어지지 않도록 해야한다.
- B(x)가 범위 안에서 원본 데이터 x로부터 멀어지지 않도록 하는 것.

6. 반복
'보안_기타' 카테고리의 다른 글
| command injection (0) | 2024.09.18 |
|---|---|
| 시계열 데이터로 훈련시킨 LSTM모델에 대한 FGSM 공격 (5) | 2024.09.14 |
| FGSM ( fast gradient sign method ) (0) | 2024.09.13 |
| 인공지능에 대한 적대적 공격 adversarial attack (0) | 2024.09.11 |
| 웹사이트의 침투 과정 및 구글 고급 검색 (0) | 2024.09.08 |