티스토리 뷰
1. StyleGAN
StyleGAN(A Style-Based Generator Architecture for Generative Adversarial Networks), CVPR 2019에 소개되었으며 추후 다양한 후속 연구 및 생성 모델 연구에 큰 기여를 한 논문이다. PGGAN의 논문의 저자들이 progressive growing의 아이디어와 함게 style transfer의 architecture로부터 영감을 받아 혁신적인 generator를 고안해냈다.
1-1 PGGAN
GAN을 이용해 고해상도 이미지를 생성하는 것은 쉽지 않다. 따라서 latent vector에서 한번에 고해상도의 이미지를 생성하기보다는, 낮은 해상도의 이미지(4x4)를 생성하는 것부터 학습해서 점진적으로(progressive) 레이어를 추가하며 고해상도 이미지(1024x1024)를 만드는 방법을 학습한다.

레이어를 추가할 때는 fade in 방식으로 부드럽게 끼워 넣는다. 아래 그림의 (a) -> (b) -> (c) 순서로 레이어 추가가 진행된다.

(b) 그림이 레이어 추가 과정을 보여준다. 이전 레이어의 output과, 새로운 레이어의 output을 적절하게 더해서 최종 output으로써 discriminator에 전달하는 것이다.
- weight 는 0부터 1로 linear하게 증가한다.
- toRGB operation은 feature을 RGB(num_channel=3)로 만드는 1x1 conv이다.
- 이러한 구조는 StyleGAN2 부터는 사용하지 않는다.
문제점

ProGAN의 경우 latent vector가 generator에 바로 입력으로 들어간다. 이 경우 GAN은 latent space를 학습 데이터의 분포에 맞춰 학습하게 되고, entangle한 latent space를 갖게 된다.

학습 데이터셋의 분포가 전체 데이터의 분포를 다 담지 못하고 비어있는 공간이 있는 경우, latent space가 학습 데이터셋의 분포에 맞춰지려 하다 보니 curved한 mapping을 학습하게 되는 것이다 (warping). Warping이 발생하게 되면 각 style이 급진적으로 변화하게 되어, 생성된 이미지 역시 급격하게 변하게 되는 특성이 존재한다.
풀어 말하자면, 하나의 유전자를 바꿔도 여러 특성에 영향을 주는 것처럼, 인풋을 조금이라도 조정하게 되면 동시에 여러 특징에 영향을 미치게되어 구체적인 특징을 컨트롤하는 능력은 매우 제한적이다.
1-2 StyleGAN


StyleGAN은 Generator의 구조에 초점이 맞추어진 논문이다. 이 Generator architecture에서 주목할만한 부분이 여러 개 있다.
1. Mapping Network
# Disentanglement
Mapping Network에 대해 정리하기 앞서, 이 mapping network를 이용하는 이유인 entanglement에 대해 먼저 정리하려고 한다. Entanglement란 '꼬여있는 것'을 의미하며 그 반대인 Disentanglement는 '풀려있는 것'을 의미한다. 즉, 주로 생성모델에서의 Entangle과 Distangle은 다양한 특징들이 서로 얽혀있는 것과 풀려있는 것을 말한다.
이미지 생성에 있어 예를 들자면, 남성 이미지를 생성할 때 대부분 짧은 머리를 가지고 수염이 있는 데이터가 많기에 머리가 짧고 수염이 있는 이미지가 생성되는 것이다. 다시 말해, 성별들이라는 특징과 수염, 머리카락 길이 등의 특징이 얽혀있는 상황이다. 이는 feature간의 correlation을 가지고 있는 것이다.

만일 여성의 사진이 있을 때, 해당 여성이 수염을 기른 모습의 이미지를 생성해내고 싶은 상황에서, 만약 feature들이 얽혀있지 않는(Disentanglement) 상황이라면 위의 이미지처럼 여성에서 수염만 추가된 이미지가 나와야 한다. 하지만 얽혀있다면(Entanglement) 아래와 같이 수염을 추가했지만 남성의 사진을 만들어 내는 것이다. 이는 수염이라는 특징이 성별, 머리카락 등의 특징과 얽혀있기 때문이다.
기존의 GAN은 학습 데이터의 분포를 따르도록 학습이 된다. 따라서, 학습 데이터에서 보기 힘든 데이터들을 잘 생성해내지 못하고, 그러다 보니 전형적인 데이터셋 및 입력 잠재 분포로부터 feature가 완전히 disentangled하게 학습할 수 없는 것이다.

