본문 바로가기
논문 정리

[논문 정리] Masked Autoregressive Flow for Density Estimation

by st.George 2023. 2. 21.
  • 본 게시글은 Masked Autoregressive Flow for Density Estimation 정리글입니다.
  • 개인적인 생각이 서술되어 있습니다. 잘못된 내용이 존재할 확률이 존재하기에 주의 바랍니다.
  • 잘못된 내용, 오타는 지적해 주시면 감사하겠습니다.

Reference

Papamakarios, G., Pavlakou, T., & Murray, I. (2017). Masked autoregressive flow for density estimation. Advances in neural information processing systems, 30. / APA style


Abstract

  • Autoregressive 모델은 가장 성능이 좋은 neural density estimators 중 하나
  • 본 논문은 데이터를 생성할 때 내부적으로 사용하는 난수 모델링을 기반으로, autoregressive model 모델의 유연성을 높이는 접근 방법을 설명
  • Masked Autoregressive Flow: Autoregressive 모델의 스택을 구성하고 각각 스택에서 다음 모델의 난수를 모델링하여 밀도 추정에 적합한 정규화 흐름 유형을 얻음
  • 이러한 유형의 흐름은 Inverse Autoregressive Flow와 밀접한 관련이 있으며, Real NVP의 일반화임
  • Masked Autoregressive Flow는 SOTA를 달성

 

Introduction

변수 x의 집합, 결합 밀도 p(x)는 머신 러닝에서 주요 관심 대상, 확률론적 비지도 학습 및 생성 모델링의 핵심입니다. p(x)에 접근 및 조작가능하면 추론, 예측, 데이터 완성 및 데이터 생성과 같은 광범위한 작업을 수행할 수 있습니다.

 

최근 몇 년 동안 밀도 추정을 위해 신경망을 사용하는 것이 성공적이었습니다. 신경망의 유연성과 학습 능력을, 데이터에 대한 사전 지식과 결합하여 자연 이미지 및 오디오 데이터 모델링에서 인상적인 결과를 얻었습니다.  SOTA neural density estimators는 시뮬레이션된 데이터, 변동 추론 및 최대 엔트로피 모델의 대용물로부터 likelihood-free 추론에 사용됩니다.

 

Neural density estimators는 정확한 밀도 평가를 쉽게 제공한다는 점에서 VAE, GAN과 같은 생성 모델링과 접근 방법이 다릅니다. 따라서 합성 데이터를 생성하는 것보다 명시적으로 밀도를 평가하는 데 중점을 두는 것에 적합합니다. 예를 들어 밀도 추정기는 표준 베이지안 추론에 사용하기 위해 레이블이 지정되지 않은 대규모 데이터 세트의 데이터에 적합한 사전을 학습할 수 있습니다. 시뮬레이션 기반 likelihood-free 추론에서 조건부 밀도 추정기는 시뮬레이션된 데이터에서 우도 또는 사후에 대한 모델을 학습할 수 있습니다. 밀도 추정기는 중요도 샘플링 또는 순차적 몬테카를로에 대한 효과적인 제안을 학습 가능, 조건부 밀도 추정기는 amortized 변이 추론을 위한 유연한 추론 네트워크 및 VAE의 일부로 사용 가능,

 

신경 밀도 추정의 과제는 복잡한 밀도를 표현할 수 있을 만큼 유연하면서도 다루기 쉬운 밀도 함수와, 학습 알고리즘이 있는 모델을 구성하는 것입니다. 주로 유연하고 다루기 쉬운 신경 밀도 추정기에는 autoregressive 모델과 normalizing flows의 두 가지 계열이 있습니다. autoregressive 모델은 결합 밀도를 조건부의 곱으로 분해하고, 각 조건부를 차례로 모델링합니다. normalizing flows은 Jacobian을 사용하여 invertible 변환을 통해 기본 밀도(예: 정규분포)를 타겟 밀도로 변환합니다.

 

