
218
4
부
방어
NOTE
_
다른 공격을 사용해 적대적 훈련을 받은 모델 테스트
주피터 노트북을 이용하면 다양한 공격을 사용해 적대적 훈련을 추가로 실험하여 훈련 데이터를 생성할 수
있습니다. 다른 공격을 사용해 생성한 테스트 데이터와 비교하여 생성한 모델을 확인할 수도 있습니다. 테스
트 공격이 모델 훈련에 사용한 공격과 유사하지 않은 경우, 결과 혼동 행렬은 결과 데이터를 [그림
10
-
3
]에
표시한 것처럼 효과적으로 분류할 수 없습니다.
첫 번째 단계는 적대적 훈련을 받은 모델을 사용해 테스트 데이터를 재생성하는 것입니다.
x
_
test
_
adv
_
images2
라고 부르겠습니다.
fmodel_adv = foolbox.models.TensorFlowModel.from_keras(model_adv, bounds=(0, 1)) ➊
attack_fn = foolbox.attacks.GradientSignAttack(fmodel_adv,
criterion=attack_criterion,
distance=foolbox.distances.Linnity)
(x_test_adv_images2, x_test_adv_perturbs2, x_test_labels2) =
generate_adversarial_data(original_images = x_images,
predictions ...