여기서 (a)는 training set의 feature 분포를 시각화한 것이고, 그 두 개의 축이 머리카락의 길이와 성별이라고 가정했다. 이때 (a)의 시각화된 모습에서 실제 데이터셋에서는 머리카락이 긴 남성은 존재하지 않기 때문에 좌상단 부분은 비어있다. 즉 학습 데이터셋에서 확인하기 어려운 데이터의 밀도가 적은 부분인 것이다. 이러한 학습 데이터 분포를 학습해서 Z latent space에서의 2 factor variation 분포를 시각화한다면 (b)와 같은 원형의 모습을 보일 것이다. 그 이유는 학습에 사용하는 latent vector z가 normal distribution에서 샘플링되기 때문이다. 학습 데이터 분포를 동그란 분포에 맞추려고 하다 보니 그림과 같이 왜곡이 일어나게 된다. 즉, 특정한 분포를 가진 Z-space에서의 각 factor들의 조합의 확률은 학습 데이터에서 해당하는 density와 일치하도록 학습하기 때문에, 위와 같이 왜곡이 발생하고 각각의 factor이 완전히 분리되지 않는 entangled 상태가 발생하는 것이다.
따라서 저자들은 기존의 방식으로는 distanglement를 만들어낼 수 없다고 생각하였다. 저자들이 Disentanglement의 목적성을 고려해 정의한 바는 'latent space가 하나의 variation factor를 컨트롤할 수 있는 linear subspace들로 구성된 상태'이다. 즉, latent space 상에서 하나의 variation factor가 linear하게 움직이고 이 때 다른 factor들은 컨트롤되면 안된다는 것이다. (a)의 학습 데이터셋처럼 두 개의 factor가 각각 linear하게 움직이고 있는 상황이 distangle한 상황이고, 왜곡된 (b)와 같은 latent space는 각각의 factor가 곡선으로 왜곡되어서 움직이는 것을 확인할 수 있으며, 이는 entanglement한 상황이라는 것이다.

이에 저자들은 기존의 Z-space를 non-linear mapping을 학습하는 Mapping Network를 통해서 기존의 학습 데이터 분포의 density를 더 잘 반영하고 variation factor가 더 linear하게 움직일 수 있는 W-space로 mapping 해주게 된다. 즉, 이미지를 더 잘 생성하기 위해서 학습을 하면서 이러한 Z-space를 disentanglement한 latent space로 mapping을 해주는 방식을 mapping network가 학습하도록 하는 것이다. 이렇게 함으로써 Generator는 disentangled representation에 기반해 더 사실적인 이미지를 잘 만들도록 학습이 되는 것이다.

Style based Generator의 구조를 보면 기존의 Generator의 구조와는 다르게 latent code로부터 이미지가 생성되지 않고 constant input으로부터 이미지가 생성되면서 latent code로부터 스타일을 만들어 이러한 스타일을 이미지 생성 과정에 주입시켜줌으로써 새로운 이미지를 생성해낸다.
latent code z를 곧바로 쓰는 대신, 먼저 mapping network를 거쳐 intermediate latent code w로 변환한다. 이렇게 하면 원래의 공간처럼 얽혀 있는(entangled) 표현이 아니라, 데이터 분포에 더 잘 맞고 서로 다른 요인들이 더 분리(disentangled)된 w 공간을 얻을 수 있다. 그 결과, 생성되는 이미지 품질이 좋아지고, 얼굴의 나이·표정 같은 고수준 속성들도 더 쉽게 분리해서 제어할 수 있게 된다.
2. AdalN

일반적으로 딥러닝에서 네트워크를통해 데이터로부터 feature를 학습한다. AdalN은 style-transfer를 위한 Normalization Method로 위의 풍경과 같은 입력 영상에서 딥러닝 인코더 네트워크로부터 추출된 high-level feature map가 아래의 화풍과 같은 style이 입혀진 style-transfer된 이미지를 얻을 수 있다.

