[CS236n] 10. Evaluating Generative Models

Date:     Updated:

카테고리:

태그:


💡 이 글은 『2024 YAI 봄전반기 생성모델팀』으로 진행되었으며, CS236n Fall 2023를 따라 정리했습니다.

1. Introduction

1장에서 다룬 것처럼, 생성 모델은 다음 세 가지 특징을 만족해야 좋은 생성 모델이라고 할 수 있다.

  • Density estimation: 임의의 데이터 $\tilde{x}$에 대해 실제 데이터와 유사할수록 $p_\theta(\tilde{x})$가 높아야 하고, 다를수록 낮아야 한다. 즉, $p_\theta$가 $p_{data}$를 잘 표현해야 한다.
  • Generation: $\hat{x} \sim p_\theta(x)$는 $x \sim p_{data}(x)$와 유사해야 한다.
  • Unsupervised representation learning: 데이터셋이 공통으로 가지는 특성을 학습해야 한다.

이번 장에서는 각각의 특징을 평가하는 방법에 대해 다룬다.


2. Density estimation

Density estimation에 대한 평가는 곧 $p_\theta$가 $p_{data}$를 잘 표현하는지 평가하는 것이다. 모델이 tractable likelihood를 가지고 있다면 likelihood를 사용해 직접 평가할 수 있다. 즉, 다음과 같이 평가한다.

  1. Train set을 사용해 $p_\theta(x)$를 학습한다.
  2. Validation set을 사용해 hyperparameter tuning을 진행한다.
  3. Test set을 사용해 $\mathbb{E}_ {p_{data}(x)} \left[ \log p_\theta(x) \right]$를 계산한다.

Test set을 사용한 $\mathbb{E}_ {p_{data}(x)} \left[ \log p_\theta(x) \right]$의 값이 높다면 모델이 데이터의 분포를 잘 표현하고 있다고 할 수 있다. 이렇게 평가할 수 있는 모델로는 tractable likelihood를 가지는 autoregressive model, normalizing flow model 등이 있다. 그러나 VAE, EBM 등의 경우 잠재 변수 $z$를 고려해야 하기 때문에 $p_\theta$를 구할 수 없는 intractable한 분포를 가지고 있다. GAN의 경우에는 $p_\theta$가 중요하지 않고, sampling이 중요하기 때문에 다른 방법으로 평가해야 한다.

2.1. Annealed Importance Sampling (AIS)

📌 AIS에 대한 설명글을 참고하였습니다.

VAE, EBM과 같이 latent variable을 가지고 있어 $p_\theta$가 intractable한 모델의 경우, annealed importance sampling을 사용해 평가할 수 있다. Importance sampling은 VAE에서 다루었던 개념으로, $p_\theta(x)$를 추정하기 위해 적절한 분포 $q(z)$로부터 $z$를 샘플링하는 방법이다. 식의 유도는 4장에서 다루었다. 결과적으로 가장 적절한 분포는 $q(z) = p_\theta(z\mid x)$였고, 적절한 분포를 구하지 못하면 $p_\theta(x)$를 제대로 추정할 수 없었다.

\[\begin{aligned} p_\theta(x) &= \sum_ z p_\theta(x, z) \\ &= \mathbb{E}_ {q(z)} \left[ \frac{p_\theta(x, z)}{q(z)} \right] \\ &\approx \frac{1}{k} \sum_ {j=1}^k \frac{p_\theta(x, z^{(j)})}{q(z^{(j)})} \end{aligned}\]

이를 조금 다르게 나타내면 다음과 같다.

\[\begin{aligned} \mathbb{E}_ {z \sim p(z)} \left[ p_\theta(x \mid z) \right] &= \mathbb{E}_ {z \sim q(z)} \left[ \frac{p(z)}{q(z)} p_\theta(x \mid z) \right] \\ &\approx \frac{1}{k} \sum_ {j=1}^k \frac{p(z^{(j)})}{q(z^{(j)})} p_\theta(x \mid z^{(j)}) \end{aligned}\]

