저자 : Tero Karras(NVIDIA), Timo Aila(NVIDIA), Samuli Laine(NVIDIA), Jaakko Lehtinen(NVIDIA and Aalto University)
2020.06.27 기준 Citation : 1819회 (Google Scholar 참조)
2017년 10월에 처음 제출되었고 2018년 ICLR에 제출된 논문입니다. 아직까지 인기있는 논문 중 하나로 많은 배움을 얻을 수 있을 것이라 판단됩니다.
맨 아래 paperswithcode를 기반으로 순위에 대한 PGGAN의 대단한 성능에 대해 기술해놓았으니 참조하시길 바랍니다.
cf) 2020.09.07 update
처음 글을 적을 때 Progressive Growing of GANs For Imporved Quality, Stability and Variation을 PGGAN이라 설정했었지만 BigGAN에서는 이 논문을 ProGAN이라 다루고 Facebook Pytorch GAN ZOO에서는 PGAN으로 명명하여 설명하고 있습니다. 추후에 논문을 많이 다뤄보며 수정해야한다면 바꾸도록 하겠습니다. 지금은 우선 PGGAN이라 설명드립니다.
Official Demo
논문 링크 : https://arxiv.org/abs/1710.10196
목차
Abstract
1. Introduction
2. Progressive Growing of GANs
3. Increasing Variation using Minibatch Standard Deviation
4. Normalization in Generator and Discriminator
5. Multi-Scale Statistical Similarity for GAN results
6. Experiments
7. Discussion
8. Acknowledgements
핵심 아이디어는 generator와 discriminator를 점진적으로 키우는 것이다. 이를 통해 훈련에 있어 속도를 향상시키고 훨씬 안정화함과 동시에 당시까지 가장 좋은 화질의 이미지들을 생산할 수 있습니다.
CELEBA Dataset에서 unsupervised 부분으로 inception score를 8.8 받았습니다. 또한 새로운 GAN을 평가하는 방법에 대해서 제안하고자 합니다.
한번에 전체 크기의 image feature들을 학습 시키기보다 4 x 4 저해상도를 시작함으로써 Large-scale structure를 찾아내도록 하고 점차 finer scale detail을 찾을 수 있도록 1024 x 1024 고해상도로 높아지는 것이 해상도적 측면에서 더 도움이 된다는 것이 요점입니다.
이 때 네트워크에 새로운 layer들을 집어넣는 과정은 figure 2에서 보이는 것과 같이 부드럽게 키워 넣습니다.
(fade in : 점점 더 또렷해지다, 점점 똑똑해지다, 점점 더 크게 하다)
이 방식을 통하여 잘 훈련된 저해상도 layer에 너무 갑작스런 충격을 주는 것(sudden shock)을 방지하는 효과가 있습니다. 이에 대한 자세한 적용법에 대해서는 Appendix A를 참조하세요.
progressive training 점진적 훈련법에는 여러 장점들이 있습니다.
1) 안정성
저해상도에서는 class 정보가 적고, mode가 적기 때문에 이미지 생성에 있어 상대적으로 더 안정적입니다. 또 한 번에 전체 이미지에 대한 학습은 복잡한 반면 점진적 학습법을 통해 간단한 질문을 여러번 건내는 방법론이기에 WGAN-GP loss 심지어는 LSGAN loss를 활용한 점진적 학습법은 안정적으로 고해상도 이미지를 합성할 수 있습니다.
WGAN-GP(Wasserstein GAN Gradient Penality)
WGAN-GP Loss : https://arxiv.org/abs/1704.00028
"Improved Training of Wasserstein GANs"
LSGAN loss : https://arxiv.org/abs/1611.04076
"Least Squares Generative Adversarial Networks"
2) 시간 감소 : 2~6배 가량 더 빠르다.
점진적 학습 방법은 서로 다른 공간적 해상도를 작동하는 여러 개의 discriminator를 사용하는 아래 Wang et al.(2017) 논문과 관련이 깊습니다.
"High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs"
위 Wang et al.(2017) 논문은 아래 3가지의 분류의 논문들에게서 영감을 얻었는데 그 분류별 논문은 아래와 같습니다.
(1)1개의 generator 여러개의 discriminator
"Generative Multi-Adversarial Networks"
(2)여러개의 generator 1개의 discriminator
"Multi-Agent Diverse Generative Adversarial Networks"(MADGAN)
(3) Hierarchical GANs
1개의 generator와 각 level별 image pyramid discrimiator
"Deep generative image models using a Laplacian pyramid of adversarial networks."
https://arxiv.org/abs/1506.05751
"Stacked generative adversarial networks."
https://arxiv.org/abs/1612.04357
"StackGAN: text to photo-realistic image synthesis with stacked generative adversarial networks."
이 3가지 중 (3)에 해당하는 것이 우리들의 방법과 매우 유사한데 중요한 차이점은 바로 우리는 hierarchy가 아닌 단일 GAN을 사용했다는 것 입니다.
GAN은 훈련 데이터로부터 부분적인 variation만을 묘사하려는 경향이 있습니다. (즉, 일부의 variation만을 가지고 이미지를 생성한다는 의미.)
참조) Mode Collapsing(일부의 데이터 분포만을 사용하고자 하는 현상) 해결 방안
- feature matching
- minibatch discrimination
- historical averaging
이를 해결하기 위해 제안된 것이 "Minibatch Discrimination" 입니다.
Salimans et al. "Improved techniques for training GANs". In NIPS, 2016.
(Ian J. Goodfellow가 2 저자) - 3546회 인용
이 방식은 feature statistics를 개별적 이미지들 뿐 아니라 minibatch 전체에 대해서도 계산함으로써 생성된 이미지와 학습 이미지들 간에 비슷한 statistics를 가지도록 했습니다. 보통 discriminator의 끝 단에 minibatch layer를 추가함으로써 적용합니다.
minibatch들에서 생성한 각각의 통계치들을 생성한 후 layer output에 concat시킴으로써 내부적으로 discriminator가 통계를 사용할 수 있도록 합니다.
(무슨 말인지...)
결과적으로 우리는 이 방식을 극단적으로 단순화함으로써 variation을 늘렸습니다.
이 방식은 학습해야할 parameter나 새로운 hyperparameter가 필요하지 않습니다. (그만큼 단순한 방식이라는 의미)
단순히 아래의 순서를 통해 구하는데
1) 각 minibatch의 각 spatial location에서 각각의 feature들의 standard deviation을 계산합니다.(Input : N x C x H x W -> Output : C x H x W)
2) 모든 feature들과 spatial location에 대한 평균을 추정하고 하나의 값으로 표현합니다.(Input : C x H x W -> Output : 1 x H x W)
3) 이 값을 복제하여 minibatch들에 대응하는 모든 spatial location들에 하나의 추가적인 constant featue map을 생성한 것을 concat합니다.
(당연히도 2)에서 구한 추정 값은 constant)
우리는 이것 layer가 어디에도 들어가도 좋으나 마지막에 들어가는 것이 가장 좋음을 확인할 수 있었습니다.(Appendix A.1 detail 확인)
-) 별루 중요하지 않은 단락
다른 variation problem의 해결책은 unrolling the discriminator를 포함하는 것(Metz et al. 2016)과 새로운 loss term을 generator에 추가하는 "repelling regularizer"(Zhao et al. 2017)입니다. (이 방식들은 해보지는 않은 듯)
이 방식들이 자신들보다 더 높은 variation을 보일 수 있을 것임을 인정한다.
즉, 이 곳에서 하고자하는 이야기는 Salimans et al(2016)이 제시한 Minibatch Discrimination를 자신들이 고안한 단순화 방식을 통해 variation을 늘렸고 이를 통해 GAN의 나쁜 경향성을 어느 정도 타파하였다고 해석할 수 있을 것 같습니다.
GAN은 2개의 네트워크들(Generator, Discriminator) 사이에서 좋지 못한 경쟁의 결과로 Signal Magnitude가 증가하는 경향이 있습니다. 초창기 이런 것들을 누그러뜨리게 위해서 Batch Normalization을 사용했으나 우리는 GAN에서 covariate shift와 관련된 issue를 관찰할 수 없었습니다. 때문에 실질적으로 GAN에서 필요한 것은 Signal Magnitude와 경쟁을 제한하는 것이 중요하다고 믿습니다.
그래서 우리는 2 요소로 구성된 접근 방식을 채택하고자 합니다. 물론 이 때 학습 파라미터가 필요하지 않습니다.
4.1 Equalized Learning Rate
기존의 신중한 weight initialization 방식에서 벗어나 우리는 weight initialization을 N(0,1) (표준정규분포, Gaussian Distribution과 같은 말)로 한 후 runtime에서 weight들을 scale한다.
이 때 w는 weights,
c는 He's initializer로부터 제안된 per-layer normalization constant이다.
Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun.
Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. CoRR, abs/1502.01852, 2015.
본래 RMSProp나 Adam과 같은 adaptive SGD 방식은 scale에 불변한 상태로 추정 표준 편차를 이용하여 gradient를 update합니다. 그 결과 상대적으로 큰 dynamic range를 가지는 일부 파라미터들에 대해서 적응하는데 시간이 더 오래걸립니다. (즉, 동일한 dynamic range를 가질 수 있도록 weight들을 수정함으로써 동일한 학습 속도를 보장하게 한다.)
우리들의 접근 방식은 모든 weights들이 동일한 dynamic range를 가짐으로써 동일한 learning speed(학습 속도)를 가질 수 있도록 보장합니다.
4.2 PixelWise Feature Vector Normalization
generator와 discriminator 간의 경쟁으로 인해 두 네트워크의 magnitude가 통제불능의 상태가 되는 시나리오를 막기 위해 우리는 generator에서 각 conv layer 이후에 pixel마다의 feature vector를 unit length로 normalize했습니다. 우리는 이것을 Local Response Normalization을 통해 행하였으며 그 식은 아래와 같습니다.
N = feature maps 개수
=pixel(x,y)의 원래 그리고 normalized feature vector를 가르킵니다.
이 방식이 generator에 해로워 보이지 않았고 오히려 이를 통해 필요시 효과적으로 signal magnitude 상승하는 것을 방지하고 있습니다.
서로 다른 GAN들 간의 결과를 비교하기 위해 많은 이미지들을 비교해야하는 수동적인 작업이 필요하다. 그러나 우리는 자동화된 방식으로 계산하는 방식을 필요로 하였고 MS-SSIM 방식을 찾아내었다. 이 방식은 large-scale mode collapse를 안정적으로 찾아낼 수 있지만 색, 질감 같은 variation의 작은 손실에 적은 영향력을 행사하였고 그 뿐 아니라 training set과의 유사도의 관점에서 이미지의 질을 직접적으로 평가하지 않았다.
우리는 성공적인 generator는 training set이 모든 scale에서 유사한 샘플들을 생성해야한다는 영감을 기초삼아 생성된 이미지와 타겟 이미지들의 Laplacian pyramid(Burt & Adelson, 1987)로부터 뽑힌 local image patch 분포들간의 멀티스케일 통계적 유사성을 고려하는 연구 방법을 제안한다.
Augustus Odena, Christopher Olah, and Jonathon Shlens.
Conditional image synthesis with auxiliary classifier GANs. In ICML, 2017.
1) Training set과 generated set로 부터 각각 local image patch를 얻고,
2) 각 색 채널별 평균과 표준편차로 normalize합니다.
3) 이후 sliced Wasserstein distance(SWD)를 통해 계산한 통계적 유사성을 추정합니다.
작은 Wasserstein distance는 패치들간 유사도가 높다는 것을 의미하고 이는 training image들과 generator sample들간 공간적 해상도적 측면에서 외적인 것이나 variation 모두 유사하다는 것을 의미합니다.
(즉, 좋은 generator임을 알려주는 척도라는 의미인 듯 합니다.)
Appendix A에 네트워크 구조와 관련된 자세한 내용이 있으니 참조하시길 바랍니다.
6.1 Importance of Individual Contributions in terms of Statistical Similarity
Table 1을 통해 SWD, MS-SSIM 방식의 값들을 training configuration에 따라 적은 표를 확인할 수 있습니다.
Figure 3는 Table 1에 대응하는 Generated image들에 대한 그림입니다. 이 내용은 작으므로 Appendix H를 참조하시고 더 많은 그림은 Figure 18에 있습니다.
A good evaluation metric 좋은 평가 기준은 색, 질감, 관점에 있어 다양한 variation을 가지는 설득력 있는 이미지들에게 좋은 보상을 해야한다고 직관적으로 알 수 있습니다. 그러나 이런 관점에서 MS-SSIM은 좋은 기준은 아닙니다.
단순한 예로 (a)와 (h)를 바라보면 (a)는 우리의 논문의 아이디어가 들어가지 않은 논문이고 (h)는 우리의 아이디어가 모두 집약된 내용입니다. 단순히 둘만의 MS-SSIM을 비교했을 때 둘은 비슷합니다. 그러나 실제 생성된 이미지의 퀄리티는 다릅니다.
Table 1에서 SWD를 기준으로 비교해보면 5에서 설명했듯 작은 SWD가 좋은 것을 알 수 있는데 모든 해상도에서 (a)의 SWD 값보다 (h)의 SWD 값이 훨씬 작다는 것을 확인할 수 있습니다.
(a) : 아래의 논문을 의미합니다. batch normalization을 generator에 discriminator에는 layer normalization을 사용하였고 minibatch는 64, WGAN-GP Loss를 사용하였습니다.
WGAN-GP Loss : https://arxiv.org/abs/1704.00028
"Improved Training of Wasserstein GANs"
(b) : 점진적으로 증가하는 network를 구성한 것입니다.
(c) : 작은 minibatch를 사용하는 것으로 우리는 메모리 용량을 생각해서 64에서 16으로 점진적으로 줄여나갔습니다.
(d) : batch normalization과 layer normalization을 정리하고 hyperparameter를 적응시킴으로써 훈련 과정을 안정화시켰습니다.
(e*) : 3에서 다룬 내용으로 mode collapsing을 해결하는 목적으로 사용되는 다른 논문의 해결책을 가져다 사용했습니다.
(e) : 3에서 다룬 내용으로 minibatch discrimination 방식을 자신들의 방식에 맞게 수정하여 discriminator 마지막에 minibatch stddev를 계산합니다.
이를 통해 variation이 증가합니다.
(f) : 4에서 다룬 방식으로 모든 weights들이 동일한 dynamic range를 가짐으로써 동일한 learning speed(학습 속도)를 가질 수 있도록 보장하는 방법을 취합니다.
(g) : Local Response Normalization을 통해 행하여 GAN에서 Signal Magnitude가 상승하는 것을 방지합니다.
(h) : (a)~(g)까지 모두 합친 자신들의 최종 결과물입니다.
6.2 Convergence and Training Speed
Figure 4의 (a)와 (b)는 각각 progressive growing이 없는 그리고 있는 것에 대한 SWD와 훈련 시간에 대한 그래프입니다. 이것을 통해 progressive variant이 있다는 것은 더 나은 수렴에 도달하고 훈련 속도 또한 빠르다는 것을 확인할 수 있습니다.
(c)는 속도에 대한 부분을 자세히 확인할 수 있는 그래프인데 progressive variant의 경우 6.4 million images 640만개의 이미지 생성에 96시간이 걸렸지만 그렇지 않은 경우 520 시간이 걸린 것을 보았을 때 5.4배의 속도 향상을 이뤄냈습니다.
6.3 High-Resolution Image Generation Using CELEBA-HQ Dataset
고해상도 결과에 대한 유의미한 증명을 위해서는 고해상도 dataset이 필요로 합니다. 그러나 매우 낮은 해상도의 제한적인 dataset이 있었기에 우리가 1024x1024에 해당하는 고해상도 이미지 30000개를 만들었습니다.(와우!)
그 자세한 내용은 Appendix C에 있으니 참조하세요.
8 Tesla V100 GPU들로 4일동안 훈련을 시켰습니다.
(여러대를 사용해서 4일 96시간.... 어떤 곳에서 8대라는 이야기가 있음)
GPU Benchmark : https://www.videocardbenchmark.net/gpu.php?gpu=Tesla+P100-PCIE-16GB&id=4039
우리들의 기여가 loss function의 선택에 orthogonal 직교함을 보이기 위해서 우리는 같은 네트워크를 LSGAN loss를 통해 훈련시켰고 그 결과가 Figure 1입니다. Appendix B를 통해 더 자세한 내용에 대해 확인할 수 있습니다.
6.4 LSUN Results
Figure 6,7을 통한 비교에서도 자신들의 것이 좋으며 Appendix G를 확인하여 LSUN 30 카테고리들의 non-curated Figure를 확인할 수 있습니다.
6.5 CIFAR 10 Inception Scores
CIFAR 10에서 가장 좋은 inception score는 unsupervised에서는 7.9, label conditioned setup에서는 8.87로 우리는 알고 있습니다.
우리들의 경우 unsupervised에서 8.8을 성취하였고 더 자세한 내용은 Appendix D, Table 3을 참조하시길 바랍니다.
CELEBA의 네트워크, training setup이 같으나 단 하나 다른 점은 WGAN-GP의 Regularization의 gamma=1에서 gamma=750으로 변경하였다. 이를 통하여 unsupervised setting에서 클래스간 필연적으로 나타나는 ghost들의 수를 감소시켰습니다.
이전 GAN들에 비하여 성능 향상을 이뤘고 큰 해상도에서의 훈련을 안정적으로 진행할 수 있었던 것에 반하여 아직 진정한 PhotoRealism (사진에 가까운 현실주의)에는 갈 길이 멉니다. 그렇긴 하지만 CELEBA-HQ에 있어서는 설득력 있는 realism에 닿을 수 있다고 느낍니다.
(좋은 결과를 뽑아냈다는 의미)
감사인사~
Progressive GAN은 2020.07.06 현재까지도 Image Generation 분야에서 높은 Rank를 선보이고 있습니다.
paperswithcode 참조 : https://paperswithcode.com/paper/progressive-growing-of-gans-for-improved
이 중 CelebA-HQ 1024x1024에 대한 Image Generation을 비교해보면
가장 이전에 나왔음에도 4위에 Rank되어 좋은 성능을 보인다는 것을 확인할 수 있습니다.
단순한 CIGAR-10에 대한 Image Generation 역시 또한 unsupervised section Inception Score가 5위에 Rank 되어있는 것을 확인할 수 있는데 PGGAN 전후로 2018,2019,2020이 모두 석권하는 가운데 유일하게 2017년도 논문이 높은 Rank되어 있음을 확인할 수 있습니다.
위 내용들을 통해 아직도 사랑받을 가치가 있는 좋은 논문이라는 것을 확인하실 수 있었다고 생각합니다.