Image processing/Deep-learning

[Deep Learning] GAN 학습에서의 문제점

유니디니 2020. 2. 10. 15:20
728x90
반응형

참고자료https://ratsgo.github.io/generative%20model/2017/12/20/gan/


https://towardsdatascience.com/gan-ways-to-improve-gan-performance-acf37f9f59b


블로그들을 참고하여 나름 정리하였습니다.




GAN의 경우 생성기와 분류기의 경쟁적 학습에 의해 그럴듯한 가짜 데이터를 만든다는 이론적배경은 그럴듯 하다. 그러나, 실제 데이터를 이용하여 학습 할 경우 몇가지 문제점이 생긴다.


Mode Collapsing


학습에서 클래스가 여러 개인 실제 데이터의 분포를 따라가지 않고, 특정 데이터에 강하게 몰리는 현상이다. 즉, 다양성을 잃어버리는 현상이다. 모델은 손실 값만을 줄이려고 학습하기 때문에, 전체 데이터의 분포를 찾지 못하고 하나의 mode에 강하게 몰리게 되는 현상




실제 데이터의 분포가 파란색 선이라 가정할 때, 초록색 선은 생성된 데이터의 분포를 나타낸다. 예를 들면, MNIST에서 특정 숫자에 치우쳐 생성한다는 의미이다.  



Nash equilibrium(힘의 균형)


분류기 보다 생성기를 학습시키는 것이 일반적으로 어렵다. 생성기가 학습이 잘 안되어 둘 사이의 힘의 균형이 깨지는 경우 GAN 학습이 더이상 진전될 수 없다. 초기에는 생성기와 분류기 간의 업데이트 횟수를 조절하거나, 손실함수의 비율을 조절하는 등의 밸런스를 맞추기 위해 시도하였으나 부족하였다. 그러나, 최근엔 EBGAN, Wasserstein GAN 등 손실함수를 이용하여 해결하려는 시도들이 제안되고 있다.


Non-Convergence(비수렴-진동)

모델 매개변수가 진동하고 불안정하며, 수렴하지 않는 현상이다. 


Mode collapsing의 해결방안


최근에 다양한 논문에 의해 해결방안이 나오고 있으며, 간단하면서 효과적인 것으로 알려진 방법은 3가지가 있다. 


Feature Matching : 가짜 데이터와 실제 데이터 사이의 Least Square Error를 목적함수에 추가 ex) MSE Loss

mini-batch discrimination : 배치 단위가 아닌 미니배치별로 가짜 데이터와 실제 데이터 사이의 거리 합의 차이를 목적함수에 추가

historical averaging : 배치 단위로 파라미터를 업데이트 하면 이전 학습은 잘 잊혀지게 되기 때문에, 이전 학습 내용에 대한 페널티를 이용하여 보존하는 방식으로 학습

One-sided Label Smoothing : 분류기에서 정답 레이블 값을 1.0이 아닌 0.9로 설정

Using Label : 객체 타입에 대한 라벨을 이용하는 것이다. cGAN처럼 라벨을 통해 생성할 때 이점을 갖게 된다. 


손실함수를 이용하여 문제점 해결을 위한 다양한 제안


반응형