- 개인적으로 배울게 많은 논문이었습니다.
Abstract
Flow based : efficiency에도 불구하고 autoregressive보다는 dnesity modeling 성능이 더 안좋습니다.
논문에선 이에 대한 개선 해야할 점으로 세가지를 뽑았는데,
1. Uniform noise를 통한 dequantization
2. Inexpressive affine flows
3. Convolutional conditioning network
위 세가지 사항에 대해 개선하는 방향으로 논문이 진행됩니다.
Change of Variables
pdf의 변수 변환 대해 다시한번 봐봅시다.
우선 한가지 fact에 기반해서 유도하게 됩니다.
Fact : Differential Area는 변수치환을 하더라도 불변한다.
$$ |f_Y(y) * dy| = |f_X(x) * dx| $$
$$ f_Y(y) = f_X(x)*|{dx \above 1pt dy}| $$
이를 기반으로 위의 식처럼 유도가 됩니다. 이를 다시 확인하는 이유는 뒷 부분에서 좀 헷갈릴 수 있는 부분이 나옵니다.
저는 변수변환에 있어서 굉장히 제한적이라고 의식을 하고 있었어서 뭔가 이해가 붕 뜨는 느낌이 들었는데 위에 대한 fact를 기반으로 해서 유도해보니 자연스럽더라구요. 그래서 한번 다시 확인하고 넘어가게 되었습니다.
Flow ++
요약부에서도 언급했듯이 이전 flow에는 세가지 문제점이 존재합니다.
1. Uniform noise dequnatization
2. affine coupling flows -> not expressive
3. coupling layer의 conditioning networks에대한 conditional layer가 강력하지 않음.
이 문제점들에 대한 대안을 하나하나씩 짚고 넘어가 보겠습니다.
Dequantization via variational inference
우선 첫번째, Uniform noise dequantization 입니다. 보통 NICE나 Real NVP 등 여러 구현체를 보면, discrete data를 continuous하게 바꿔주기 위해 단순히 data의 각 dimension에 uniform noise를 더해주곤 합니다.
이게 왜 효과가 있고 어떤 문제가 있는지 우선 알아보겠습니다.
우선 저희가 모델로서 사용하는 \(p_{model}\)은 continuous density model 입니다. 하지만 실제로 받아오는 데이터들은 유한하고, discrete한 데이터입니다. {0, 1, 2, ..., 255}
사실 그래서 discrete한 데이터를 continuous model에 넣었을 때 성능 하락이 일어날 수 있기 때문에, discrete data를 dequantization하는 과정이 필요합니다.
위의 식을 보면 단순히 uniform noise를 data에 더한 continuous data y를 받아 \(p_{model}\)의 log likelihood를 maximize하는 것이 discrete data를 받은 discrete model \(P_{model}\)의 log likelihood의 lower bound를 maximize하는 것과 동치임을 말하고 있습니다.
eq (4) -> eq (5) 부분은 log가 concave하기 때문에 jensen's inequality에 의거하여 성립됩니다.
이제 위처럼 Uniform noise를 더하는 것이 유효하다는 것을 알게됬는데 그렇다면 어떤 문제가 있을까요?
사실 uniform noise는 0에서 1 사이의 값 중 무작위로 뽑는 행위 입니다. 그럼 모든 각각의 dimension들이 최소 0부터 최대 1까지 균등하게 갖을 수 있다는 뜻인데 이 uniform noise들이 상주할 수 있는 공간은 hypercube형태가 됩니다. 그래서 결국 uniform noises를 더하는 행위는 hyper cube를 더하는 것과 동일합니다. 이 때, hypercube를 더하게 된다면, smooth하지 못하게 되는데 우리가 모델로서 사용하는 neural network의 경우에는 굉장히 smooth한 approximator이기 때문에 훈련에 이런 neural network를 사용하는 것이 부자연스럽습니다.
그래서 논문에서는 이를 해결하기 위해 좀 더 flexible한 형태의 noise를 사용하기 위해 Variational Dequantization이라는 방법을 소개합니다.
Variational Dequantization
앞에서 언급했듯이, uniform noise를 통해 dequantization하는 것은 discrete data x에 hypercube를 더하는 것과 동일해서 문제가 발생합니다.
이를 통해 Variational Inference를 통한 dequnatization을 제안합니다.
우선, dequantization noise variational distribution을 세웁니다.
$$ q(u|x) ~~ u \in [0, 1)^D$$
그리고 이 q distribution을 approximator posterior로 사용해서 variational lower bound를 유도합니다.
이 과정 중 (8) -> (9) 또한 Jensen's Inequality에 의거합니다.
그리고 \(u = q_x(\epsilon)\), \(\epsilon~\sim~p(\epsilon) = N(\epsilon ; 0, I)\) 라고 임의로 q를 선택합니다.
제가 위의 Change of Variables에서 언급했었던 헷갈리는 부분이 바로 이 부분 입니다. 위의 등식을 통해 q(u|x)를 새롭게 다시 쓸 것 입니다.
이를 통해 식을 유도해보면 다음과 같습니다. 그래서 훈련을 진행 할 때 \(p_{model}\)과 q에 대해 jointly maximize하면 됩니다.
이 방법을 통해 훨씬 더 유연한 분포를 사용해서 dequantization 할 수 있습니다.
Improved Coupling Layers
이제 두번째 문제점이었던 Inexpressive affine flows에 대해 알아봅시다.
이전 방법 (NICE, Real NVP, Glow ... )들은 아주 간단한 형태로 Affine 형식의 Coupling layer를 구성했습니다. 하지만 이 논문에서는 이는 꽤 단순하고 다른 방법을 통해 더 잘 수행할 수 있다 라고 말을 하고 있습니다.
Expressive Coupling Trasnformations With Continuous Mixture CDFs
요점은 Continuous Mixture CDF를 사용하자는 것입니다. 실험적으로 여러 파라미터를 갖는 Logistic Mixture CDF를 사용했을 때 성능이 좋았다고 합니다. 그리고 CDF 형식이라서 값이 0에서 1 사이 값을 갖게 되는데, 여기에 inverse sigmoid를 붙여줘서 이 Coupling layer의 역이 무조건 존재하게 해줬습니다.
그리고 CDF 자체가 단조증가의 function이라서 역변환이 간단하고 Jacobian determinant 또한 CDF의 PDF를 계산할 때 과정에 포함되기 때문에 computational difficulty 또한 없습니다.
논문에서 제안한 Coupling layer를 식으로 표현하면 위와 같습니다. 각 CDF의 파라미터들 NN을 통해 도출 하게 합니다.
Expressive Conditioning Architectures With Self-Attention
마지막 제기되었던 문제점인, coupling layer에 사용되는 modules의 개선 입니다. 이 모듈들을 powerful하게 하기 위해 Multi head self attention을 차용했습니다.
가장 좋았던 결과는 convolutions와 multi head self attention을 사용한 것이었습니다.
구조는 대략 위와 같습니다.
'Generative Model' 카테고리의 다른 글
StyleGAN1 : A Style-Based Generator Architecture for Generative Adversarial Networks (0) | 2022.04.20 |
---|---|
StyleGAN-XL: Scaling StyleGAN to Large Diverse Datasets (0) | 2022.04.17 |
Glow : Generative Flow with Invertible 1 x 1 Convolutions (0) | 2021.10.03 |
Density Estimation Using Real NVP (0) | 2021.09.26 |
NICE : Non-linear Independent Components Estimation (0) | 2021.09.24 |