IT/AI\ML

[논문] GAN ; BigGAN (Large Scale GAN Training for High Fidelity Natural Image Synthesis)

개발자 두더지 2020. 4. 28. 15:40
728x90

1. 도입

 BigGAN는 512x512의 고해상도 조건이 있는 이미지 생성(예를 들어 ImageNet을 학습하여 ImageNet의 라벨을 입력 노이즈에 부수적으로 부여하여 그 라벨에 상당하는 이미지를 생성하는 작업)을 실행하지만, 이 스코어는 놀라운 정도였다. GAN의 평가 지표로써 이용되는 Inception Score(IS)와 FID의 값이 각각 166.3과 9.6으로 기존 SoTA의 52.52와 18.65를 크게 뛰어넘는 결과를 보여줬다.

 

2. Scaling UP GANs

 여기는 높은 스코어를 얻기 위해 어떤 공정을 실시했는지에 대해 설명한다. 먼저 베이스 라인 구성에 대해서 설명하겠다. 베이스라인은 Self-Attention GAN(SA-GAN)이다. 이 구성은 기존의 SoTA이다. 논문중에서는 이 구성의 하이퍼 파라미터 등의 설정에 대해 상세히 기술하고 있다. 아무튼 이 베이스 라인은 단순히 배치 사이즈와 네트워크의 층의 채널 수를 증가시킨다. 아래의 그런 결과를 확인할 수 있다. 파란색 테두리를 보면 베이스 라인부터 배치 사이즈를 8배 (256→2048)로 증가시켰고, 녹색 테두리를 보면 채널 수를 전체 층에 대해 1.5배 증가켰음을 알 수 있다. 최종적으로 이정도의 변환만으로 대폭 스코어를 갱신한다는 것을 알 수 있다. 

  그러나 여기서 끝나지않는다. 논문중에서는 3개의 방법을 추가하여 더욱 스코어를 갱신하고 있다. 그것은 Shared Embedding, Hierarchical Latent spaces, Orthogonal Regularization(위 표의 Shared, Hier.m Ortho.에 대응하는 것)이다. 특히 Hierarchical Latent spaces는 기존에 본 적이 없는 개념이므로 여기서 잠깐 설명해둡겠다. 아래의 그림은 Generator를 표시한 것이다. 일반적으로 cGAN에서 입력 노이즈를 최초의 층만 전달하지만, 여기에서는 먼저 그 입력 노이즈를 split하여 각 ResBlock에 전달하고 있다. 이러한 것을 논문에서는 Hierarchical Latent spaces이라고부른다.

<노트>

orthogonal regularization(直交正則化)란 과학습(Overfitting)에 의해 모델의 성능저하를 예방하는 정규화 방법의 하나이다. BigGAN에서 직교정규화이외에도, CNN의 학습효율을 향상시키는 방법 중 하나인 Skip connection도 사용된다.

 

3. Trading Off Variety and Fidelity With the Truncation Trick

 다음에 실행되는 것은 Truncated Trick이다. cGAN에서뿐아니라 GAN에서는 입력 노이즈는 N(0,1)부터 샘플링하지만, 이 샘플링한 값 중 Threshold를 넘는 것은 재샘플링하여 Threshold 안에 포함되도록한다. 이러한 것을 눈문에서는 Truncated Trick이라고한다. 따라서, Threshold가 작으면 작을수록 노이즈의 분산은 좁게 된다. 그럼 이 Threshold의 값을 변경시켜가며 FID나 IS를 구하는 것이 될까? 그것에 대한 그림은 아래와 같다. 이것은 Threshold의 값을 변화시켜가면서 Generator의 출력을 보여주는 것이다. Threshold의 값은 2.0에서 0.004 사이로 변화하여, 오른쪽으로 갈수록 Threshold의 값이 작아지고 있다. Threshold의 값이 최고 작아질 때는 다양성이 손실되고, 최대화 될 때는 질이 떨어진다. 

 또한 다양한 Threshold로 학습하여 FID와 IS를 구하는 것은 아래의 그림과 같아. 빨간곡선이 BigGAN이지만, 본문에서 짐작할 수 있듯 Threshold를 작게하면 IS와 FID가 크게 된다. 즉, 적당한 Threshold를 찾을 필요가 있다. (실은 이 Truncated Trick에서 Orthogonal Regularizaton을 할 필요가 있다는 문맥이다.)

 이상, BigGAN가 기존의 GAN에 어떤 공정을 더했는지 설명했다. 정리하자면 아래의 세 가지이다.

- 배치 사이즈, 채널 수 증가시켜 스코어 상승

- Shared Embedding, Hierarchical Latent Spaces, Orthogonal Regularization으로 스코어 상승

- Truncated Trick으로 적당한 Threshold을 선발할 필요가 있음

 

