텍스트 분류를 위한 Adversarial Training

 최근 뉴럴 네트워크 모델 중에 가장 흥미롭다고 극찬받는 GAN 이라는게 있다. discriminator와 generator networks 두 개를 가지고 학습하는데, 하나는 더 잘 분류하기 위한 네트워크이고 하나는 더 잘 속이기 위한 네트워크로 이를 동시에 학습하면서 정확도를 높인다.

 이 모델을 텍스트 분류에도 적용해봤다는 논문이 바로 Adversarial Training Methods for Semi-Supervised Text Classification [link]. 방식은 다음과 같이 LSTM 네트워크 (분류니까 many-to-one) 두 개를 놓는다:


 (a) 네트워크는 원래대로 실제 데이터를 학습하고,(b) 네트워크는 속이기 위한 가짜를 생성하는데, 논문 Eq.(2) 수식을 보면 \(y\)가 레이블이고 \(x\)는 입력이며 \(r_{adv}\) 이 adversarial noise 값이다.

 이 때 adversarial noise 값은 \(\epsilon\) 보다 작은 범위의 변화이나, 이게 왜 잘 작동할 것 같냐면 원본 텍스트에서 의미는 달라지나 기계가 봤을 땐 거의 똔똔일 것 같은 가짜를 만드는거다. 이걸 보자마자 상당히 가치있는 내용이라는 생각이 들었다. 그 다음으로 semi-supervised learning을 위한 virtual adversarial training이 Eq.(3)(4)(5) 등에 소개되어 있다.


 테스트 데이터는 영화 리뷰 데이터를 사용하였는데 이게 텍스트에 감성이 담겨있어 기계가 해결하기 묘한 데이터라 실험에 적합하다 판단했기 때문이라고 추측한다. 코드나 그런건 Github에 공개되어있진 않다.

No comments:

Post a Comment