주제: 8-2 StyleGAN (스타일 기반 잠재공간 제어)

분류: generative

타입: concept

난이도: 중급

선수지식: 있음 — GAN, CNN, Latent Vector

문제 설정

기존 GAN은 다음 방식으로 이미지를 생성합니다.


z → Generator → Image

문제:

StyleGAN은 이 문제를 해결하기 위해 스타일 기반 생성 구조를 도입했습니다.

1. StyleGAN 핵심 아이디어

기존 GAN:


z → Generator → Image

StyleGAN:


z → Mapping Network → w
                     ↓
              Style Control
                     ↓
                Generator
                     ↓
                  Image

핵심은 latent space를 분리하여 이미지 스타일을 제어하는 것입니다.

2. Latent Space 구조

StyleGAN은 두 가지 latent space를 사용합니다.

공간 설명
Z space 입력 노이즈 공간
W space 스타일 제어 공간

변환:

w=f(z)

기호 의미

왜 필요한가

더 disentangled한 latent representation을 만들기 위해서입니다.

주의점

Z 공간보다 W 공간이 더 의미 있는 표현을 제공합니다.

3. Mapping Network

Mapping network는 z를 w로 변환하는 MLP입니다.


z → MLP → w

수식:

w=f(z)

왜 필요한가

latent 공간을 더 구조화된 표현으로 변환합니다.

4. Style Injection

StyleGAN은 각 convolution layer에 스타일을 주입합니다.

이 과정은 AdaIN (Adaptive Instance Normalization)으로 수행됩니다.

y=s*(xμ(x))/σ(x)+b

기호 의미

왜 필요한가

각 레이어에서 이미지 스타일을 제어할 수 있습니다.

주의점

style parameter는 latent vector w에서 생성됩니다.

5. Multi-Scale Style Control

StyleGAN은 레이어마다 다른 스타일을 적용합니다.

레이어 이미지 속성
초기 레이어 얼굴 구조
중간 레이어 눈/코/입
후반 레이어 색상/텍스처

직관

초기 layer는 global structure를 제어하고 후반 layer는 세부 스타일을 제어합니다.

6. Noise Injection

StyleGAN은 추가적으로 noise를 feature map에 주입합니다.

x=x+noise

왜 필요한가

이미지의 세부적인 랜덤 디테일을 생성합니다.

예:

7. Style Mixing

StyleGAN은 서로 다른 latent code를 섞을 수 있습니다.


z1 → early layers
z2 → later layers

결과

왜 중요한가

latent disentanglement를 촉진합니다.

8. StyleGAN 구조


z
 ↓
Mapping Network
 ↓
w
 ↓
Style Injection (AdaIN)
 ↓
Noise Injection
 ↓
Generator
 ↓
Image

9. StyleGAN 장점

10. StyleGAN 한계

코드-수식 연결

개념 코드 설명
noise 생성 torch.randn(latent_dim) z vector 생성
mapping network MLP(z) z → w 변환
style injection AdaIN() style modulation

자주 하는 오해 5개

체크리스트 (스스로 설명 가능해야 하는 질문)