우리의 출발점은 autoregressive 모델이 데이터 생성에 사용될 때, 외부 임의성 소스의 미분 가능한 변환에 해당한다는 사실을 깨닫는 것입니다. 이 변환은 설계상 다루기 쉬운 Jacobian을 가지며 invertible 가능한 특정 autoregressive 모델은 normalizing flow와 일치합니다. autoregressive 모델을 normalizing flow으로 보면 동일한 유형의 여러 모델을 쌓고 각 모델이 스택의 다음 모델에 대한 임의성 소스를 제공하도록 하여 유연성을 높일 수 있는 가능성이 열립니다. 결과 모델 스택은 원래 모델보다 더 유연하고 다루기 쉬운  normalizing flow입니다.

 

본 논문에서는, MAF(Masked Autoregressive Flow)를 제안합니다. MAF는 MADE(Masked Autoencoder for Distribution Estimation)를 빌딩 블록으로 사용하는 normalizing flow를 구현한 것입니다. MADE를 사용하면 autoregressive 모델의 일반적인 순차적 루프 없이 밀도 평가가 가능하므로, MAF가 GPU와 같은 병렬 컴퓨팅 아키텍처를 빠르게 평가하고 학습할 수 있습니다. MAF와 밀도 추정 대신 변분 추론을 위해 설계된 IAF(Inverse Autoregressive Flow) 사이의 밀접한 이론적 연결을 보여주고, 둘 다 성공적인 Real NVP의 일반화에 해당함을 보여줍니다. 광범위한 데이터 세트에서 MAF를 실험적으로 평가하고 (a) MAF가 범용 밀도 추정에서 Real NVP를 능가하고 (b) MAF의 조건부 버전이 범용 아키텍처에 가까운 SOTA 성능을 보임을 보여줍니다.

 

Background

1. Autoregressive density estimation

결합 밀도 p(x)는 확률의 연쇄 법칙을 활용하여 1차원 조건의 곱으로 분해될 수 있습니다. 

 Autoregressive density estimators는 각 조건부 p(x_i | x_1:i−1)를 매개변수 밀도로 모델링합니다.  autoregressive 모델은 변수의 순서에 따라 결과가 달라진다는 단점이 있습니다. 또한 어떠한 순서가 가장 적합한지 알기 어렵습니다. 임의로 선택한 순서로 작업하도록 훈련된 autoregressive 모델이 개발되었으며, 다른 순서를 통한 예측은 앙상블을 통해 결합할 수 있습니다. 본 논문의 접근 방식은 각 레이어에서 다른 순서를 사용할 수 있으며 임의 순서를 사용하는 것도 가능합니다.

 

반복 autoregressive 모델은 모든 변수에 대해 hidden state를 순차적으로 업데이트하므로 D차원 벡터의 확률 p(x)를 계산하기 위해 D번의 순차 계산이 필요합니다. 이는 GPU와 같은 병렬 아키텍처의 계산에 적합하지 않습니다. → 병렬 계산을 가능하게 하는 한 가지 방법은 D 입력과 D 출력이 있는 fully connected 모델로 시작하고, 출력 i가 입력 1, 2,..., i-1에만 연결되도록 연결을 끊는 것입니다. 그러면 출력 i는 i 번째 조건부 p(x_i | x_1:i-1)의 매개변수를 계산하는 것으로 해석될 수 있습니다. 모델은 autoregressive 속성을 만족함과 동시에 GPU에서 효율적으로 p(x)를 계산할 수 있습니다. 이 접근 방식의 예로는 MADE(Masked Autoencoder for Distribution Estimation)가 있으며, Fully connected Auto Encoder의 가중치 행렬에 이진 마스크를 곱하여 연결을 삭제합니다. 연결을 끊는 다른 메커니즘으로는 Masked Convolution과 Causal Convolution이 있습니다.

Figure 1: (a) The density to be learnt, defined as p(x1, x2). (b) The density learnt by a MADE with order (x1, x2) and Gaussian conditionals. Scatter plot shows the train data transformed into random numbers u; the non-Gaussian distribution indicates that the model is a poor fit. (c) Learnt density and transformed train data of a 5 layer MAF with the same order (x1, x2)

* 위 내용을 요약 및 설명하면 다음과 같습니다.

 

2. Normalizing flows

Normalizing flows는 p(x)를 기본 밀도 π_u(u)의 가역 미분 변환 f로 나타냅니다. 즉 x = f(u), u ∼ π_u(u)입니다. 기본 밀도 π_u(u)는 모든 입력 u에 대해 쉽게 평가할 수 있도록 선택됩니다. f에 대한 가역성 가정 하에서 밀도 p(x)는 다음과 같이 계산할 수 있습니다.

