생성 모델의 확률 분포 pθ(x)는 두 가지 조건을 성립해야 한다.
autoregressive, variational autoencoders와 같은 생성 모델 알고리즘은 계산을 수행하면서 정규화 작업을 진행해 ∑pθ(x)=1을 만족하도록 설정.
하지만 확률 분포 pθ(x)가 복잡해짐에 따라 계산의 중간 단계에서 정규화 과정을 포함하는 것만으로는 Sum-to-One 조건을 만족하지 못하게 된다. (예를 들어, VAE에서는 q(z|x)를 근사하는 과정에서 prior 분포 즉, 정규분포와 비슷해지게 만들어지는데, 이때 sum이 1이 아니게 될 수 있음)
즉 ∑pθ(x)=1이 아니게 되어버리기 때문에 생성 모델이 잘못된 데이터를 생성하는 결과를 초래.
Energy-Based Model은 기존 수행하던 정규화 과정을 제외하고 확률 분포 fθ(x)를 계산한 다음 정규화 상수 (Normalization Constant)을 곱해주어 한 번에 정규화 과정을 마친 확률 분포 pθ(x)를 구하는 생성 모델 알고리즘이다.
$$ p_{\theta}(x) = \frac{1}{\int \exp(-f_{\theta}(x))dx} \exp(-f_{\theta}(x)) = \frac{1}{Z(\theta)} \exp(-f_{\theta}(x)) $$
이러한 Energy-Based 모델은 복잡한 정규화 과정을 한 번에 수행함으로서 확률 분포 pθ(x)를 더 정밀하게 나타낼 수 있지만, 정규화 과정을 위해 설정한 Normalizing Constant Z(θ)=∫exp(-fθ(x))dx 이 계산이 어려운 intractable한 분포라는 단점이 존재.
즉 생성 모델을 학습 데이터 D에 대해 학습시키기 위해서는 log likelihood logpθ(x)의 gradient ∇_θ를 파라미터 θ에 더해주는 gradient optimization 단계를 거쳐야 하므로 계산이 불가능한 분포Z(θ)=∫exp(fθ(x))dx 를 미분하는 방법을 찾아야 한다.
Energy-based model은 Maximum Likelihood Estimation(MLE)를 통해 model의 parameter를 학습함.
계산이 어려운 Normalizing Constant Z(θ)을 포함한 Energy-Based 모델을 학습 데이터셋 D에 학습시키기 위해 확률 분포 pθ(x)를 다음과 같이 나타낼 수 있다. (두 번째 등식은 f를 간단하게 모델링)
$$ p_{\theta}(x) = \frac{1}{Z(\theta)} \exp(f_{\theta}(x)) = \frac{\exp(\theta^T f(x))}{Z(\theta)} $$
모델의 확률 분포를 데이터의 확률 분포에 근사하기 위해 Monte Carlo Estimation을 적용해 학습 데이터를 적용시킨 가능도 식은 다음과 같다.
$$ L(\theta, D) = \frac{1}{|D|} \sum\limits_{x \in D} \log p_{\theta}(x) = \frac{1}{|D|} \sum\limits_{x \in D}(\theta^T f(x) - \log Z(\theta)) $$