이러한 방식을 Image Generation에 도입한 것이다. 생성모델이 만들어내는 영상은 우리가 아는 다양한 스타일들의 조합으로 생각할 수 있다. 여기서 스타일은 w를 fc layer을 거쳐 input channel과 동일한 크기의 ys, yb라는 scaling factor, bias factor로 들어가게 될 것이다.

AdaIN에서 정규화를 할 때마다 한 번에 하나씩만 w가 기여하므로 하나의 style이 각각의 scale에서만 영향을 미칠 수 있도록 분리를 해주는 효과를 갖는다. 따라서 style을 분리하는 방법으로 AdaIN이 효과적으로 사용될 수 있다.
또한, generator의 매 layer마다 AdaIN을 통해 새로운 style을 입히게 되므로, 특정 layer에서 입혀진 style은 바로 다음 conv layer에만 영향을 끼친다. 따라서 각 layer의 style이 특정한 시각적 특성만 담당하는 것이 용이해진다.
3. Constant Input

기존처럼 random noise를 사용안하는 이유는 바로 네트워크를 통해서 이미지를 생성한는 것은 비교적으로 학습하기 어렵기 때문이다. StyleGAN에서 style들을 받아서 이미지를 생성해낼 때 초기의 4X4 영상 데이터의 전체적인 identity 혹은 특성을 배우면 네트워크가 더 쉽게 학습할 수 있을 것이다. 예를 들어 고양이 데이터셋을 학습한다고 생각해보면 constant가 배울 것은 전체적인 고양의 형태와 같은 것을 배울 것이다. 만약 기존처럼 random noise를 사용한다면 이러한 노이즈를 바탕으로 그냥 이미지를 생성해내는 법을 네트워크가 배워야 하므로 네트워크의 부담이 커질 것이다. 따라서 learnable input을 넣어줌으로써 네트워크가 학습하면서 이미지를 생성함에 있어 좋은 초기 모델을 학습해 constant c를 구축하고 이를 생성 과정에서 고정해서 사용하는 것이다.

4. Noise Ingection(Stochastic variation)

이미지를 생성함에 있어서 중요한 부분 중 하나는 randomness이다. 이미지는 사실적이면서도 다채로움을 가져야 한다. noise injection을 통해서 생성모델은 사람 얼굴에서 머리카락이나 수염, 주근깨, 모공과 같은 stochastic(확률적인)한 특성을 가지는 부분들이 생성된 fake image의 identity나 인지적인 특성에 영향을 주지 않고 randomness를 가지고 바뀌게 함으로써 생성되는 이미지의 사실성과 다양성을 증대시키는데 도움이 된다. 실제로는 노이즈 g의 각 convolution layer 뒤에서 주입시켜주면서 이미지를 만들게 된다.
일반적인 generator에서는 이러한 stochastic variation을 네트워크가 학습하도록 했다. 즉, 수염과 같은 생성되는 이미지의 randomized aspects들의 randomness를 generator network가 구조적으로 이미지를 만드는 것을 학습함과 동시에 사실성과 다양성을 위한 randomness 또한 학습해야 하는 것이다. 따라서 어차피 random한 부분이라면 네트워크 학습할 필요 없이 외부에서 줌으로써 이러한 문제를 피하려고 하였다.
어떻게 이러한 noise가 identity나 인지적인 특성에 영향을 주지 않고 randomness를 가지고 세세한 부분을 바꿀 수 있을까? StyleGAN에서 style 정도(latent w)는 AdaIN을 통해 feature map 전체에 scaling, biasing을 적용한다. 이것은 feature map 전체에 똑같이 적용되기 때문에, 얼굴 모양, 성별, 머리 스타일 같은 global effect를 조절한다. 이런 효과는 채널 단위 평균 분산 같은 통계값으로 표현되는 style 정보와 연결돼 있다. 즉, 공간적으로 어디든 동일하게 적용된다는 뜻이다. 반면 noise의 경우는 다르게 동작한다. noise는 각 픽셀 위치마다 독립적으로 주입되기 때문에, 특정 위치에서만 랜덤한 변화를 줄 수 있다. 그래서 머리카락 한 올 한 올, 피부에 있는 점 그리고 주름 같은 세세하고 우연적인 디테일(stochastic variation)을 만들어낸다. 다시 말하자면, global structure는 낮은 해상도 feature map에서 이미 결정되었고, noise는 높은 해상도 층에서 들어오기 때문에 큰 구조를 건들 수 없으므로 위치 차원 그리고 역할이 분리되어 있다는 것이다.

