PGGAN

suhan cho·2022년 8월 24일
0

Abstract

  • GAN을 통해 고해상도 이미지를 만든다하면 발생하는 문제점
    • 고해상도 이미지를 만드는 것은 어려운 일이다 High Resolution일수록 Discriminator는 Generator가 생성한 Image가 Fake Image인지 아닌지를 구분하기 쉬워지기 떄문
    • 고해상도 이미지를 잘 만든다 해도, 메모리 제약 조건 때문에 mini-batch size를 줄여야 한다. batch size를 줄이면 학습과정 중 학습이 불안정해지는 현상이 발생

Progressive

  • 점진적으로 Generator과 Discriminator를 키우는 것

점진적으로 Layter add해서 학습할 시 장점

  • Imgae Distribution(각 이미지마다 분포가 다르다)에서 Large scale 구조를 먼저 발견하도록 도움을 준다
    -> largeScale이란 celebA라는 사람 얼굴에 대한 Dataset있다고 할 시 이 데이터셋에서 Large Scale이란 전반적인 전체 얼굴의 형태

  • 맨 처음에는 저해상도 이미지에서만 보여질 수 있는 Feature인 Large Scale들을 보면서
    사람 얼굴에 대한 전반적인 내용들을 학습을 진행하고 점차 레이어를 쌓아 올라갈 수록 세부적인 Feature(눈,코,입 등)들을 보면서 학습을 진행해간다

  • 모델에 레이어를 추가할 때 새로 추가하는 레이어를 부드럽게, fade in 하게 넣어준다

  • transition하는 동안, weight가(a알파) linear하게 0~1로 증가하는 residual block처럼 더 높은 해상도에서 작동하는 레이어를 처리한다.

  • Feature vector를 RGB color로 만든다. RGB color를 Feature Color로 변환

  • 점진적으로 레이어를 쌓아가며 학습하는 방법은, 학습이 안정적으로 된다는 장점이 있다

  • 점진적으로 레이어를 쌓아가며 고화질 이미지를 생성해내는 방법은, Resolution에 맞게 latent vector가 mapping되면서 학습된다는 장점이 있다.
    -> 안정적으로 고해상 이미지를 만들 수 있다(이러한 학습을 위해서는 WGAN-GP Loss를 적용해야한다)

학습방법

Ganerator

UpScaling

  • 일반영상을 고화질로 볼경우 화질이 좋지 않다
  • 부족한 pixel들을 채우므로서 더 선명하게 보여주도록 하는 것

Fade In

  • transition(G에서 Up Scaling, D에서는 Down Scaling)weight(alpha)가 linear하게 0~1로 증가하는 reidual block처럼 안정화 하기 위해서 alpha값에 제어가 된다. 따라서 새로운 레이어가 완전히 학습 안정적 될 때까지 0~1사이 값으로 증가

Normalization in G and D

  • Gan은 G와 D간의 불필요한 경쟁으로 인해 훈련중 신호 크기가 제어를 벗어나는 것이 있다
  • 이럴 억제하기 위해서 Batch Normalization 방법이 사용된다
    -> Convariate shift현상을 제거하기 위해 도입
  • 여기서는 Pixelwise feature vector normalization이용하여 위의 문제 해결

Pixelwise Feature Vector Normalization

  • 일반적으로 사용하는 Batch Normalization을 사용하는 것은 효과가 없기에 이 방법을 사용
  • pixcel단위 별로 정규화하는 것

Discriminator

DownScaling

  • real images를 downscaling하여 넣어준다 저해상도 이미지로 변경이 되긴하지만, 고해상도 이미지에 대한 정보를 담고 있다
  • Resolution transition하는 중에 Real image의 두개의 해상도 사이를 보간한다.
    -> fade in과정

Minibatch Standard deviation

  • Gan 특징으로 훈련중 train data에서 찾은 Feature Information보다 less variation한 generator image를 생성해내는 경향이 있다
    -> 이로 인해 고해상도 이미지를 생성해내기 어렵다(이를 해결하고자 Minibatch Standard deviation 방법고안)

  • Discriminator가 Mini Batch전체에 대한 Feature statistics를 계산하도록 Real train image data와 Fake batch image를 잘 구별해내도록 도움을 줄 수 있어서 사용

  • 생성된 배치 이미지에서 계산된 Feature statistics가 training된 batch image data의 statistics와 유사하게 만들도록 Generator가 less varation을 갖는게 아니라 더 풍부한 varation한 것을 생성해내도록 권장

Equalized Learning Rate(runtime weight scaling)

  • layer가 비슷한 속도로 학습하는 것을 위해 사용

출처: https://sensibilityit.tistory.com/508

profile
안녕하세요

0개의 댓글