그러나 적절한 $q(z)$를 완전히 계산하기는 어렵고, 이를 해결하고자 하는 것이 annealed importance sampling이다. Annealed importance sampling은 다음과 같은 방법으로 $p_\theta(x)$를 추정한다.

  1. $p_0(z) = p(z \mid x) \propto f_0(z)$ 를 우리의 target distribution으로 정한다.
  2. $p_n(z) = p(z) \propto f_n(z)$ 를 우리의 proposal distribution으로 정한다.
  3. $p_n(z)$에서 시작해서 $p_0(z)$로 이동하는 $n$개의 intermediate distribution을 정한다. 이를 $p_j(z) \propto f_j(z)$라고 하자. 이때의 제한조건은 $p_{j-1}(z) \neq 0$인 $z$에 대해 $f_j(z) \neq 0$인 것이다.
  4. MCMC 시 사용할 local transition probability $T_j(z, z’)$를 정의한다.

이제 다음과 같이 순서대로 샘플링한다.

  • $z_{n-1} \sim p_n(z)$를 샘플링한다.
  • $T_{n-1}$에 대해 MCMC로 $z_{n-1}$로부터 $z_{n-2}$를 샘플링한다.
  • $\cdots$
  • $T_2$에 대해 MCMC로 $z_2$로부터 $z_1$을 샘플링한다.
  • $T_1$에 대해 MCMC로 $z_1$로부터 $z_0$을 샘플링한다.

이제 구한 $z_{n-1}, z_{n-2}, \cdots, z_1, z_0$을 사용해 다음과 같이 importance weight $w$를 계산한다.

\[w = \frac{f_{n-1}(z_{n-1})}{f_n(z_{n-1})} \times \frac{f_{n-2}(z_{n-2})}{f_{n-1}(z_{n-2})} \times \cdots \times \frac{f_0(z_0)}{f_1(z_0)}\]

이제 $p(z)$에서 샘플링한 $z^{(j)}$를 이용해 계산한 $w^{(j)}$를 사용해 $p_\theta(x)$를 추정한다.

\[\begin{aligned} \mathbb{E}_ {z \sim p(z)} \left[ p_\theta(x \mid z) \right] &\approx \frac{1}{k} \sum_ {j=1}^k \frac{w^{(j)}}{\sum_j w^{(j)}} p_\theta(x \mid z^{(j)}) \end{aligned}\]

Intermediate distribution이 없으면 다음과 같이 되어 importance sampling과 동일한 결과를 얻는다.

\[w = \frac{f_0(z)}{f_n(z)} \propto \frac{p(z)}{q(z)} \\ \mathbb{E}_ {z \sim p(z)} \left[ p_\theta(x \mid z) \right] \approx \frac{1}{k} \sum_ {j=1}^k \frac{p(z^{(j)})}{q(z^{(j)})} p_\theta(x \mid z^{(j)})\]

참고로 Annealed importance sampling에서 사용된 estimate는 likelihood에 대해서는 unbiased이지만, log-likelihood에 대해서는 biased인 것이 알려져 있다.

Annealed importance sampling을 사용하면 explicit하게 $p_\theta(x)$를 알 수 없는 latent variable model에 대해서도 likelihood를 추정할 수 있으므로, 이를 활용하면 VAE, EBM 등의 모델에 대해 density estimation을 평가할 수 있다.

2.2. Kernel Density Estimation (KDE)

Kernel density estimation은 원래 통계적 밀도 추정으로, 관측된 데이터들의 분포로부터 원래 변수의 확률분포를 추정하고자 한다. 궁극적인 목표는 다른 생성모델들과 같기 때문에, 이를 따서 “통계적 생성 모델”이라고도 한다. KDE에 대해 이해하기 위해, 간단한 1차원의 예시 데이터셋을 보자.

