Home Generative Models - I. Intoduction
Post
Cancel

Generative Models - I. Intoduction

Generative Models

I. What is Generative model?

세상에 존재하는 객체에 대한 확률분포 $p(x)$를 구하는 것은 불가능하다.

하지만 비슷한 객체 모음, Dataset $D$를 바탕으로 전체 중에서 어떤 객체가 존재할 수 있는 확률 을 계산할 수 있게 된다. 즉 $D$를 바탕으로 $p_{data}(x)$의 확률 분포를 계산하는 것이 가능하다는 의미이다. 더 나아가 마치 Maximum Likelihodd Estimation처럼 $p_{data}(x)$ 분포에서 가능도가 가장 높은 $x$를 추출해 새로운 객체를 생성하는 것 또한 가능해진다.

\(x \sim p_{data}(x)\) 어떤 확률 분포에서 가능도가 가장 높은 데이터를 추출하는 과정은 위와 같이 표현한다.

따라서 생성모델은 Dataset $D$로부터 probability $p_{data}(x)$를 근사하고 가능도가 가장 높은 x를 추출하는 알고리즘이라고 생각할 수 있다. 다만 Real Prob $p_{data}(x)$를 근사하는 것은 사실 불가능하기 때문에 생성모델은 Model Prob $p_{\theta}$를 사용하게 된다. \(p_{\text{data}} \approx p_{\theta}\) 생성모델을 학습한다는 것은 $p_{\theta}$이 $p_{data}$와 거의 근사하도록 업데이트를 진행하는 것을 의미한다.

2. Discriminative Models

판별모델은 Input $x$에 대해서 알맞은 Label $y$을 예측하는 결정 경계를 학습하는 알고리즘이다. 예를 들어 CNN이나 RNN 모델을 사용하여 Input에 대한 Label를 추정하는 문제를 푼다고 가정하면 Input 자체의 내제적인 특성은 깊이 이해하지 않는다.

이는 수학적으로 생각하면 CNN이나 RNN 모델을 사용한 Clasification 문제에서 $X$와 $Y$ 간의 Likelihood function $P(Y \mid X)$ 만을 생각하기 때문이다. 이는 X 입력이 문제와 관련이 있는 경우일 때는 정상적으로 동작하지만, X 입력이 문제와는 전혀 다르거나 사전에 학습된 데이터과 완전히 달라지는 입력이 등장한다면 여전히 동일한 동작을 수행하기 때문에 정상적인 판단이 힘들다.

3. Generative Models

앞서 언급했듯이 생성 모델은 $p_{data}(x)$에 대한 근사를 진행하여 $p_{\theta}$ 확률분포를 학습한다. 여느 다른 딥러닝 알고리즘처럼 Parameter $\theta$를 업데이트해 나가며 $p_{\theta}(x)$를 통해 새로운 고차원 데이터 $\hat{x} \sim p_{\theta}(x)$를 생성할 수 있게 된다.

생성모델은 판별 모델과 달리 Input 데이터에 대해 학습한다고 생각할 수 있다. 다시 말해 Likelihood function $P(Y \mid X)$이 아닌 Prior Function $P(X)$에 대한 학습을 진행하는 것과 같다.

완전한 비유는 아닐 수 있다.

Threshold

따라서 X가 존재할 수 있는 모든 정의역에 대해서 확률값에 대한 적분을 진행했을 때 $\int p_\theta(x)\,dx=1$당연히 1의 값이 나오게 될 것이고, 이를 활용한다면 입력에 대한 이상치 탐지에도 활용할 수 있다.

3.1 Generative model Objective

생성모델들의 목표는 아래 3가지로 정리할 수 있다.

  • 1. Generation 모델의 확률분포에서 추출한 새로운 데이터 $\hat{x}$는 $p_{data}(x)$에서 추출한 실제 $x$와 유사해야 한다.
  • 2. Representation Learning 이는 간단히 말해서 Input x를 간결하고 의미가 뚜렷한 Latent Vector z로 바꾸는 과정이 필요하다는 의미이다. 이를 통해서 불필요한 요소를 줄일 수 있으며 경우에 따라서는 재구성/생성이 쉬워진다. $z=f_\phi(x)$
  • 3. Density Estimation 밀도 추정은 학습된 생성모델에 $\overline{x}$이 들어왔을 때 $p_{\theta}(\overline{x})$ 값이 분포와 맞다면 높은 값을 다르다면 낮은 값을 가지도록 해야 한다는 의미이다.

3.2 Generative model Architecture

생성모델을 정의하고 최적의 $\theta^*$을 구하기 위하기 위한 Pipeline을 구축하는 것이 중요하다.

Gen_ARC Model Family Choosing

생성모델도 CNN이나 Transformer와 같이 필요한 Task에 맞는 model을 사용하는 것이 필요하다. Input data type, Task에 맞는 적절한 Model을 설정해야 초기 $p_{\theta}(x)$의 값이 $p_{data}(x)$의 값과 큰 차이가 나지 않아 더 빠르고 정확한 학습이 가능하다.

Setting Learning Objective \& Optimization

다른 Model과 동일하게 생성모델도 적절한 학습 목표와 최적화 방법론을 사용해 Model Architecture를 구성해야 한다.

3.3 Taxonomy of Generative Models

Taxonomy_gen

생성모델의 분류 체계는 위와 같다. Explicit Density는 확률값을 직접적으로 다룬다는 뜻이고, Tractable Density는 직접 해당 값을 구할 수 있다는 것을 의미한다. (Approximate Density)는 직접 계산은 불가능하다는 것을 의미한다.

생성모델과 관련된 여러 논문을 읽기 전에 위키독스 생성모델 문서로 먼저 배경 지식을 정리해보고자 한다.

This post is licensed under CC BY 4.0 by the author.