프로젝트 링크

2020.08.09 17시 상황 = train 마쳤는데 모드 붕괴(?) 일어남

khodid/2020Evening

이번주 학습 내용

  1. GAN(Generative adversarial network)은 새로운 이미지를 만들어내는 생성자와, 진짜 이미지와 생성자가 만든 가짜 이미지를 판별하는 판별자가 서로 균형있게 학습해나가는 방식의 딥러닝이다.
  2. VAE는 다소 흐릿하고 부드러운 결과물을 출력하는 데 비해 GAN은 경계가 뚜렷하고 선명한 결과물을 만드는 편이다.
  3. GAN에서 발생하는 문제로는 손실이 수렴하지 않는 문제, 생성자가 판별자를 확실히 속이는 특정 샘플만 출력하려는 경향을 보이는 '모드붕괴'문제, 생성자의 손실 값과 실제 이미지 유사도의 연관성이 떨어지는 문제, 모델 설계자가 정해야 할 하이퍼파라미터가 너무 많고 하나하나 모델에 영향을 크게 미쳐서 설계자의 경험이 모델의 성능을 크게 좌우하는 문제가 있으며, 이 중 몇가지 문제를 해결하는 WGAN(Wasserstein GAN)이 주목을 받았다.

프로젝트 계획

저번 프로젝트를 만들 땐 훈련 시간이 너무 오래 걸려 (한 에폭을 거치고 나서는 나머지 훈련이 굉장히 빠르게 됐는데 이유를 모르겠다. colab에서 좀더 좋은 GPU를 할당해줬나?..)

이번에는 훈련과 피드백이 좀더 빠르게 수행될 수 있도록 이미지 사이즈를 훨씬 작게(예제처럼 아예 28x28로 한다든지), 훈련 세트도 좀더 작게 가져갈 생각이다.

Dataset

  1. GAN - 얼굴 표정 데이터셋. 48X48 크기의 흑백 사진 또는 그림으로, 각 표정의 감정에 따라 7가지로 라벨링 되어 있음. (angry, disgust, fear, happy, neutral, sad, surprise). 트레이닝 셋에는 28,709 개의 이미지, 테스트 셋에는 3,589 개의 표본이 있음.
  2. WGAN - 이전 프로젝트에서 사용한 scenery classification 세트를 다시 사용해서 활용해볼 생각

최종 목표

여유 있다면 저번 프로젝트도 수정하면 좋을 듯. 아마 출력값의 scale이 안 맞았던 게 이상한 결과의 원인이 아닐까 예상하고 있다.

단계별 목표