이 데이터셋으로부터 확률분포 $p(x)$를 추정하고자 한다. 가장 간단한 것은 히스토그램으로 확률분포를 나타내는 것이고, 그것보다 조금 세련된 것은 평균이 $x^{(i)}$인 가우시안 분포의 합으로 확률분포를 나타내는 것이다.

이 중 오른쪽 방법을 kernel density estimation이라고 한다. 이 방법은 일반적인 커널 $K(\cdot)$에 대하여 다음과 같이 나타낼 수 있다.

\[\hat{f}_ h(x) = \frac{1}{n\sigma} \sum_ {i=1}^n K \left( \frac{x - x^{(i)}}{\sigma} \right)\]

커널은 gaussian, cosine, sigmoid 등 다양한 것을 사용할 수 있으며, 다음과 같은 조건을 만족하면 된다.

  1. $\int K(u) du = 1$ (Normalization)
  2. $K(u) \geq 0$ (Non-negativity)
  3. $K(u) = K(-u)$ (Symmetry)

Bandwidth $\sigma$는 커널의 폭을 결정하는 hyperparameter로, 이를 통해 smoothing을 조절할 수 있다. 위 그림에서 $\sigma$가 작을 때(빨간색)는 undersmoothed, $\sigma$가 클 때(초록색)는 oversmoothed된 모습을 보이며 적절한 $\sigma$(검은색)를 설정할 때 true density(회색)에 가장 가까운 것을 볼 수 있다. 이 값은 cross-validation을 통해 조절할 수 있다.

GAN과 같이 tractable likelihood를 가지지 않는 모델에 대해 density estimation을 평가할 때, kernel density estimation을 사용할 수 있다. 과정은 다음과 같다.

  1. Train set을 사용해 KDE $\hat{f}_ h(x)$를 학습한다. 이것은 $p_{data}(x)$를 추정한 것으로, $p_\theta(x)$ 대신 사용한다.
  2. Validation set을 사용해 bandwidth $\sigma$를 조절한다.
  3. Test set을 사용해 $\mathbb{E}_ {p_{data}(x)} \left[ \log \hat{f}_ h(x) \right]$를 계산한다.

그러나 KDE는 고차원 데이터에 대해서는 정확도가 떨어진다는 문제가 있다.


3. Generation

Generation에 대해 평가하는 것은 곧 생성모델이 생성한 데이터가 실제 데이터와 유사한지 평가하는 것이다. 가장 좋은 방법은 사람이 평가하는 것이다. Human evaluation을 활용한 지표로 HYPE(Human eYe Perceptual Evaluation)가 있다. (Zhou et al. 2019)

  • HYPEtime: 생성 모델이 만든 데이터인지 혹은 데이터셋의 데이터인지에 대해 사람이 정확한 판단을 내릴 수 있는 최소한의 시간. HYPEtime이 길수록 생성 모델의 성능이 좋다.
  • HYPE: 무한대의 시간을 허용했을 때, “데이터셋의 데이터”라고 사람들을 설득시킨 생성 모델 데이터의 비율. HYPE이 높을수록 생성 모델의 성능이 좋다.

그러나 사람이 평가하는 것은 비용이 많이 들고, 주관적인 요소가 포함될 수 있으며 재현이 어렵다. 따라서 이를 보완하기 위해 다양한 지표가 제안되었다. 여기서는 그 중 중요한 몇 가지, 즉 Inception Score (IS), Frechet Inception Distance (FID), Kernel Inception Distance (KID)에 대해 다룬다.

3.1. Inception Score (IS)

Inception Score는 생성 모델의 generation quality를 sharpness와 diversity의 두 가지 기준을 통해 평가하는 지표이다. 이때 두 가지 가정이 필요하다.

  • 가정 1: Inception Score는 라벨링된 데이터셋을 대상으로 학습한 생성 모델만을 대상으로 한다.
  • 가정 2: Inception Score를 구하기 위해 생성한 데이터 $x$에 대해 라벨 $y$를 잘 예측하는 분류기(classifier) $c(y \mid x)$가 필요하다.

