Progressive GAN

Lim SeJin·2023년 8월 12일
1
post-thumbnail
post-custom-banner

Progressive GAN을 선택한 이유
요새 대부분의 GAN의 기초가 되는 PG-GAN(Progressive Growing of GAN)Paper를 한 번 리뷰를 해볼까 한다.
스타트업에서 사용하였던 VITON도 안정적인 생성을 위해 Progressive(점진적)구조를 가지고 있었다. 그 유명한 StyleGAN 또한 마찬가지!
따라서 반드시 리뷰하지 아니할 수 없었다.

논문 자체가 어렵지 않으니 내용을 파악하고 읽어보면 훨씬 술술 읽히기 때문에 한글로 된 요약자료 한 번 보고 논문을 읽는것도 강추한다!

Reference :: Progressive Growing of GANs for Improved Quality, Stability, and Variation


1. Introduction

Progressive Growing of GAN,
이름에서 알 수 있듯이 점진적으로(progressively) 이미지를 형성하는 GAN이며, 이러한 구조를 통해 본 논문에서는 low-resolution에서부터 안정적으로 이미지를 Generate하여 다음 단계로 점진적으로 upscale하여 차근차근 단계를 밟듯이 high-resolution 이미지를 생성하는 GAN이라고 정리해볼 수 있다.
이를 통해 high-resolution 이미지를 한번에 생성하려는 기존의 불안정한 GAN과는 달리 차근차근 생성함으로써 고해상도의 이미지를 안정적으로 생성할 수 있다.


2. Progressive Growing of GANs

Summary : Progressive Architecture

Architecture

낮은 해상도에서부터 Image를 Generate하여 높은 해상도의 이미지를 점진적으로 만들어낸다. Low Scale의 Layer의 훈련이 어느정도 완료되면, 다음 Layer를 삽입하여 훈련을 진행한다.

Layer Notation
toRGB : Feature Vector를 RGB 3channel로 변경하는 1x1 conv
FromRGB : RGB 3channel를 Feature Vector로 변경하는 1x1 conv
2x : Nearest Neighbor Filtering을 이용한 Up-scaling
0.5x : Average Pooling을 이용한 Down-scaling

해당 Figure를 설명하면 다음과 같다.
1. (a)와 같이 Low scale(16x16) Layer의 훈련을 완료한다.
2. (b)와 같이 Next Scale(32x32) Layer를 추가시킨다. 이 때, Residual 구조를 적용하여 Image에 Fade 효과를 준다.
3. (c)와 같이 삽입을 완료한 이후 해당 Layer를 훈련한다.

** Fade-In Architecture
본 논문에서는 다음 Layer 삽입 시 sudden shock를 우려하여 Residual 구조로 Fade 효과를 주었다. 특히나 이 구조는 낮은 해상도(small resolution)에서 어느정도 훈련이 완료된 Discriminator가 갑작스러운 Layer삽입 변화에 적응할 수 있게 도와주는 데에 효과적이다.

Advantages of Progressive

Progressive한 Architecture로 다음과 같은 효과를 얻을 수 있었다.

1. 고해상도 이미지 생성이 매우 안정적
2. 기존 GAN에 비해 같은 Score대비 시간 절감효과


3. Increasing Variation Using Minibatch Standard Deviation

Minibatch Discrimination

기존 GAN에서는 Generated Output Variation이 Train set의 특정 Variation에 치우쳐진 경향을 보이는 문제점이 있었다. 이러한 문제점을 해결하기 위해 나온 방법이 바로 Discriminator에 Minibatch 단위의 통계값(statistics)를 이용하는 방법이다.

Minibatch stddev Layer

본 논문에서는 해당 통계값을 Minibatch단위의 Standard Deviation을 이용하여 생성 이미지 Variation 문제를 해결하여 하였다. 방법은 다음과 같다.

  1. Minibatch의 Spatial Location으로부터 각각의 feature들의 standard deviation을 구한다. (NxCxHxW → 1xCxHxW)
  2. 모든 Feature와 Spatial Location에 대한 평균을 추정하고 하나의 Feature Map으로 표현한다. (1xCxHxW → 1x1xHxW)
  3. 이 값을 concat하여 Minibatch들에 대하여 하나의 Constant Feature Map으로 반영한다.

해당 Layer에 대해서 어디에도 삽입이 가능하나, 실험적으로 Discriminator의 가장 마지막 Layer에 삽입하였을 때 효과가 가장 좋다는 것을 확인할 수 있었다.


4. Normalization in Generator and Discriminator

GAN의 학습 과정에서는 Generator와 Discriminator의 건강하지 못한 경쟁으로 인해 신호 크기가 커지는 문제점이 있으며 이를 covariate shift라고 판단하였다. 그렇기에 covariate shift을 Batch Normalization으로 해결하여 하였다.
하지만 본 논문에서는 GAN에서 Covariate Shift 문제점을 확인할 수 없었으며 이에 신호 크기와 경쟁 자체를 제한하는 방법을 통해 문제에 접근하였으며 다음과 같은 방법을 통해 문제를 해결하였다.