5. Progressive Growing


PGGAN에서 확인한 것처럼, low resolution image(4X4)부터 학습을 시작하여 점진적으로 layer를 추가해가면서 resolutionㅇ르 올려가며 학습을 해나감으로써 GAN이 처음에는 상대적으로 단순한 문제를 풀고 점진적으로 상태적으로 어려운 문제를 풀어나가기에 학습이 안정적이고, 고해상도 이미지를 잘 만들어내게 된다. 결국 StyleGAN은 PGGAN의 progressice growing 구조를 바탕으로 만들어진 것이다.
6. Style Mixing
두 style들을 조합하여 사용한다고 할 때, 하나의 w만으로 학습하다보면 붙어 있는 레벨의 style들 간의 correlation이 생길 수 있다. 이는 저차원의 feature에서 얼굴의 모양과 같은 attribute를 받고, 고차원에서 얼굴의 포즈와 같은 attribute를 받는데, 이 둘의 상관관계가 생기면 두 특징이 독립적이지 못하고 localization을 잘 못하게 되어 모양이 바뀌면서 pose가 바뀔 수 있는 것이다.
이런 상황을 줄이기 위해 Mixing Regularization을 진행한다. Mixing Regularization은 서로 다른 이미지를 생성해내는 intermediate latent vector w1과 w2의 특정 level을 기준으로 이전까지는 w1의 style 정보를 이후부터는 w2의 style 정보를 넣어 이미지를 생성하도록 학습시키는 것이다. 즉 w1의 style에는 상대적으로 coarse한 정보가 w2의 style은 fine한 정보가 반영되었다는 것이다. 이로써 인접한 두 level의 style 간의 correlation이 생기는 것을 막도록 하는 일종의 Regularization을 해줌으로써 localization이 개선된다.

참조
https://airsbigdata.tistory.com/217
[논문 리뷰] StyleGAN: A Style-Based Generator Architecture for GANs
이번에 소개해 드릴 논문은 A Style-Based Generator Architecture for Generative Adversarial Networks으로 StyleGAN으로 자연스러운 고해상도 이미지를 만들면서 많이 알려지게 된 논문입니다. 해당 논문은 NVDIA 팀이
airsbigdata.tistory.com
https://comlini8-8.tistory.com/11
진짜 같은 고화질 가짜 이미지 생성하기, StyleGAN
https://towardsdatascience.com/explained-a-style-based-generator-architecture-for-gans-generating-and-tuning-realistic-6cb2be0f431 Explained: A Style-Based Generator Architecture for GANs - Generating and Tuning Realistic… NVIDIA’s novel architecture f
comlini8-8.tistory.com
https://bo-10000.tistory.com/158
[StyleGAN 시리즈] ProGAN/PGGAN, StyleGAN, StyleGAN2
ProGAN부터 StyleGAN2까지, style transfer에서 가장 유명한 모델인 StyleGAN의 변천사와 각 모델의 특징을 간단히 정리해 보고자 한다. 1. ProGAN/PGGAN (ICLR 2018) Paper: Progressive Growing of GANs for Improved Quality, Stabil
bo-10000.tistory.com
[Paper Review] StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks (1)
StyleGAN ( A Style-Based Generator Architecture for Generative Adversarial Networks ), CVPR 2019에 소개되었으며 추후 다양한 후속 연구 및 생성 모델 연구에 큰 기여를 한 논문입니다. ProGAN 혹은 PGGAN으로 불리는 논문
hyoseok-personality.tistory.com
'용어 정리' 카테고리의 다른 글
| GAN 시리즈 - VQGAN (2) | 2025.08.25 |
|---|---|
| GAN 시리즈 - BigGAN (4) | 2025.08.19 |
| GAN 시리즈 - PGGAN (4) | 2025.08.13 |
| GAN 시리즈 - CycleGAN (4) | 2025.08.13 |
| GAN 시리즈 - WGAN (0) | 2025.08.13 |