이러한 가정이 필요한 이유는 Inception Score가 생성 모델이 생성한 데이터가 얼마나 주어진 라벨에 대해 정확하게 생성되었는지(Sharpness), 얼마나 다양하게 생성되었는지(Diversity) 평가하는 지표이기 때문이다.

Sharpness

Sharpness는 생성 모델이 생성한 데이터가 주어진 라벨에 대해 정확하게 생성되었는지를 평가하는 지표이다. 이를 평가하기 위해 다음과 같이 계산한다.

\[S = \exp \left( \mathbb{E}_ {x \sim p} \left[ \int c(y \mid x) \log c(y \mid x) dy \right] \right)\]

Sharpness가 높다는 것은 생성 모델이 생성한 데이터 $x$에 대해 classifier가 확신을 가지고 분류할 수 있다는 것을 의미한다. 즉, classifier의 predictive distribution $c(y \mid x)$가 낮은 엔트로피를 가지고 있다는 것이다.

Diversity

Diversity는 생성 모델이 생성한 데이터가 다양하게 생성되었는지를 평가하는 지표이다. 이를 평가하기 위해 다음과 같이 계산한다.

\[D = \exp \left(- \mathbb{E}_ {x \sim p} \left[ \int c(y \mid x) \log c(y) dy \right] \right)\]

이때 classifier의 marginal distribution $c(y)$는 $c(y) = \mathbb{E}_ {x \sim p} \left[ c(y \mid x) \right]$로 나타낼 수 있으므로, diversity가 높다는 것은 $c(y)$가 높은 엔트로피를 가지고 있다는 것이다.

Inception Score

Inception Score는 sharpness와 diversity를 모두 고려한 지표로, 다음과 같이 계산한다.

\[IS = S \times D\]

이를 KL-divergence로도 나타낼 수 있다.

\[IS = \exp \left( \mathbb{E}_ {x \sim p} \left[ D_{KL} \left( c(y \mid x) \Vert c(y) \right) \right] \right)\]

그러나 Inception Score에도 여러 한계가 있다.

  1. 아래 경우에는 IS가 낮게 나올 수 있다.
    1. Classifier의 label에 없는 데이터를 생성하는 경우
    2. Classifier와 다른 label set을 사용해 데이터를 생성하는 경우
  2. 아래 경우에는 IS가 높게 나올 수 있다.
    1. Classifier가 이미지의 특징을 잘 감지하지 못하는 경우
    2. Generator가 train set을 그대로 기억하고 복제하는 경우
  3. 적절한 classifier를 찾기 어려운 경우 사용할 수 없다.

3.2. Frechet Inception Distance (FID)

FID(Frechet Inception Distance)는 Inception Score와 달리 생성 모델이 생성한 데이터와 실제 데이터의 특징의 차이를 통계적 거리를 통해 평가하는 지표이다. 이를 평가하기 위해서는 IS와 마찬가지로 Inception과 같은 pretrained classifier를 사용하여 feature representation을 추출한다. 예를 들어 classifier의 prefinal layer의 output을 사용하는 것이다.

생성 모델이 생성한 데이터를 $\mathcal{G}$, 실제 데이터를 $\mathcal{T}$라 하면 다음과 같이 FID를 계산한다.

  1. Pretrained classifier를 사용하여 $\mathcal{G}$와 $\mathcal{T}$의 feature representation인 $F_ \mathcal{G}$와 $F_ \mathcal{T}$를 추출한다.
  2. $F_ \mathcal{G}$와 $F_ \mathcal{T}$를 multivariate Gaussian distribution으로 가정하고, 두 분포의 평균과 공분산 $\left( \mu_ \mathcal{G}, \Sigma_ \mathcal{G} \right)$, $\left( \mu_ \mathcal{T}, \Sigma_ \mathcal{T} \right)$를 추정한다.
  3. 두 분포 간의 Frechet distance(Wasserstein-2 distance)를 계산한다.

    \[FID = \Vert \mu_ \mathcal{G} - \mu_ \mathcal{T} \Vert^2 + Tr \left( \Sigma_ \mathcal{G} + \Sigma_ \mathcal{T} - 2 \left( \Sigma_ \mathcal{G} \Sigma_ \mathcal{T} \right)^{1/2} \right)\]

