13.4 GAN 파생 기술
GAN은 생성자와 판별자가 서로 대결하면서 학습하는 구조이기 때문에 학습이 매우 불안정합니다. 생성자와 판별자 중 한쪽으로 치우친 훈련이 발생하면 성능에 문제가 생겨 정상적인 분류(진짜 혹은 가짜 분류)가 불가능합니다. 이러한 제약을 해결한 모델이 DCGAN(Deep Convolutional GAN)입니다. 이름에서도 알 수 있듯이 DCGAN은 GAN 학습에 CNN을 사용하는 것입니다.
GAN과 DCGAN이 가짜 이미지 생성을 위해 임의의 노이즈 값을 사용했다면 cGAN(convolutional GAN)은 출력에 어떤 조건을 주어 변형하는 모델입니다. 즉, GAN이 임의의 노이즈로 무작위 이미지를 출력한다면, cGAN은 시드 역할을 하는 임의의 노이즈와 함께 어떤 조건이 추가됩니다. 조건이 추가되고 데이터 훈련 과정에서 인간이 통제할 수 있게 되면서 실제 이미지와 가깝거나 원래 이미지에 없던 문자열 태그 등도 넣는 것이 가능해졌습니다.
또한, CycleGAN이라는 것도 있습니다. CycleGAN은 사진이 주어졌을 때 다른 사진으로 변형시키는 모델입니다. 예를 들어 말을 얼룩말로 변환하는 것이 가능합니다. 참고로 CycleGAN은 PIX2PIX라는 원리를 이용하는데, 이 부분은 CycleGAN에서 자세히 다루겠습니다.
그럼 DCGAN을 먼저 살펴보겠습니다.