본문 바로가기

오늘의 코딩/머신러닝,Deep Learning

재밌는 분야[적대적 훈련(Adversarial training)]

적대적 훈련이란

적대적 훈련 Adversarial training은 regularization의 한 방법이다.

머신러닝, 딥러닝 분야에서 regularization은 overfitting을 막고 모델을 robust하게 만들어주기 위해 사용한다.

 

딥러닝 모델은 Input data를 학습하여 적절한 label을 반환하는 것을 목적으로 훈련을 진행한다.

Adversarial attack은 반대로 이미 훈련된 모델에 대하여 입력 데이터를 잘못 예측하도록 Input을 조작하는 것을 말한다!

(Adversarial attack)

이미지 데이터를 input으로 받는 CNN의 경우 정답 Y에서 내가 원하는 예측값Y'를 반환하도록 조금씩 이미지의 픽셀을 수정한다.

 

그렇다면 이러한 공격에 대하여 어떻게 방어할 수 있는가?

1. Y'라는 예측을 하게 만든 만들어진 이미지들을 훈련시킬 때 포함하면 된다.(Adversarial training)

2. 혹은 원 모델을 모방한 새로운 모델(Defensive Distillation)을 훈련시키는 방법도 있다고 한다. 

 

(참고 블로그)

https://medium.com/@jongdae.lim/%EA%B8%B0%EA%B3%84-%ED%95%99%EC%8A%B5-machine-learning-%EB%A8%B8%EC%8B%A0-%EB%9F%AC%EB%8B%9D-%EC%9D%80-%EC%A6%90%EA%B2%81%EB%8B%A4-part-8-d9507cf20352

http://www.cleverhans.io/

https://rain-bow.tistory.com/entry/Adversarial-Attack