TechNOTE

[GLOW] Affine Coupling Layer 본문

딥러닝, 연구

[GLOW] Affine Coupling Layer

JU1234 2021. 4. 30. 11:26

Normalizing Flow? 

Normalizing Flow 는 invertible한 bijective function을 쌓아서 만드는 Generative model인데, 

Affine coupling layer는 그 flow network를 구성하는 방법중에 하나이다 ㅎㅎ 즉 invertible하고 bijective하다는 뜻. 

그래서 invertible function이 구하기 쉬워야 하고, log determinant를 구하는 과정이 efficient 해야 하는데 이 둘 다에 해당한다. 그래서 어떻게 되나 한번 보자.. ㅎㅎ 

Affine Coupling Layer 

$$x_a, x_b = split(x)$$

$$ m, logs = NN(x_a) $$

$$ x_b = m + x_a * exp(logs) $$

$$ \hat{x} = cat(x_a, x_b) $$

이렇게 바꿔주는 방식이다. 이렇게 하면 

다음과 같이 jacobian matrix를 구할 수 있는데, 이 upper triangular matrix의 determinant는 대각 원소들의 합이므로 logdet도 쉽게 계산이 가능하다! 

반응형
Comments