Equalized Learning Rate

기존 Trend의 신중한 Weight Initialization이 아닌 Rough한 Normal Distribution을 사용하여 초기화하였다.
RMSProp, Adam과 같은 Adaptive SGD 방식은 scale에 불변한 상태로 추정 표준편차를 이용하여 Gradient를 Update한다. 이러한 방식은 상대적으로 큰 dynamic Range를 가진 일부 파라미터들의 적응 시간이 느릴 수 있다는 단점이 있다. (매우 큰/작은 값에 대하여 적응 시간 자체가 느림)
본 논문에서는 Normal Distribution 초기화를 통해 모든 파라미터, weight에 대하여 동일한 Learning Speed를 가질 수 있도록 하였다.

Pixelwise Feature Vector Normalization in Generator

Generator와 Discrimnator의 경쟁 간 신호 크기가 무한으로 커져 통제 불능이 되는 것을 방지하기 위해 Pixel단위로 Feature Vector를 Normalize하였다.
정확히는 Generator의 Conv Layer 이후에 pixel마다의 Feature vector를 Unit Length를 통해 Normalization하였으며 이러한 value scaling을 통해 적절한 신호 연산이 가능하게 만들었다.
해당 방법은 신호크기를 줄이면서 Generated Image 결과값에 큰 영향을 끼치지 않다는 사실 또한 확인하였다.


5. Multi-scale Statistical Similarity for Assessing GAN Results

기존의 MS-SSIM이라는 평가지표는 Large-scale한 모드붕괴(Mode-Collapse)와 같은 점은 안정적으로 찾아내는 평가지표였으나, 더 작은 effect들(색, 텍스쳐의 다양성 등)과 Generate Image와 Training set과의 Similarity를 평가하는데에는 부적절한 모습을 보였다.

이에 본 논문에서는 따로 Multi-scale Statistical Similarity를 제시하였다. 해당 방법은 완성된 Generator라면 모든 해상도(scale)에서 local image structure가 training set과 유사해야한다는 직관적인 가정으로부터 시작한다.

  1. 16384(2^14)개의 Random 이미지 및 128(2^7)개의 7x7크기의 Descriptor를 선정 (channel값 생략)
  2. Specific Spatial Frequency band를 나타내는 Laplacian기법을 통해 선정된 Target/Generate Image에 적용
  3. 모든 Image에 대하여 Descriptor로 Local Image Patch를 계산
  4. 계산된 Local Target/Generate Image Patch들을 모두 각각 Normalization
  5. SWD(Sliced Wesserstein Distance)를 통해 Target-Generate Image Patch들의 분포 차이 계산 -> 분포 Similarity 계산

이 때 Patch간 작은 SWD값은 곧 Target-Generate Patch의 유사성이 크다는 것을 의미한다. 덧붙이자면 Target과 Generate Image Patch가 해상도 측면에서 외적인 것(appearance)이나 Variation 모두 유사하다는 것을 의미한다.

위 표에서도 알 수 있듯이, (a)~(h)간 시각적으로 좋은 변화가 있었음에도 불구하고 MS-SSIM은 해당 변화점을 수치화 하지 못하였지만 본 논문에서 제시한 Multi-Scale Statistical Similarity는 이를 수치화하여 표현할 수 있었음을 나타내었다.


+ Personal Opinion

~6 Experiment 부분은 생략하였으며 이하 개인적인 견해이다.
이하 생략한 이유는 Experiment부분 부터는 위에 언급된 내용을 토대로 어떤문제점이 어떻게 해결되었는지 시각적으로 확인하거나 수치적으로 표현한 요소들이 많았으며, 해당 내용은 직접 정리하기보다는 논문에 있는 다양한 시각별첨들과 함께 확인하는 것이 더욱 효과적이라고 생각되었다. 또한 이미 장점들에 대하여 모두 언급하였기 때문에 이를 검증하는 자료를 다시 정리하기.. 귀찮았다.

Progressive GAN의 핵심인 Progressive Architecture는 가장 처음에도 언급했듯이 다른 Generate Model의 핵심이 되는 구조로 자리잡았으며 이에 이 논문을 정리하였다.

전체적으로 짜임새 있게 논문을 구성하여 읽고 정리하기 편했지만 Minibatch stddev Layer관하여 영어실력이 부족해서 그런지 해석이 조금 난해하였다. 또한 표에서 채널 값이 512 -> 513으로 concat한 Feature Map을 반영해두었는데, 다음 conv3x3 Layer에서 다시 채널값이 512로 줄어들어 있어서 "어떤 계산으로 줄어들었지..?" 라는 의문이 들긴 하였다.
(아시는 분 있으면 댓글 달아주시길 바랍니다..!!😢)

profile
INTJ, Interested in Computer Vision
post-custom-banner

2개의 댓글

comment-user-thumbnail
2023년 8월 12일

좋은 글 감사합니다. 자주 올게요 :)

1개의 답글