* π_u(u)에 대한 일반적인 선택은 표준 가우시안입니다

Equation (1)

Equation (1)을 계산가능하도록,  f는 (a) invert하기 쉽고 (b) determinant of its Jacobian이 계산하기 쉽도록 구성되어야합니다.중요한 점은 f1과 f2가 위의 속성을 갖는다면, 그 합성 f1 ◦ f2도 같은 속성을 갖는다는 것입니다. 즉, f는 여러 인스턴스를 구성하여 더 깊게 만들 수 있으며, 결과는 여전히 유효한 normalizing flow가 됩니다.

 

normalizing flow에 접근하는 다양한 방식이 있습니다. 초기에는 독립 구성 요소 분석의 연속 적용을 기반으로 하는 Gaussianization을 사용하였습니다. 비특이 가중치 행렬을 사용하여 가역성을 적용하는 것이 제안되었지만 이러한 접근 방식에서는 일반적으로 데이터 차원을 사용하여 Jacobian 스케일의 행렬식을 계산합니다.

Planar/radial flow 및 IAF(Inverse Autoregressive Flow)는 Jacobian이 설계상 다루기 쉬운 모델입니다. 그러나 이들은 주로 변분 추론을 위해 개발되었으며 외부에서 제공된 데이터 포인트가 아닌 자체 샘플의 밀도만 효율적으로 계산할 수 있기 때문에 밀도 추정에는 적합하지 않습니다. NICE(Non-linear Independent Components Estimator)와 그 후속 Real NVP는 다루기 쉬운 Jacobian을 가지며 밀도 추정에도 적합합니다. IAF, NICE 및 Real NVP는 다음 장에서 자세히 설명합니다.

 

* Equation 1은 Change of variable로부터 나온 식입니다. 식의 전개는 다음과 같습니다.

* Normalizing flow는 Equation 1을 기반으로 다음과 같은 과정을 전개하는 것입니다.

출처: https://lilianweng.github.io/posts/2018-10-13-flow-models/

 

Masked Autoregressive Flow

1. Autoregressive models as normalizing flows

조건부가 single Gaussian으로 파라미터화되는 autoregressive model을 고려해보면, i번째 조건부는 다음과 같습니다. 

Equation (2)

f_ui와 a_i는 비제약 스칼라 함수로, i번째 이전의(1~i-1)모든 변수를 사용하여 평균과 log 표준편차를 계산합니다. 다음 식을 사용하여 데이터를 생성할 수 있습니다.

Equation (3)

Equation (4)

Invertible한 형태로 변환하면 다음과 같습니다.

autoregressive는 i번째 이전 값들을 참고합니다. 예를 들어 1번은 아무것도 참고하지 않고, 2번은 1번을 참고하는 형태입니다. 따라서 Jacobian의 역함수는 삼각형으로 나옵니다. 삼각행렬의 행렬식 = 대각 원소의 곱이라는 성질을 활용하여 다음과 같이 쉽게 계산가능합니다.

Equation (5)

autoregressive 모델을 normalizing flow로 표현할 수 있습니다. p(x)는 Equation(4)는 MAF가 invert하기 쉬움을, (5)는 MAF의 determinant of its Jacobian이 계산하기  쉬움을 보여줍니다. 즉, Normalizng flows를 사용하기에 좋은 모델이라는 의미입니다.

 

autoregressive 모델이 target 밀도에 적합한지 평가하는 방법은 다음과 같습니다.

train data(x_n)을 응답하는 난수(u_n)로 Equation(4)를 활용하여 바꾸고, u_i가 independent standard normals로부터 나왔는지 확인하는 방법입니다. u_i가 independent standard normals에서 나오지 않은 것 같으면 모델이 적합하지 않다는 증거입니다.  그림 1b는 모델이 타겟 밀도에 잘 맞지 않는 경우, 학습 데이터와 관련된 난수의 산점도가 상당히 비가우시안으로 보일 수 있음을 보여줍니다.

 