FID가 낮다면, 생성 모델이 생성한 데이터와 실제 데이터의 특징이 유사하여 거리가 가깝다는 뜻이므로 sample quality가 높다고 할 수 있다.

3.3. Kernel Inception Distance (KID)

KID(Kernel Inception Distance)는 FID와 비슷한 지표로, 이를 평가하기 위해서는 IS, FID와 마찬가지로 pretrained classifier를 사용하여 feature representation을 추출한다. 이때 FID와 다른 점은 두 분포 간의 거리를 계산할 때 maximum mean discrepancy(MMD)를 사용한다는 것이다.

Maximum mean discrepancy(MMD)는 두 확률 분포 간의 차이를 평가하는 지표로, RKHS(Reproducing Kernel Hilbert Space)에서 두 분포 $p, q$ 간의 거리를 계산하는 방법이다.

\[\begin{aligned} MMD^2(p, q) = \mathbb{E}_ {x, x' \sim p} \left[ K(x, x') \right] + \mathbb{E}_ {y, y' \sim q} \left[ K(y, y') \right] - 2 \mathbb{E}_ {x \sim p, y \sim q} \left[ K(x, y) \right] \end{aligned}\]

여기서 $K(\cdot, \cdot)$는 kernel function으로, RKHS 상에서 두 샘플 간의 유사도(similarity)를 측정하는 함수라고 생각하면 된다. 즉, MMD는 직관적으로 분포 $p$ 및 $q$ 내에서의 샘플 유사도와 $p, q$가 섞인 샘플의 유사도를 비교하는 것이라고 볼 수 있다. KID는 MMD를 classifier의 feature space에서 계산한 것이다.

FID와 KID는 각각의 장단점이 있다.

  • FID는 biased이지만, KID는 unbiased이다.
  • FID의 시간복잡도는 $O(n)$이지만, KID의 시간복잡도는 $O(n^2)$이다.

즉 FID는 빠르지만 신뢰도가 떨어지고, KID는 느리지만 신뢰도가 높다. 두 평가지표를 적절히 사용하는 것이 중요하겠다.


4. Unsupervised representation learning

마지막으로 unsupervised representation learning을 어떻게 평가할지 알아보자. 이는 곧 latent representation을 잘 학습했는지 확인하는 것이라고 할 수 있고, 흔히 clustering, compression, disentanglement 등의 평가지표를 사용한다.

4.1. Clustering

좋은 latent representation을 학습했다면, 비슷한 특징을 가진 데이터들은 비슷한 latent representation을 가지므로 latent space에서 잘 모여 있을 것이다. 따라서 데이터를 생성 모델의 latent space로 보내고, latent space에서 clustering을 수행하여 데이터가 잘 모여 있는지 확인할 수 있다. Clustering은 K-means와 같은 머신러닝 알고리즘으로 얻을 수 있다.

그러나 무엇이 좋은 clustering인지에 대한 명확한 기준이 없기 때문에, 이를 평가하는 것은 어렵다. 위 그림은 MNIST 데이터셋에 대한 두 생성 모델의 latent space clustering 결과이다. 위의 B, D 중에서 어떤 것이 더 잘 된 clustering인지 판단하기는 쉽지 않다.

