본문 바로가기

Data-science/논문 읽기

[Deep learning 논문 읽기] style-gan 1

728x90

 

1. Abstract & Introduction

  • 중요한 점


    • 원래 gan은 latent vector에서 바로 mapping해서 뭔가 style 조절하기가 어려웠다. 또 latent vector가 학습 데이터의 확률 분포를 따를 수 밖에 없다. 이걸 entanglement (얽혔다는 뜻) 라고 하는 듯. style-gan은 이를 보완한다. 그게 여기서 강조하는 intermediate latent space이다.

 

2. Style Based Generator

- 예전엔 latent code(z)가 input layer를 통과하는 형식으로 generator가 동작했다.  여기선 아예 input layer를 생략하고 어떤 상수를 배우고 이렇게 배운 상수에서 시작한다! 이 상수가 뭐냐면 아래 그림 (b)에서 합성 네트워크(Synthesis network) g의 시작 부분이다! (Const 4 x 4 x 512)

  • 맵핑 네트워크(Mapping network)가 이전 구조와 달리 새롭게 생겼다. z(길이 : 512)를 8개의 Dense Layer(MLP)[non-linear mapping]를 통과시켜 w(길이 : 512)를 얻는다. 위에서 강조한 intermediate latent space는 W를 말한다. 

    • , 맵핑 네트워크를 통해 얻은 w가 latent space의 역할을 한다고 보면 된다. 이게 바로 intermediate latent space이고 이게 이 논문에서 가장 중요한 점인듯 싶다.

  • 이렇게 나온 w에 affine transformation를 입힌걸 위에선 “A”라고 표현했는데, 이 A는 합성 네트워크의 각 해상도(4x4 부터 1024x1024까지)의 입력으로, 각 단계의 style을 조종(?)한다고 봐도 되겠다. (뒤에선 아예 이걸 style이라고 얘기한다.)  

  • 합성 네트워크를 더 살펴보면, 각 해상도 마다 2개의 layer로 구성된다.

    • 우선 첫 Layer는 앞서말한 학습한 상수 입력값 ( 4 x 4 x 512 )지만, 나머지 해상도의 Layer들은 Upsampling후 3*3 Conv를 적용하는 것으로 시작한다.

    • 여기에 채널 별로 Noise factor를 학습하고, 이를 이용해 위에 Conv를 통과한 feature map에 Noise를 더해준다.

  • 그 후 위의 결과 나온 feature map에 Instance Normalization을 시행해준다! 

  • 여기서 Adaptive Instance Normalization이 등장한다.

    • Adaptive Instance Normalization?
    • 그냥 Instance Normalization을 해주고 끝이 아니라, 그렇게 Normalization된 녀석에게 scale을 곱해주고 bias를 더해준다. 이 때 곱해지고 더해지는 녀석이 누구냐? 바로, affine 변환을 거친 w, 즉 “A”이다. 위 글에서 보면 이 A를 y = (y_s, y_b) , style이라고 직접적으로 표현해 놓았다. 단, 이 때 y는 2차원 vector가 아니라, feature map 개수만큼 있다고 보면 된다. feature map을 x_i라 했을때 i마다 (y_s, y_b)가 존재한다~

  • 이렇게 style이 입혀진 feature map은 위 과정을 반복한다. (conv 3x3을 거치고 다시 Noise를 더하고, AdaIn을 적용) 이래서 각 해상도마다 2개씩 layer가 있다고 한 것이다!

  • 그 후 다음 해상도로 넘어가서 위 과정을 반복한다!

  • 마지막 해상도의 마지막 layer의 output은 seperate 1x1 conv을 거쳐 rgb로 전환된다!

Style을 Computing 한다?

Comparing our approach to style transfer, we compute the spatially invariant style y from vector w instead of an example image.

본래 gan과 차이점이 더 명확히 보인다. latent space에서 image를 합성하는 게 아니다~ style-gan은 latent space로 부터 style을 구한다! (논문에선 computing이란 용어를 씀)