본 논문은 autoregressive 모델을 flow로 해석하고, 모델의 여러 인스턴스를 깊은 flow로 쌓아 모델 적합도를 개선합니다. 주어진 autoregressive 모델 M1, M2, . . . , MK에서, 우리는 M2로 M1의 난수 u1의 밀도를 모델링하고 M3로 M2의 난수 u2를 모델링하며, 마지막에는 표준 가우시안으로 MK의 난수 uK를 모델링합니다.

이러한 스태킹은 유연성을 추가합니다. 예를 들어, 그림 1c는 5개의 autoregressive 모델 흐름이 각 모델에 unimodal 조건이 있더라도 multimodal 조건을 학습할 수 있음을 보여줍니다.

 

본 논문은 MADE에서 사용하는 접근 방식에 따라 마스킹을 사용하여 {f_µi, f_αi} 함수 세트를 구현합니다. MADE는 x를 입력으로 사용하고 단일 forward pass로 모든 i에 대해 μ_i 및 α_i를 출력하는 feedforward 네트워크입니다. autoregressive 속성은 MADE의 가중치 행렬에 적절하게 구성된 이진 마스크를 곱하여 적용됩니다. 즉, flow의 구성 레이어로 가우시안 조건부와 함께 MADE를 사용합니다. 마스킹 사용의 이점은 데이터 x에서 난수 u로의 변환을 flow를 통해 한 번의 forward pass에서 p(x)를 계산할 수 있으므로, 방정식 (4)에서와 같이 순차적 재귀가 필요하지 않습니다. MADE를 flow로 stacking하는 것을 MAF라 부릅니다.

 

2. Relationship with Inverse Autoregressive Flow

MAF와 마찬가지로 IAF도 MADE를 구성 layer로 사용하는 normalizing flow입니다. IAF의 각 계층은 다음의 재귀로 정의됩니다.

Equation (6)

MAF와 마찬가지로 함수 {f_µi, f_αi}는 가우시안 조건과 함께 MADE를 사용하여 계산됩니다. 차이점은 구조입니다. MAF에서 μ_i 및 α_i는 이전 데이터 변수 x_1:i-1에서 직접 계산되는 반면, IAF에서는 μ_i 및 α_i가 이전 난수 u_1:i-1에서 직접 계산됩니다.

출처: https://lilianweng.github.io/posts/2018-10-13-flow-models/

위의 결과는 MAF와 IAF가 서로 다른 계산 트레이드 오프를 가진 서로 다른 모델임을 보여줍니다. MAF는 한 번에 모든 데이터 포인트 x의 밀도 p(x)를 계산할 수 있습니다. 그러나 모델에서 샘플링하려면 D개의 순차 패스를 수행해야 합니다. 반대로 IAF는 샘플을 생성하고 한 번에 밀도를 계산할 수 있습니다. 그러나 외부에서 제공된 데이터 포인트 x의 밀도 p(x)를 계산하려면 x와 관련된 난수 u를 찾기 위해 D 패스가 필요합니다. 따라서 μ_i와 α_i를 x_1:i-1(MAF 획득) 또는 u_1:i-1(IAF 획득)에 직접 연결할지 여부에 대한 설계 선택은 의도된 용도에 따라 다릅니다. IAF는 확률적 변분 추론에 대한 인식 모델로 적합하고, 자체 샘플의 밀도를 계산해야 합니다. 반면, MAF는 밀도 추정에 더 적합합니다. 각 예는 모델을 통해 한 번만 통과하면 되는 반면 IAF는 D번 필요하기 때문입니다.

*D: dimension of x

  Data Generation Desnsity Estimation
MAF 순차적이라 느림, D번 소요 한 번에 가능, 빠름
IAF 한 번에 가능, 빠름 순차적이라 느림, D번 소요

MAF와 IAF 사이의 이론적 동등성은, maximum likelihood로 MAF를 학습하는 것이 확률적 변분 추론을 사용하여 implicit IAF를 기본 밀도에 맞추는 것과 일치한다는 것입니다.

π_x(x)는 학습하려는 데이터 밀도, π_u(u)는 기본 밀도, f는 MAF에서 실행된 u에서 x로의 변환입니다. MAF에 의해 정의된 밀도는 다음과 같습니다.

Equation (7)

x에서 u로의 역변환 f inverse 는, 기본 밀도 π_x(x)를 갖는 implicit IAF를 묘사하는 것으로 볼 수 있습니다. u 공간에 대해 다음과 같은 implicit 밀도를 정의합니다.