그래도 만약 라벨링된 데이터셋을 가지고 있다면 quantitative metric을 사용해볼 수 있다. 아래 notation에서 클래스는 $C$, 클러스터는 $K$로 나타낸다.

  • Completeness score: 같은 클래스의 데이터들이 같은 클러스터에 모여 있을 때 높은 값을 가진다.

    \[\text{Completeness score} = 1 - \frac{H(K \mid C)}{H(K)}\]
  • Homogeneity score: 하나의 클러스터에 하나의 클래스의 데이터들만 모여 있을 때 높은 값을 가진다.

    \[\text{Homogeneity score} = 1 - \frac{H(C \mid K)}{H(C)}\]
  • V measure score: completeness score와 homogeneity score의 조화평균, 혹은 NMI(Normalized Mutual Information)이다.

    \[\text{V measure score} = 2 \times \frac{\text{Completeness} \times \text{Homogeneity}}{\text{Completeness} + \text{Homogeneity}}\]

4.2. Compression

Latent representation이 잘 학습되었는지 확인하기 위해 데이터의 특성을 잘 압축(compression)하였는지, 즉 특성을 충분히 잘 추출하여 latent representation으로부터 데이터를 재현(reconstruction)하여도 원래 데이터와 유사한지 확인할 수 있다. 이를 평가하기 위해서는 평가하고자 하는 모달리티에서 사용하는 유사도 지표를 사용하면 된다. 예를 들어 이미지 데이터의 경우 MSE(Mean Squared Error), PSNR(Peak Signal-to-Noise Ratio), SSIM(Structural Similarity Index) 등을 사용할 수 있다.

4.3. Disentanglement

Concept of disentanglement

Disentanglement에 대해 설명하기 전에 entanglement(뒤얽힘, 꼬여있음)에 대해 먼저 이해해야 한다. (출처)

생성모델에서 random latent variable $z$로 생성한 이미지가 좌측 상단의 여성이라고 하자. 우리는 여기서 수염만을 추가하고 싶어 $z$ 중에서 하나의 축인 $z_1$만을 조절한다고 하자. 이를 통해 수염을 추가하는 latent variable $z^\prime$을 찾아 이미지를 생성하면 수염을 가진 남성이 나오게 된다. 이는 수염과 성별 등의 특성들이 entangled되어 있기 때문에 발생하는 문제이다. 우리는 하나의 특성이 하나의 축에 대응되는 disentangled latent variable을 원한다.

예를 들어 이미지 특성이 latent variable에 잘 disentangled되어 있다면,

  • $z_1$ 축을 고정하면, 이미지의 크기는 변하지 않는다.
  • $z_1$ 축을 움직이면, 이미지의 크기 외에 다른 특성은 변하지 않는다.

Disentanglement를 평가하는 여러 정량적인 지표들이 개발되었다. 그 예로는 Beta-VAE metric, Factor-VAE metric, Mutual Information Gap, SAP score, DCI disentanglement, Modularity 등이 있다. 여기에서는 Beta-VAE metric에 대해 간단히 다룬다.

Beta-VAE metric

Beta-VAE metric은 Beta-VAE 논문 (Higgins et al. 2017)에서 제안된 disentanglement metric이다. 먼저 이 metric을 사용하기 위해서 데이터셋 $\mathcal{D} = \lbrace X, V, W \rbrace$를 가정하자. 이때 $X$는 이미지 데이터, $V$는 conditionally independent factors (즉, disentangle 하고자 하는 특성), $W$는 conditionally dependent factors (즉, entangled 되어 있어도 무방한 특성)이다. 그리고 데이터셋의 데이터 $\mathbf{x}$는 시뮬레이터에 의해 $\mathbf{x} \sim \text{Sim}(\mathbf{v}, \mathbf{w})$로 샘플링된다고 가정한다.

예를 들어 사과 데이터셋 $\mathcal{D}$에서 $v = \left[ \text{color}, \text{size} \right]$, $w = \left[ \text{brightness} \right]$이라고 하자. 이 뜻은 각 데이터 $\mathbf{x}$에는 색, 크기, 밝기 특성이 라벨링되어 있고, 우리가 색, 크기, 밝기 특성을 input으로 넣으면 그에 맞는 데이터 중 하나가 output으로 나오는 시뮬레이터 $\text{Sim}(\mathbf{v}, \mathbf{w})$가 있다는 것이다.