4.  Analysis

 앞에서는 BigGAN의 공정에 대해 설명했지만, 학습의 안정성에 대해서는 얘기하지 않았다. 실제 논문에서는 앞 장이 끝날무렵 '512 x 512의 고해상도 이미지를 생성에서는 학습을 진행하면 학습이 collapse가 되어 버리기 때문에 early stopping을 실시할 필요가 있다'고 설명하고 있다. (아래의 그림 참조)

 논문의 분석의 장에서는 Generator과 Discriminator에 의한 고해상도에서는 왜 학습이 안정되지 않는지 (기존의 학습에 안정성을 주는 방법이 왜 효과가 없는 것인가)에 대해 설명한다. 여러가지에 대해 설명했지만, 여기서 자세한 것에 대해서는 생략하고 한 가지에 대해 얘기한다. 여러 안정화 방법 중 Zero-Centered Gradient Penalty라는 것이 있다.  비교적 최근에 나온 것으로 ICLR2019에도 이것에 관련하여 상세하게 설명한 논문이 있다. Discriminator의 손실 함수에 그 항목을 추가하여 안정화하고 있는 것으로, 물론 이 논문에도 이 방법을 시도하고 있다. 그러나 학습이 안정되도 IS가 45% 떨어지고 만다.  (항의 계수도 작지만 20% 떨어진다) 충분한 제약은 학습의 안정성에 기여를 할지 모르겠지만, 성능의 수준을 떨어뜨린다고 논문에서 말하고 있다.

 

5. Experiments

 실험은 ImageNet을 이용하여 실시하고 있다. 다양한 해상도 (128x128, 256x256,512x512)을 생성하고 있다. 지금까지의 GAN논문이라면 평가지표는 대체로 IS나 FID를 얘기하지만, 이번에는 Truncated Trick을 실시하는 만큼 아래의 세 항목의 지표를 추가한다.

- FID가 최고 낮을 때의 FID/IS (아래에서는 min FID/IS)

- IS가 최고 클 때의 FID/IS (아래에서는 FID / max IS)

- FID가 낮고, IS가 최고일 때의 FID/IS (아래에서는 FID / valid IS)

세 개의 지표를 선정하고 있는 이유는 잘 모르겠지만, 세개의 지표가 중요하다. 그 결과는 아래와 같다. 왼쪽부터 3개의 열은 Truncated Trick을 실해하지 않은 때의 지표이다. 그럼에도 상당 갱신하고 있다. 덧붙여서 Model:BigGAN, Resolution:128의 FID / valid IS가 Introduction에서 설명한 FID와 IS의 값이 된다.

 이처럼 어느정도 낮은 FID를 가지면 IS도 꽤 높은 학습이 가능하다는 것을 알 수 있지만, 라벨에 따라는 깔끔하게 생성되어 나온다고는 할 수 없다. 아래의 그림의 (b)와 같이 인물 라벨은 아직 깔끔하게 생성하지 못하고 있는 상태이다.

 마지막으로 Appendix에 대해 살펴보자. 

<노트>

Inception 스코어와 Frechet Inception Distance(FID)는 GAN의 생성 이미지의 품질을 측정하는 지표이다. Inception 스코어란 식별 네트워크의 인식 용의성과 생성 이미지의 다양성이라는 두 개의 관점을 고려하는 지표로, 값이 높을 수록 높은 품질을 의미한다. 한편, FID는 Inception 스코어에서 고려되지 않았던 식별대상으로써의 실제 이미지를 고려한 지표이다. 값이 낮을 수록 고품질임의 의미한다.

 

6. Appendix E Choosing Latent Spaces

 여기서는 입력노이즈를 어떤 분산에서부터 샘플링하여야 좋은가에 대해 분산 하나 하나에 대해 상세히 기술하고 잇다. 논문중에서는 결국 Truncated Trick을 사용하는 하므로 여기서 어떤 분산을 이용하든 큰 차이가 없다고 결론에 설명하고 있지만, 잠재공간에 대해서 지금까지 상세히 언급한 논문이 없기 때문에 언급해 두었다.

 

7. Appendix F Monitored Training Statistics

 여기서 다양한 손실함수를 사용한 Generator 과 Discriminator의 학습에 대해 설명하고 있다. 논문에도 있듯, Gradient penalty를 포함한 학습은 안정적이므로 IS가 떨어진다고 설명한다. 

 

8. Appendix G Negative Results

시도했지만 안됐던 것에 대해 각 항목마다 설명하고 있다. 예를 들어 Normalizaiton을 할 때의 Batch Normalization을 할지, Spectral Normalization을 할지, Instance Normalization을 할지 등에 대한 실험도 있다. 여기서 BatchNorm이외의 WeightNorm이나 SepctralNorm을 시험했지만 학습을 cripple시켰다고도 작성되어 있다. 그 밖에 다양한 Tip들이 존재하므로 직접 읽어보는 것을 추천한다.

 

9. Appendix H Hyperparameters

 마지막의 Appendix는 Hyperparameters에 대한 설명이다 learning rate나 gradient penalty의 계수에 대해서 그 값의 범위를 실험하여 가장 좋은 값을 선발하는 과정에 대해 이야기하고 있다.

 

10. Summary

 점수만 놓고 보면 놀랄 수 밖에 없지만, 실제로는 Truncated Trick에 적당한 Threshold를 선택할 필요가 있고, 학습이 불안정하므로 아직 개선의 여지가 필요하도 생각된다. 전체 논문에 대해 읽고 싶은 사람은 링크를 참조하길 바란다.


참고자료

https://medium.com/@crosssceneofwindff/large-scale-gan-training-for-high-fidelity-natural-image-synthesis-about-biggan-b1f7c02228a4

 

728x90