Equation (8)

MAF를 학습 데이터 {x_n}에서 전체 log likelihood를 최대화하는 학습은, D_KL(π_x(x) || p_x(x))를 확률적으로 최소화하여 p_x(x) → π_x(x)에 맞추는 것과 일치합니다. 

Equation (9)

3. Relationship with Real NVP

Real NVP는 coupling layers를 스태킹하여 얻은 normalizing flow입니다. coupling layer은 다루기 쉬운 Jacobian을 사용하여 난수 u → 데이터 x로의 가역 변환 f이며, 다음과 같이 정의됩니다.

Equation (10)

변환은 첫 번째 d 요소를 복사하고 나머지 (D-d) 요소를 크기 조정 및 이동합니다. 크기 조정 및 이동의 양은 첫 번째 d 요소의 함수입니다. coupling layers를 흐름에 쌓을 때, 요소는 레이어 간에 순열되어 매번 다른 요소 세트가 복사됩니다. α=0이 NICE에서 사용되는 결합층의 특수한 경우입니다.

* 동그라미 속 검은점: elementwise multiplication, exp: exp is applied to each element of α

 

우리는 coupling layer가 Equation (3)에서 MAF가 사용하는 autoregressive 변환과 Equation (3)에서 IAF가 사용하는 autoregressive 변환 모두의 특수한 경우임을 알 수 있습니다. 실제로 우리는 i ≤ d에 대해 μ_i = α_i = 0으로 설정하고 i > d에 대해 x1:d의 μ_i 및 α_i 함수를 만듦으로써 MAF의 autoregressive 변환에서 coupling layer을 복구할 수 있습니다. 즉, MAF와 IAF는 Real NVP의 보다 유연한(그러나 다른) 일반화로 볼 수 있습니다. 여기서 각 요소는 이전의 모든 요소의 함수로 개별적으로 크기 조정되고 이동됩니다. MAF 및 IAF에 비해 Real NVP의 장점은 하나의 forwardpass만으로 데이터를 생성하고 밀도를 추정할 수 있는 반면, MAF는 데이터를 생성하기 위해 D 패스가 필요하고 IAF는 밀도를 추정하기 위해 D 패스가 필요하다는 것입니다.

 

4. Conditional MAF

 {(x_n, y_n)} 세트가 주어졌을 때, 조건부 밀도 추정은 조건부 밀도 p(x | y)를 추정하는 작업입니다. Autoregressive 모델링은 자연스럽게 조건부 밀도 추정으로 확장됩니다. 따라서 입력 변수 집합을 y로 늘리고 x에 해당하는 조건만 모델링하여 unconditional autoregressive 모델을 조건부 모델로 전환할 수 있습니다. y가 x 앞에 오는 한 변수의 모든 순서를 선택할 수 있습니다. 마스킹된 autoregressive 모델에서는 y 입력에서 네트워크의 나머지 부분으로 연결을 끊을 필요가 없습니다.

 

위의 전략을 사용하여 조건부로 만들어진 MADE를 쌓아 MAF의 조건부 버전을 구현할 수 있습니다. 즉, 조건부 MAF에서 벡터 y는 모든 레이어에 대한 추가 입력이 됩니다. MAF의 특수한 경우로 Real NVP도 같은 방식으로 조건부로 만들 수 있습니다. 조건부 정보를 활용가능한 경우, 조건부 MAF가 무조건부 MAF보다 성능이 훨씬 우수함을 보여줍니다. 실험에서 MAF는 MADE 및 Real NVP보다 컨디셔닝에서 훨씬 더 많은 이점을 얻을 수 있었습니다.

정리: 정답 label을 함께 입력하는 것이 Conditional MAF, 어떤 것을 학습할지 알려주는 느낌

 

Experiments

Table 1: Average test log likelihood (in nats) for unconditional density estimation. The best performing model for each dataset is shown in bold (multiple models are highlighted if the difference is not statistically significant according to a paired t-test). Error bars correspond to 2 standard deviations.

 

Table 2: Average test log likelihood (in nats) for conditional density estimation. The best performing model for each dataset is shown in bold. Error bars correspond to 2 standard deviations.

좋은 성능을 보여줌, Condition을 사용하였을 때 큰 성능 차이도 보여줌.