이때 disentanglement metric을 계산하기 위해 평가하고자 하는 특성 $y$를 정한다. 이때 $y$는 특성 $\mathbf{v}$ 중의 일부이다. 그리고 다음 과정을 거친다.

  1. Factor $y \sim \text{Uniform} \left[1, \cdots, K \right]$를 선택한다. 그림에서는 $y = \text{scale}$을 선택했다.
  2. 두 개의 특성 $\mathbf{v}_ {1, l}, \mathbf{v}_ {2, l}$를 선택한다. 이때 두 특성에서 선택된 $y$의 값은 같아야 한다. 즉 $\left[ \mathbf{v}_ {1, l} \right]_ y = \left[ \mathbf{v}_ {2, l} \right]_ y$이다.
  3. 시뮬레이터로부터 이미지 $\mathbf{x}_ {1, l} \sim \text{Sim}(\mathbf{v}_ {1, l})$을 생성하고, encoder를 통해 latent vector $\mathbf{z}_ {1, l} = \mu \left( \mathbf{x}_ {1, l} \right)$을 추출한다. 이때 인코더 $q(\mathbf{z} \mid \mathbf{x}) \sim \mathcal{N}(\mu \left( \mathbf{x} \right), \sigma \left( \mathbf{x} \right))$이다. 이를 $\mathbf{v}_ {2, l}$에 대해 반복한다.
  4. Latent vector의 차이 $\mathbf{z}_ {\text{diff}}^ l = \left\vert \mathbf{z}_ {1, l} - \mathbf{z}_ {2, l} \right\vert$를 계산한다.
  5. 이를 $L$번 반복한 뒤 평균 $\mathbf{z}_ {\text{diff}} ^b = \frac{1}{L} \sum_ {l=1}^L \mathbf{z}_ {\text{diff}} ^l$을 계산한다.
  6. Linear classifier가 $\mathbf{z}_ {\text{diff}} ^b$를 input으로 받아 $p(y \vert \mathbf{z}_ {\text{diff}} ^b)$를 예측하도록 훈련한다.
  7. Linear classifier가 수렴할 때까지 반복하고, classifier의 accuracydisentanglement metric으로 사용한다.

직관적으로도 만약 $\mathbf{z}$가 잘 disentangled되어 있다면 $\mathbf{z}_ {\text{diff}} ^b$에서 $y$와 관련된 성분의 크기는 작고, 나머지 성분의 크기는 클 것이다. 즉 $\left[ \mathbf{z}_ {\text{diff}} ^ b \right]_ y \lt \left[ \mathbf{z}_ {\text{diff}} ^ b \right]_ {\lbrace \backslash y \rbrace}$일 것이므로 classifier가 $y$를 잘 예측할 것이다.

이 과정에서 nonlinear classifier를 사용할 수도 있지만, 이렇게 되면 또 다시 Nonlinear disentangling이 발생할 수 있기 때문에 linear classifier를 사용한다.


5. Summary

이번 장에서는 생성모델의 평가지표에 대해 다뤘다. 생성모델의 평가지표는 크게 densitiy estimation, generation, unsupervised representation learning으로 나눌 수 있다. 각각의 평가지표에 대해 다룬 것들을 정리하면 다음과 같다.

  • Density estimation: true likelihood, annealed importance sampling, kernel density estimation
  • Generation: Inception Score, Frechet Inception Distance, Kernel Inception Distance
  • Unsupervised representation learning: clustering, compression, disentanglement

이외에도 많은 평가지표들이 있으며, 특히 최근 언어모델들의 경우 다른 평가지표들이 개발되어 사용되고 있으므로 이를 참고하는 것을 추천한다.


CS236n 카테고리 내 다른 글 보러가기

댓글 남기기