SGAN (Semi-Supervised Learning GAN)
- DCGAN 기반
- objective function 언급이 없음.
ACGAN (Auxiliary Classifier GAN)
* standardGAN

- D는 Xreal들어갔을 때 Source = real일 확률 + Xfake들어갔을 때 Source = fake일 확률을 maximize하도록 훈련함.
- G는 Xfake=G(z)를 생성
- P(S∣X)=D(X)
* ACGAN
-
framework
-
목적함수는 2개로 구성
: 맞춘 source의 log-likelihood LS / 맞춘 class의 log-likelihood LC
-
D는 LS+LC를 maximize하도록, G는 LS−LC를 maximize하도록 훈련

- 모든 생성된 샘플에는 기존의 noise z에 더해 해당 class label c~pc가 있음.
- G는 Xfake=G(c,z)를 생성

- input : class 임베딩 & noise 벡터
- output : 이진 분류기 (real/fake) & multi-class 분류기 (이미지 class)
(출처 : https://stephan-osterburg.gitbook.io/coding/coding/ml-dl/tensorfow/chapter-4-conditional-generative-adversarial-network/acgan-architectural-design)
논문) Conditional Image Synthesis with Auxiliary Classifier GANs
PGGAN (Progressive Growing of GANs)
- G와 D는 거울구조를 가짐.

- WGAN-GP(Gradient Penalty) loss 사용 + 미니배치 당 G와 D의 최적화를 번갈아가면서 함. (ncritic=1)


(이때, gp는 loss function이 수렴하는데 영향을 주지 않음)
- WGAN의 weight clipping은 Lipschitz 제약을 적용해서 종종 poor samples을 생성하거나 수렴에 실패하는 경우 발생
→ weight clipping 대신 critic의 weight에 penalty를 준 것이 WGAN-GP
- 추가적으로 discriminator의 output이 0으로부터 너무 멀리 떨어지는 것을 방지하기 위해 discriminator loss에 4번째 term을 넣음

(참고)
- WGAN-GP에서 ncritic=1로 둔다는 것

(Critic : GAN의 discriminator와 유사한 역할)
논문) D2PGGAN: TWO DISCRIMINATORS USED IN PROGRESSIVE GROWING OF GANS
논문) Wasserstein GAN
논문) PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION
참고) https://study-grow.tistory.com/entry/Deep-learning-%EB%85%BC%EB%AC%B8-%EC%9D%BD%EA%B8%B0-StyleGAN-loss-%EC%9D%B4%ED%95%B4-%EC%96%95%EA%B2%8C-%EC%9D%BD%EB%8A%94-WGAN-WGAN-GP
StyleGAN1
- discriminator, loss function을 수정하지 않고 generator의 architecture만 수정했음.
- Style-based generator architecture

-
style-based G는 input latent z를 intermediate latent vector v로 임베딩함으로써 특징들이 선형적으로 잘 분리된 상태가 되게 함.
-
G에 직접적으로 noise를 넣어줌으로써 생성된 이미지의 stochastic 변형(ex>주근깨, 머리)으로부터 high-level 특징(포즈, identity)을 자동으로 분리할 수 있음.
-
affine 변환을 통해 w를 styles y=(ys,yb)로 구체화하고 synthesis network의 각 conv layer 후에 AdaIN 정규화를 수행함.
-
WGAN-GP loss 사용했음 (그대로)
논문) A Style-Based Generator Architecture for Generative Adversarial Networks
StyleGAN2
CycleGAN

(1) Adversarial loss
* X → Y인 경우
: 
* 반대로 Y → X인 경우
: LGAN(F,DX,Y,X)
- X 도메인에서 Y 도메인으로 매핑하고 역매핑도 해야 하므로 2개의 generator를 사용했고 도메인이 2개니까 2개의 discriminator 사용 (도메인의 수만큼 G, D 수 정해짐)
(2) Cycle-consistency loss

- x → G(x) → F(G(x)) ≈ x / y → F(y) → G(F(y)) ≈ y
- 한 도메인이 다른 도메인으로 갔다가(생성) 원래 도메인으로 잘 복원하도록 함.
- 즉, 이미지의 도메인(스타일)을 바꾸되, 다시 원본으로 복원 가능한 정도로만 바꾸는 것
(3) Full loss


+ (4) Identity loss

- input과 output의 색감 유지를 위해 도입
- target 도메인 Y가 input으로 들어왔을 때, 동일한 Y 도메인으로 매핑하는 경우 차이가 적도록해 도메인 Y의 색감을 유지할 수 있도록 한다.
논문) Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks