300x250

 

목차

     

    이번 포스팅에서는 deep generative model이 어떻게 분류되는지 high level에서 알아보고, 이러한 generative model을 공부하기 앞서 알아두어야 할 기본 지식을 간단히 복기해보자.

     

     

     

    Taxonomy of Deep Generative models

     

    Deep generative model은 학습 방식에 따라 다음과 같이 분류할 수 있다.

    • Autoregressive models (ex. PixelCNN)
    • Flow-based models (ex. RealNVP)
    • Latent variable models
      • Implicit models (ex. GANs)
      • Prescribed models (ex. VAEs)
    • Energy-based models

    Diffusion model의 경우 굳이 분류하자면 latent variable model이 될 것이다.

    각 분류에 따라 어떤 방식으로 학습을 진행하는지 간단하게 알아보자.

     

     

     

    Autoregressive Models (ARM)

     

    Autoregressive model은 이름 그대로 autoregressive하게, 즉 sequential data에 대해서 순차적으로 학습을 진행한다. (chain rule 사용)

    데이터 \(\mathbf{x}\)에 대한 distribution이 다음과 같이 autregressive하게 표현된다.

    \( p(\mathbf{x}) = p(x_0) \prod\limits_{i=1}^{D} p(x_i | \mathbf{x}_{<i}) \)

     

    모든 conditional disrtibution \(p(x_i | \mathbf{x}_{<i})\)을 모델링해야한다는 점에서 비효율적이지만, audio나 image에 대해 causal convolution의 이점을 갖는다.(likelihood를 계산할 수 있다.)

     

     

     

    Flow-based Models

     

    Flow-based model에서는 change of variables라는 공식을 활용하여 invertible transformation \(f\)로 random variable의 density function을 변환한다. 이러한 방법으로 간단한 분포에서 복잡한 분포를 만들어가는 과정을 flow라 한다.

    \( p(\mathbf{x}) = p(\mathbf{z} = f(\mathbf{x})) \left\vert \mathbf{J}_{f(\mathbf{x})} \right\vert \)

     

    여기서 \(\mathbf{J}\)는 (inverse 계산이 가능한) jacobian 행렬을 나타낸다.

     

     

     

    Latent Variable Models

     

    Latent variable model에서는 저차원의(low-dimensional) latent space를 활용하여 다음과 같은 generative process를 가정한다.

    \( \mathbf{z} \sim p(\mathbf{z}) \)
    \( \mathbf{x} \sim p(\mathbf{x} | \mathbf{z} )\)

     

    Latent variable \(\mathbf{z}\)는 data에 숨겨진 특성(hidden factors)을 나타내고, generator는 \(p(\mathbf{x} | \mathbf{z})\)로 모델링된다.

     

     

     

    Energy-based Models

     

    Energy-based model은 physics에 기반한 방법으로, 요즘은 활발히 연구되고있진 않다. Generative model들의 group을 Energy function \(E(x)\)를 정의하여 다음과 같은 Boltzmann distribution으로 모델링한다.

    \( \mathbf{x} = \cfrac{\operatorname{exp}\{- E(\mathbf{x}) \} }{Z} \)

     

     

     

     

    Summary (Comparison)

     

    Deep generative model들을 분류한 다양한 모델의 특성은 다음과 같이 표로 나타낼 수 있다.

     

    Table 1. Comparison of deep generative models

     

     

     

     

     

     

    Pre-knowledges

     

    생성 모델을 알아보기 이전에, 이해에 필수적인 간단한 확률 통계 지식을 되짚어보자.

     

     

     

    Basic Discrete Distributions

     

    Discrete distribution에는 대표적으로 Bernoulli distribution과 categorical distribution이 있다. 둘은 각각 '동전 뒤집기 (biased)', 'm개 면이 있는 주사위 뒤집기 (biased)'로 이해해볼 수 있다.

     

      Bernoulli distribution Categorical distribution
    Dimensions {Heads, Tails} {1, ..., m}
    Property \(P(X=\text{Heads}) = p \Rightarrow P(X=\text{Tails}) = 1 - p\) \(P(Y=i)=p_i \Rightarrow \sum\limits_{i} p_i = 1\), 즉 DOF가 i-1 (i-1개 알면 나머지 하나는 정해짐)
    Expression \(X \sim \operatorname{Ber}(p)\) \(Y \sim \operatorname{Cat}(p_1, \cdots, p_m)\)
    Sampling 동전 던지기 주사위 굴리기

     

     

     

    Joint Distribution

     

    1개 픽셀 생성(색 지정)

    어떤 이미지에서 임의의 pixel의 color를 모델링한다고 해보자. 그러면 다음과 같은 세 가지 discrete random variable이 정의될 것이다.

    • Red channel (R) : \(\operatorname{Val}(R) = \{0, \dots, 255\}\)
    • Green channel (G) : \(\operatorname{Val}(G) = \{0, \dots, 255\}\)
    • Blue channel (B) : \(\operatorname{Val}(B) = \{0, \dots, 255\}\)

     

    한 픽셀에 color를 랜덤하게 생성해주려면 joint distribution \(p(R, G, B)\)에서 \((r, g, b)\)를 샘플링해야 한다. 이때, joint distribution \(p(R=r, G=g, B=b)\)를 정하기 위한 parameter의 개수는 무엇일까? (즉, 뽑을 수 있는 color의 경우의 수)

    \(256 \times 256 \times 256 - 1 = 16777215\) (-1은 위에서 언급한 categorical distribution의 DOF때문)

     

    이렇게, pixel 하나의 color를 샘플링하는 데에도 엄청나게 많은 경우의 수가 존재한다.

     

    1개 흑백 이미지 생성

    좀 더 단순화시켜서, 이번에는 n개 픽셀에 대해 binary(Bernoulli) random variable \(x_1, \dots, x_n\)이 있다고 하자. Binary random variable이므로 흑백의 값을 가질 것이다.

    • \(\operatorname{Val}(x_i) = \{0, 1\} = \{\text{Black}, \text{White}\}\)

     

    이때, 가능한 state(image data 하나)의 경우의 수는 \(2^n\)일 것이다. 즉, n개 픽셀을 갖는 흑백 이미지 하나를 생성하기 위해 joint distribution \(p(x_1, \dots, x_n)\)을 정하기 위해 필요한 parameter 개수는 \(2^n -1\)개이다.

     

    그런데, 만약 \(x_1, \dots, x_n\)이 서로 독립(independent)이라면, joint distribution을 다음과 같이 나타낼 수 있다.

    \( p(x_1, \dots, x_n ) = p(x_1) p(x_2) p(x_3) \cdots p(x_n) \)

    여기서 가능한 state 개수는 \(2^n\)으로 그대로지만, joint distribution \(p(x_1, \dots, x_n)\)을 정하기 위한 parameter 개수는 \(n\)개로 줄어든다. 그 이유는 marginal distribution \(p(x_1), p(x_2), p(x_3), \dots \)를 정하기 위해 필요한 parameter 개수가 각각 1개이기 때문이다. (Bernoulli distribution → \(p(x_1 = 0) = p\)이면 \(p(x_1 = 1) = 1 - p\)이기 때문)

    즉, \(n\)개 숫자로 \(2^n\)개 entry를 만들어낼 수 있다. 하지만, independence assumption은 너무 strong하다. 쉽게 말하면 실제로 어떤 이미지에서 pixel의 색을 고를 때, 완전히 독립적으로 고르면 이미지가 어떤 원하는 형태로 생성될 수 없을 것이다.

     

    따라서, conditional independence를 활용하여 모델을 단순화한다.(연산량을 줄인다.)

    두 event \(A, B\)가 주어진 event \(C\)에 대해 다음을 만족하면 \(A\)와 \(B\)는 conditional independent하다고 표현한다.

    \( P(A \cap B \vert C) = P(A \vert C) P(B \vert C) \)

    또한 random variables \(x \in \operatorname{Val}(X), y \in \operatorname{Val}(Y), z \in \operatorname{Val}(Z)\)에 대해 다음을 만족하면 \(x\)와 \(y\)는 conditional independent하다고 한다.

    \( P(X \leq x \cap Y \leq y \vert Z = z) = P(X \leq x \vert Z = z) \cdot P(Y \leq y \vert Z = z) \)

    여기서 \(P(X \leq x, Y \leq y \vert Z = z)\)는 주어진 \(Z\)에 대해 \(X, Y\)의 conditional cumulative distribution function(cdf)이다.

    이를 간단히 \( P(X,Y | Z) = P(X | Z) P(Y | Z)\) 혹은  \(X \bot Y \vert Z\) 로 표현한다.

    위와 같이 조건부 독립을 만족할 경우(X와 Y가 Z가 주어졌을 때 독립이면) event \(Y\)는 \(Z\)가 주어졌을 때 \(X\)의 확률에 영향을 미치지 못하므로, 다음과 같은 성질을 갖는다.

    \( P(X \vert Y, Z) = P(X \vert Z) \)

    이러한 성질을 통해 parameter 개수를 줄여줄 수 있다.

     

     

     

     

    Chain rule and Bayes' rule

     

    Chain rule과 Bayes' rule도 중요한 기본 개념이다.

    먼저, Chain rule은 events \(S_1, \dots, S_n\)에 대해 다음 식과 같다. (\(p(S_i) > 0\))

    \( p(S_1, S_2, \cdots, S_n) = p(S_1) p(S_2 \vert S_1) \cdots p(S_n \vert S_1, \cdots , S_{n-1}) \)

     

    그리고 Bayes' rule은 event \(S_1, S_2\)에 대해 다음 식으로 표현한다. (\(p(S_1) > 0\) and \(p(S_2) > 0\))

    \( p(S_1 \vert S_2) = \cfrac{p(S_1, S_2)}{p(S_2)} = \cfrac{p(S_2 \vert S_1) p(S_1)}{p(S_2)} \)

     

    위에서 다뤘던 '1개 흑백 이미지 생성' 예시에서, chain rule을 활용하면 joint distribution을 다음과 같이 나타낼 수 있다.

    \( p(x_1, \cdots, x_n) = p(x_1) p(x_2 \vert x_1) p(x_3 \vert x_1, x_2) \cdots p(x_n \vert x_1, \cdots, x_{n-1}) \)
    \( \text{posterior} = \cfrac{\text{likelihood} \cdot \text{prior}}{\text{evidence}} \)

    좌변의 distribution을 정하기 위한 parameter 개수는 \(2^n - 1\)개, 우변은 \(2^0 + 2^1 + 2^3 + \cdots + 2^{n-1} = 2^n - 1\)개로, parameter 개수는 줄어들지 않는다. (exponential)

    하지만, chain rule을 통해 factorize한 term에 대해 conditional independence 성질을 적용하여 parameter 개수를 줄여줄 수 있다.

    모델이 Markov model이라 가정하자. Markov model이란, 오직 이전의 값에만 의존하는 모델로, '이전 \(x\)가 주어졌을 때 그 이전의 모든 \(x\)에 대해 conditional independent하다'는 의미이다. 즉, \(x_{i+1} \bot x_1, \dots, x_{i-1} \vert x_i\)를 만족한다.

    그러면 다음과 같이 joint distribution이 단순화된다.

    \( p(x_1, \cdots, x_n) = p(x_1) p(x_2 \vert x_1) p(x_3 \vert \cancel{x_1}, x_2) \cdots p(x_n \vert \cancel{x_1}, \cancel{x_2}, \cancel{x_3}, \cdots, \cancel{x_{n-2}}, x_{n-1}) \)

    따라서 parameter 개수는 \(1 + 2 + 2 + \cdots + 2 = 2n - 1\)개가 필요하다.

     

    728x90
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기