본문 바로가기
딥러닝 개념, 논문

Glow: Generative Flow with Invertible 1 x 1 Convolutions 논문 리뷰

by demi-an 2025. 4. 6.

필자 본인이 아래 논문을 읽으면서 이해가지 않았던 부분을 정리한 내용입니다.

https://arxiv.org/pdf/1807.03039

 

3 page

 

$ \mathcal{L}(D) = -\frac{1}{N} \sum_{i=1}^{N} \log p_{\theta}(x^{(i)}) $ (1)

log likelihood objective → 모든 샘플 (또는 mini-batch)의 확률밀도함수의 값의 곱의 평균

 

 

where $ \tilde{x}^{(i)} = x^{(i)} + u \quad \text{with } u \sim \mathcal{U}(0, a), \quad \text{and } c = -M \cdot \log a 
$ where a is determined by the discretization level of the data and M is the dimensionality of x.

u를 더하는 부분 → dequantization 기법, 데이터에 균일한 noise를 추가해서 연속적인 값처럼 만듦. [x, x + a] 안에 균등하게 분포한다고 가정할 수 있게 된다.

c → 데이터에 균일한 noise U(0, a)를 추가했기 때문에 이를 보정하기 위해 넣은 term. $ p(\tilde{x}) = p(x)*\frac{1}{a^{M}} $ 부분에서 $ \frac{1}{a^{M}} $ 부분이 정규화 상수가 되며, log를 씌우면 $ -M \cdot \log a $ 형태가 된다. (다른 normalizing flow 에서도 주로 사용되는 방식)

 

 

Both objectives (eqs. (1) and (2)) measure the expected compression cost in nats or bits;

Shannon entropy와 관련됨, 데이터 전체에 대해 평균적 정보량을 계산하는 것을 의미

Shannon entropy → 어떤 정보를 encoding 하는데 필요한 최소한의 정보량. 동전의 경우는 1 bit, 주사위는 $  \frac{1}{6}(-log_2\frac{1}{6})*6 \simeq 2.5849 $ 이므로 약 3 bit가 필요하다.

nats → log의 밑이 e 인 단위

 

 

$ \log p_{\theta}(x) = \log p_{\theta}(z) + \log \left| \det\left( \frac{dz}{dx} \right) \right| $ (6)

$ \int p_{\theta}(x)dx = \int p_{\theta}(z)dz = 1 $

→ $ p_{\theta}(x) = p_{\theta}(z)\frac{dz}{dx} $

$ \log p_{\theta}(x) = \log p_{\theta}(z) + \log \left| \det\left( \frac{dz}{dx} \right) \right| $

 

 

$ \log p_{\theta}(z) + \sum_{i=1}^{K} \log \left| \det\left( \frac{dh_i}{dh_{i-1}} \right) \right| $ (7)

위 식에서 $ \sum_{i=1}^{K} \log \left| \det\left( \frac{dh_i}{dh_{i-1}} \right) \right| $ term이 들어감으로써 $ x → z $ 로 한 번에 가지 않고, 사이에 여러 transformation step ( $ f $ ) 을 진행한다는 의미를 Loss에 담을 수 있게 된다.