StyleGAN1에서 발생하는 blob-like artifact와 phase artifact를 해결
또한 성능을 개선하기 위해 path length regularization을 사용하고 img에 해당하는 latent vector를 찾는 inversion 방법 제안
이를 통해 더 높은 품질의 img를 생성하고 이미지를 부드럽게 변경할 수 있게 됨
Removing Normalization Artifact
StyleGAN1에서 스타일 적용 시 AdaIN을 사용하기 때문에 blob-like artifact(물방울 모양의 부자연스러움)이 발생한다고 추측 -> normalization을 적용하면 artifact X
왜냐하면 AdaIN은 feature map을 개별적으로 정규화하기 때문에 서로 연관된 feature map의 정보가 소실되기 때문이다.
이를 해결하기 위해 본 논문에선 mean값에 대해선 건드리지 않고 std만 바꿔도 기능상 충분하다는 것을 알아냄
feature map의 std만 변경하면서 최대한 style block외부에서 feature map값을 변경하려함
이때 feature map의 std를 변경할 때 feature map 자체를 std로 나누는 것이 아니라 곱해지는 weight값을 바꿔서 동일한 기능을 수행
(d)architecture에서 modulation은
기대되는 output activation의 std는
이기 때문에
로 demodulation 해줌 -> conv연산 후에도 scailing되지 않도록, why? feature map 자체의 값을 직접적으로 바꾸는 것이 X + 다음 layer에서 modulation을 다시 진행하기 위해서
-> weight demodulation을 통해 각 스타일이 generator에서 적절히 localized
Path Length Regularization
FID값이 같더라도 PPL값이 낮으면 img quality가 더 좋음
따라서 PPL값을 낮추기 위해 Path Length Regularization 진행
공식은 다음과 같은데 이는 방향과 상관없이 W가 일정하게 움직이는 만큼 G(w)도 일정하게 움직이게 됨 -> inversion이 더 잘 되는 효과
Progressive Growing X
StyleGAN1에서 progressive growing 방법을 사용하기 때문에 phase artifact(방향이 바뀌어도 특정 요소에 대해서는 변화 X) 발생
왜냐하면 GAN은 high-frequency특징을 잘 학습하는 특징이 있는데 4X4의 resolution에서는 얼굴과 배경의 차이가 명확하기 때문에 이런 특징은 high-frequency이기 때문에 4X4의 resolution에서 이런 위치들이 고정되어서 해상도가 올라갈수록 고정된 위치가 바뀌지 않는 현상이 나타남
따라서 progressive growing 방법 대신 단순한 feed forward방법 사용
skip generator와 residual discriminator의 방식으로 architecture를 구성
Large Network
더 높은 resolution일수록 output pixel에 기여도가 높은 것이 바람직 한데
(a)를 보면 반대 상황임 -> 이는 모델의 capacity가 부족한 것이라 생각하고 모델의 capacity를 늘렸더니 (b)처럼 합리적인 결과가 나옴
Inversion