읽기일기

Computer Vision : models, learning and inference (7) Modeling complex data densities

http://www.computervisionmodels.com/

7. Modeling complex data densities

지난 장에서는 generative model을 이용한 분류기를 살펴보았습니다. 정확히 말하면 관측된 데이터 $\mathbf{x}$로부터 각 값의 상태 $w$를 결정할 수 있는 $Pr(\mathbf{x}|w = k)$를 만들어보았습니다. 이 장에서는 은닉 변수라는 개념을 이용하여 복잡한 확률 밀도 함수를 생성하는 방법을 알아보고자 합니다.

해결하고자 하는 문제로는 얼굴 검출기로 60*60 RGB 이미지를 살펴본 뒤 얼굴인지 아닌지 판단하고자 합니다. 이를 위하여 RGB 값들을 10800*1크기의 벡터 $\mathbf{x}$를 생성하고 얼굴인지 아닌지를 레이블 $w \in \{0, 1\}$로 표현하게 될 것입니다.

7.1 Normal classification model

앞에서와 마찬가지로 generative 접근을 사용하게 될 텐데, 먼저 데이터를 multivariate normal distribution으로 설명해보고자 합니다.

$$Pr(\mathbf{x}|w) = \text{Norm}_\mathbf{x}[\mathbf{\mu}_w, \mathbf{\Sigma}_w]$$

이는 각각의 레이블 0, 1에 대하여 다른 확률 분포를 가진다는 뜻입니다. 이러한 형태를 class conditional density functions이라고 합니다. 이 때 학습의 목표는 파라미터 $\theta = \{ \mathbf{\mu}_0, \mathbf{\Sigma}_0, \mathbf{\mu}_1, \mathbf{\Sigma}_1 \} $를 트레이닝 데이터 $\{\mathbf{x}_i, w_i\}_{i=1}^I$로부터 추정하는 것입니다.

이를 위한 한가지 방법은 이미지에서의 배경(레이블 0), 얼굴(레이블 1) 부분의 영역들을 이용하여 각각에 대해 MLE를 적용하는 것입니다.

inference 알고리즘의 목표는 새로운 얼굴 이미지 $\mathbf{x}$가 들어왔을 때 레이블 w의 값을 할당하는 것입니다. 이를 위해 상태에 대한 확률 $Pr(w) = \text{Bern}_w[\lambda]$과 Baye’s rule을 이용합니다.

$$Pr(w=1|\mathbf{x}) = \frac{Pr(\mathbf{x}|w=1)Pr(w=1)}{\sum_{k=0}^1 Pr(\mathbf{x}|w=k)Pr(w=k)}$$

7.1.1 Deficiencies of the multivariate normal model

아쉽게도 이 모델은 잘작동하지 않습니다. 이 분류기의 성공은 normal distribution이 모델에 잘 피팅되는지에 달려 있는데 실제로 이것이 잘 이루어지지 않습니다. 그 이유는 3가지 정도가 있습니다.

  • Normal distribution이 unimodal이다.
  • Normal distribution이 outlier에 영향을 많이 받는다.
  • Normal distribution이 너무 많은 파라미터를 갖는다.

이를 위해 앞으로 multi-modal 분포를 사용하기 위해 mixture model을 배울 것이며, outlier에 잘 대처하도록 normal대힌 t-distribution을 사용할 것입니다. 높은 파라미터 차원을 줄이기 위해서 subspace 모델 또한 사용하게 될 것입니다.

7.2 Hidden variables

복잡한 확률 분포를 모델링하기 위해서 hidden 또는 latent variable이라 불리는 $\mathbf{h}$를 사용할 것입니다. 이는 이산적일 수도 있고 연속적일 수도 있습니다. hidden variable을 사용하기 위해서 최종 분포 $Pr(\mathbf{x})$$Pr(\mathbf{x}, \mathbf{h})$의 marginalization으로 표현해보겠습니다.

$$Pr(\mathbf{x}) = \int Pr(\mathbf{x}, \mathbf{h}) d\mathbf{h}$$

이제 $Pr(\mathbf{x}, \mathbf{h})$를 단순히 $\mathbf{x}$만 사용되었을 때보다 단순한 모델을 사용할 수 있게 되었습니다.

또는, 모델에 따라 파라미터가 있을 수도 있습니다.

$$Pr(\mathbf{x}|\theta) = \int Pr(\mathbf{x}, \mathbf{h}|\theta) d\mathbf{h}$$

이 파라미터를 찾기 위하여 MLE나 EM알고리즘을 사용할 수 있습니다.

7.3 Expectation Maximization

여기서는 EM 알고리즘을 소개하고자 합니다. EM알고리즘은 파라미터 $\theta$를 피팅하기 위한 도구입니다.

$$\hat{\theta} = \arg \max_\theta [ \sum_{i=1}^I \log [\int Pr(\mathbf{x}_i, \mathbf{h}_i, | \theta) d\mathbf{h}]]$$

EM 알고리즘은 MLE에서 하한 값을 정의하고 반복적으로 이를 증가시켜 나갑니다. 하한 값은 파라미터 $\theta$에 의해서 정의되는 함수이며, 이 방법은 이전 단계보다 더 작은 값을 구할 수 있음을 보증합니다. 이 하한은 또한 hidden variable로 정의되는 분포 $\{ q_i (\mathbf{h}_i )\}_{i=1}^I $들에 의하여 결정됩니다.

t+1번째 E단계에서는 각 분포 $q_i(\mathbf{h}_i)$가 현재 파라미터를 사용하였을 때, posterior distribution $Pr(\mathbf{h}_i | \mathbf{x}_i, \theta) $이 되도록 설정합니다.

$$\hat{q}_i (\mathbf{h}_i) = Pr(\mathbf{h}_i | \mathbf{x}_i, \theta^{[t]}) = \frac{Pr(\mathbf{x}_i | \mathbf{h}_i, \theta^{[t]}) Pr(\mathbf{h}_i | \theta^{[t]})}{Pr(\mathbf{x}_i)}$$

M단계에서는 현재 파라미터에 대하여 하한을 최대화합니다.

$$\hat{\theta}^{[t+1]} = \arg \max_\theta [ \sum_{i=1}^I \int \hat{q}_i (\mathbf{h}_i) \log [ Pr(\mathbf{x}_i, \mathbf{h}_i, | \theta)] d \mathbf{h}_i]$$

각 단계들은 하한을 향상시키는 것을 보장하며 지역 최소값을 찾읏을 수 있음을 보증합니다.

7.4 Mixture of Gaussian

Mixture of Gaussian (MoG)는 EM알고리즘을 공부하기에 딱 맞는 예제입니다. 데이터는 K개의 normal distribution의 가중치 합으로 표현됩니다.

$$Pr(\mathbf{x}|\theta) = \sum_{k=1}^K \lambda_k \text{Norm}_\mathbf{x}[ \mathbf{\mu}_k, \mathbf{\Sigma}_k]$$

$\mathbf{u}$$\mathbf{\Sigma}$는 각 normal distribution의 평균과 covariance이고, $\lambda$는 각 normal distribution의 가중치를 나타냅니다. MoG는 단순한 분포를 통합하여 복잡한 multi-modal 확률 분포를 표현할 수 있습니다.

파라미터 $\theta = \{\mathbf{\mu}_k, \mathbf{\Sigma}_k, \lambda_k \} $ 를 학습하기 위해서는 트레이닝 데이터 $\mathbf{x}_i $에 대해서 MLE를 이용하면 됩니다.

$$\hat{\theta} = \arg \max_\theta [ \sum_{k=1}^K \lambda_k \text{Norm}_\mathbf{x}[ \mathbf{\mu}_k, \mathbf{\Sigma}_k] ]$$

하지만 이전처럼 각 파라미터에 대하여 미분한 뒤 0이 되는 것을 찾는 것은 closed form으로 풀어지지 않습니다. 비선형 최적화 방법을 사용할 수도 있지만, 가중치의 합이 1이 되어야 하거나 covariance가 positive definite이어야 하는 부가적인 제한요소들을 만족시키려면 복잡한 과정을 거쳐야 합니다. 이보다 간단한 방법으로 밀도 함수의 marginalization과 EM알고리즘을 이용하는 방벙을 살펴보겠습니다.

7.4.1 Mixture of Gaussians as a marginalization

MoG 모델은 관측 데이터 $\mathbf{x}$와 hidden variable $h \in \{ 1, \dots, K \}$ 간의 joint distribution으로 생각할 수 있습니다.

만약 이 joint distribution을 다음과 같이 생각해볼 수 있습니다.

$$Pr(\mathbf{x}|h, \theta) = \text{Norm}_\mathbf{x} [ \mathbf{\mu}_h, \mathbf{\Sigma}_h ]$$

$$Pr(h|\theta) = \text{Cat}_h [\lambda ]$$

이러할 때, 원래의 밀도 함수를 계산할 수 있습니다.

$$Pr(\mathbf{x}|\theta) = \sum_{k=1}^K Pr(\mathbf{x}, h=k | \theta)$$

$$= \sum_{k=1}^K Pr(\mathbf{x} | h=k , \theta) Pr(h=k|\theta)$$

$$= \sum_{k=1}^K \lambda_k \text{Norm}_\mathbf{x} [ \mathbf{\mu}_k, \mathbf{\Sigma}_k]$$

이렇게 표현하는 것은 또한 샘플링 방법도 제시할 수 있는데, $Pr(h)$에서 먼저 h를 샘플링한 다음, 이를 이용하여 $Pr(\mathbf{x}|h)$에서 $\mathbf{x}$를 샘플링하면 됩니다.

7.4.2 Expectation maximization for fitting mixture models

이제 EM을 이용하여 MoG의 파라미터를 학습하는 방법을 살펴보겠습니다. EM 알고리즘은 E단계와 M단계로 이루어집니다.

E단계에서는 분포 $q_i(h_i)$의 bound를 최대화하도록 합니다. 이를 위해서 현재 파라미터와 관측값 $\mathbf{x}_i$를 이용하여 각 $Pr(h_i | \mathbf{x}_i)$ 를 찾고자 합니다.

$$q_i(h_i) = Pr(h_i = k | \mathbf{x}_i, \theta^{[t]}) = \frac{\lambda_k \text{Norm}_{\mathbf{x}_i}[\mathbf{\mu}_k, \mathbf{\Sigma}_k] }{\sum_{j=1}^K \lambda_j \text{Norm}_{\mathbf{x}_i}[\mathbf{\mu}_j, \mathbf{\Sigma}_j]} = r_{ik}$$

다시 말하면 k개의 normal distribution에 대하여 i번째 데이터 포인트가 얼마만큼이 지위를 가지는지 계산합니다. 이 지위를 $r$이라고 표시하였습니다.

M단계에서는 파라미터에 대하여 bound를 최대화 합니다.

$$\hat{\theta}^{[t+1]} = \arg \max_\theta [\sum_{i=1}^I \sum_{k=1}^K r_{ik} \log [\lambda_k \text{Norm}_{\mathbf{x}_i}[\mathbf{\mu}_k, \mathbf{\Sigma}_k]]]$$

최대화는 파라미터에 대해서 미분을 한 뒤에 0이 되는 지점을 찾게 됩니다. 대신 $lambda_k$의 합이 1이 되도록 Lagrange multipliers를 사용하여야 합니다. 콤포넌트 k가 데이터 포인트 $\mathbf{x}_i$에 가장 영향을 많이 주고 있다면 이 데이터 포인트는 높은 가중치를 가지게 되고 업데이트 시에 영향을 많이 줄 것입니다.

MoG를 추정할 때 EM 알고리즘은 3가지 특징이 있습니다.

  1. 각 단계에서 다른 최적화 방법없이 closed form으로 계산됩니다.
  2. 계산 결과는 파라미터에 대한 제한 조건을 만족시킵니다.
  3. Missing data를 대응할 수 있습니다. 몇몇 $\mathbf{x}_i$가 없어졌다고 가정하였을 때, E단계에서 나머지 데이터들에 대해서 h에 대한 분포를 세울 수 있고, M단계에서는 관측된 데이터에 대해서만 각 콤포넌트들에 영향을 줄 것입니다.

하지만 몇가지 고려해야할 것이 있는데, 일단 EM알고리즘은 non-convex 최적화 문제에서 global solution을 찾아주지 않는 다는 것입니다. 또한 컴포넌트들의 수를 미리 정의하여야 한다는 점이 있습니다. 마지막으로 하나의 가우시안이 하나의 데이터 포인트와 관계되는 일은 피해야한다는 점입니다. 이렇게 되면 variance가 매우 작아지게 되고 likelihood는 더이상 bound를 증가시킬 수 없게 됩니다.

7.5 t-distribution

Normal distribution을 사용할 때의 다른 문제점은 그것이 그리 강인하지 않다는 것입니다. 이는 끄트머리로 갈 수록 급격하게 떨어지는 확률 분포에서 기인하는데, 아웃라이어들의 영향력을 많이 발휘할 수 있도록 합니다. t-distribution은 이 끄트머리의 길이를 조절할 수 있도록 되어있습니다.

$$Pr(x) = \text{Stud}_\mathbf{x}[ \mu, \sigma^2, \nu ]$$

$$= \frac{\Gamma[\frac{\nu + 1}{2}]}{\sqrt{\nu \pi \sigma^2 \Gamma[\frac{\nu}{2}]}}(1 + \frac{(x-\mu)^2}{\nu \sigma^2})^{-\frac{\nu+1}{2}}$$

$\mu$$\sigma$는 평균과 그 스케일에 관련된 파라미터입니다. $\nu \in (0, \infty] $는 꼬리의 길이를 나타냅니다.

Multivariate t-distribution은 다음과 같이 변화합니다.

$$Pr(x) = \text{Stud}_\mathbf{x}[ \mathbf{\mu}, \mathbf{\Sigma}, \nu ]$$

$$= \frac{\Gamma[\frac{\nu + D}{1}]}{(\nu \pi)^{D/2} |\Sigma|^{1/2} \Gamma[\frac{\nu}{2}]}(1 + \frac{(\mathbf{x}-\mathbf{\mu})^T \Sigma^{-1} (\mathbf{x}-\mathbf{\mu})}{\nu})^{-\frac{\nu+D}{2}}$$

여기서 $D$는 차원의 수입니다.

7.5.1 Student t-distribution as a maginalization

MoG의 hidden variable의 분포로 t-distribution을 사용할 수 있습니다.

$$Pr(h) = \text{Gam}_h [\nu/2, \nu2]$$

이때 $Pr(\mathbf{x}, h)$의 h에 대한 marginalization을 계산하면 아래와 같이 됩니다.

$$Pr(\mathbf{x}) = \int Pr(\mathbf{x}, h) dh = \int Pr(\mathbf{x}|h) Pr(h) dh$$

$$= \int \text{Norm}_x [ \mathbf{\mu}, \mathbf{\Sigma}/h] \text{Gam}_h [\nu /2, \nu/2] dh = \text{Stud}_\mathbf{x} [ \mathbf{\mu}, \mathbf{\Sigma}, \nu]$$

따라서 앞에서와 마찬가지로 h를 gamma distribution에서 샘플링하고 이를 이용하여 $\mathbf{x}$를 추출할 수 있음을 알 수 있습니다.

7.5.2 Expectation maximization for fitting t-distribution

마찬가지로 t-distribution의 파라미터를 학습하기 위해 EM 알고리즘을 사용할 수 있습니다.

E단계에서 최대화 하는 수식은 다음과 같습니다.

$$q_i(h_i) = Pr(h_j| \mathbf{x}_j , \theta^{[t]})$$

$$= \frac{\text{Norm}_{\mathbf{x}_i} [ \mathbf{\mu}, \mathbf{\Sigma}/h_i] \text{Gam}_{h_i} [\nu / 2, \nu / 2]} {Pr(\mathbf{x}_i)}$$

$$= \text{Gam}_{h_i} [ \frac{\nu + D}{2}, \frac{(\mathbf{x}-\mathbf{\mu})^T \Sigma^{-1} (\mathbf{x}-\mathbf{\mu})}{2} + \frac{\nu}{2}]$$

이 수식의 log Expectation을 계산하면 다음과 같습니다.

$$E[\log[h_i]] = \Psi[\frac{\nu+D}{2}] - \log [\frac{\nu + (\mathbf{x}_i - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x}_i - \mathbf{\mu})}{2}]$$

$\Psi$는 digamma 함수입니다.

M단계에서의 수식은 아래와 같습니다.

$$\hat{\theta}^{[t+1]} = \arg \max_\theta [\sum_{i=1}^I E [ \log [Pr(\mathbf{x}_i | h_i, \theta)]] + E [ \log [ Pr(h_i)]] ]$$

$$E[ \log[ Pr(\mathbf{x}_i | h_i, \theta)]] = \frac{DE[\log h_i] - D \log 2 \pi - \log | \mathbf{\Sigma}| - (\mathbf{x}_i - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x}_i - \mathbf{\mu}) E[h_i]}{2}$$

$$E[\log[Pr(h_i)]] = \frac{\nu}{2} \log [ \frac{\nu}{2}] - \log \Gamma[\frac{\nu}{2}] + (\frac{\nu}{2} - 1)E[\log h_i] - \frac{\nu}{2} E[h_i]$$

결론을 이야기 하자면, 단 하나의 파라미터를 추가하는 것만으로 multivariate t-distribution은 아웃라이어를 더욱 잘 설명할 수 있습니다. 하지만 MLE로는 closed form이 없기 때문에 $\nu$를 추정하기 위하여 EM과 같은 더 복잡한 알고리즘을 이용하여야만 합니다.

7.6 Factor analysis

이제 normal distribution을 사용할 때의 마지막 문제를 이야기하겠습니다. 이미지 데이터는 종종 높은 차원을 갖습니다. 예를 들어 60 * 60 크기의 RGB이미지의 경우에는 10800차원의 데이터를 가지게 됩니다. 이러한 데이터를 직접 multivariate normal distribution으로 모델링하면 covariance는 심지어 10800 * 10800의 행렬이 되어버리고 맙니다. 이는 엄청난 메모리가 필요하게 됨을 의미합니다.

이를 단순화하여 대각 성분만을 사용한다면, 이것은 각 차원의 변수간 종속성이 없다고 가정하는 것과 같습니다. 하지만 실제로 인접하는 픽셀들은 매우 깊은 연관이 잇습니다. 좋은 모델은 이러한 정보를 활용할 수 있어야 합니다.

Factor analysis는 모든 차원을 사용하는 것보다 적은 파라미터만으로도 covariance를 구조화하는 방법을 제공합니다. 한가지 방법은 전체 모델에서 일부는 높은 차원으로 직접 표현하고 나머지 부분은 diagonal model을 이용하여 표현하는 것입니다.

확률 밀도 함수의 factor analysis는 다음과 같습니다.

$$Pr(\mathbf{x}) = \text{Norm}_\mathbf{x} [ \mathbf{\mu}, \mathbf{\Phi\Phi}^T + \mathbf{\Sigma}]$$

첫번째 항 $\mathbf{\Phi\Phi}^T$은 sub space에서의 covariance를 나타냅니다. $\mathbf{\Phi} $의 각 컬런을 factor라고 부르고 이는 곧 subspace를 나타내는 basis vector입니다. 두번째 항 $\mathbf{\Sigma}$는 diagonal 행렬로 나머지 변경된 부분을 나타냅니다. 이러한 표현법은 첫번째 항을 나타내는 K개의 컬럼과 D개의 diagonal 파라미터로 구성되는데, 만약 K를 D보다 적게 사용할 수 있다면 메모리를 적게 사용할 수 있게 됩니다.

$\mathbf{\Sigma}$가 identity matrix와 상수의 곱으로 표현할 수 있다면 probabilistic principal component analysis가 됩니다.

7.6.1 Factor analysis as a marginalization

MoG와 t-distribution을 사용하는 예제에서 joint distribution의 marginalization에 factor analysis 모델을 사용할 수 있습니다. 두 확률 분포를 아래와 같이 정의한다면,

$$Pr(\mathbf{x}|\mathbf{h}) = \text{Norm}_\mathbf{x}[\mathbf{\mu} + \mathbf{\Phi h}, \mathbf{\Sigma}]$$

$$Pr(\mathbf{h}) = \text{Norm}_\mathbf{h} [0, \mathbf{I}]$$

Marginalization은 아래와 같이 factor anylsis의 수식과 동일하게 됩니다.

$$Pr(\mathbf{x}) = \int Pr(\mathbf{x}|\mathbf{h}) Pr(\mathbf{h}) d\mathbf{h}$$

$$= \text{Norm}_\mathbf{x} [ \mathbf{\mu}, \mathbf{\Phi \Phi}^T + \mathbf{\Sigma}]$$

이것은 hidden variable $\mathbf{h}$의 각 요소가 그에 해당하는 basis function에 가중치를 부여한다고도 해석할 수 있습니다.

7.6.2 Expectation maximization for learning factor analyzers

EM알고리즘에서도 마찬가지로 factor analyze를 사용할 수 있습니다.

각 단계의 수식은 생략하도록 하겠습니다.

결론만 이야기 하자면, factor analyzer는 covariance가 높은 차원일 때 효과적으로 모델링을 가능하게 하는데, 데이터의 전반적인 방향을 파라미터 $\mathbf{\Phi}$로 표현한 뒤, 나머지 부분들을 $\mathbf{\Sigma}$로 표현하게 됩니다.

7.7 Combining models

MoG, t-distribution, factor analysis 모델은 비슷한 방법을 사용하고 있습니다. 바로 normal distribution을 가중치 합을 하거나 적분하여 사용한다는 것입니다.

이러한 유사성에서 볼 때, 이들 간의 모델 또한 통합할 수 있음을 생각할 수 있습니다. Mixture model과 factor analysis를 합치면 mixture of factor analyzers (MoFA) 모델이 됩니다. 이것은 factor analyzer를 가중치 합을 한 것입니다.

비슷하게는 mixture model가 t-distribution을 합쳐 mixture of t-distribution, 혹은 robust mixture 모델이라고 부릅니다. t-distribution과 factor analyzers를 합치면 robust subspace 모델이라 부릅니다.

세가지 모델을 모두 합치면 mixture of robust subspace 모델이 됩니다.

$$Pr(\mathbf{x}) = \sum_{i=1}^K \lambda_k \text{Stud}_\mathbf{x} [ \mathbf{\mu}_k , \mathbf{\Phi}_k \mathbf{\Phi}_k^T + \mathbf{\Sigma}_k, \nu_k ]$$

7.8 Expectation maximization in detail

생략하도록 하겠습니다.

7.9 Applications

7.9.1 Face detection

얼굴 인식에서는 decrete label $w\in \{ 0, 1 \}$을 유추하게 될텐데 각 값은 관측 값 $\mathbf{x}$에 얼굴이 있는지 없는지를 가리킵니다.

MoG 모델을 사용하여 각 상태에 대하여 likelihood를 계산합니다.

$$Pr(\mathbf{x}|w = m) = \sum_{k=1}^K \lambda_{mk} \text{Norm}_\mathbf{x} [ \mathbf{\mu}_{km}, \mathbf{\Sigma}_{km}]$$

여기서 m은 상태 값을 나타내고, k는 mixture의 각 콤포넌트를 의미합니다. 여기서는 prior에 대한 정보를 알 수 없기 때문에 $Pr(w=0) = Pr(w=1) = 0.5$로 각각 설정하였습니다. 주어진 레이블을 가지는 데이터에 대해 각각의 레이블의 모델 파라미터를 계산할 수 있습니다.

그리고 새로운 데이터 $\mathbf{x}^*$가 주어지면, Bayes’ rule에 의하여 얼굴이 존재하는지에 대한 확률을 계산할 수 있습니다.

$$Pr(w^* = 1 | \mathbf{x}^*) = \frac{ Pr(\mathbf{x}^* | w^* = 1) Pr(w^* = 1)}{\sum^1_{k=0} Pr(\mathbf{x}^* | w^* = k) Pr(w^* = k) }$$

실험 후 몇가지 결과를 도출 할 수 있었습니다.

  1. MoG는 하나의 Gaussian을 사용할 때보다 항상 좋은 결과를 가져온다.
  2. Preprocessing는 최종 결과물에 큰 영향을 미친다.

7.9.2 Object recognition

물체 인식의 목표는 물체를 M개의 카테고리 중 하나를 고르는 것입니다. 다시 말하면 관측 값 $\mathbf{x}$가 주어지면 카테고리에 대한 확률 값 $w_i \in \{ 1, \dots, M \} $ 을 계산하는 것입니다. 이를 위해 이미지를 10 * 10 픽셀 크기로 잘게 쪼갠 뒤, 각 $j$번째 영역을 100 * 1 크기의 벡터 $\mathbf{x}_{ij}$ 로 만들었습니다. 각각의 영역은 별개로 취급하여 처리하도록 하였습니다.

각 영역은 t-distribution을 사용하여 모델링하였습니다.

$$Pr(\mathbf{x}_i | w = m ) = \prod_{j=1}^J \text{Stud}_{\mathbf{x}_{ij}} [ \mathbf{\mu}_{jm}, \mathbf{\Sigma}_{jm}, \nu_{jm}]$$

마찬가지로 각 카테고리에 대한 prior는 동등하도록 사용하였고, posterior는 Bayes’ rule을 사용하여 계산하였습니다.

7.9.3 Segmentation

세그멘테이션은 이미지 내의 N개의 각 픽셀에 대하여 K개 중 하나의 레이블 $w_n \in \{ 1, \dots, K \}$을 가지도록 할다아는 것입니다. 그래서 같은 객체는 같은 레이블을 갖도록 합니다. N개의 픽셀들은 하나의 벡터로 표현하고 각 픽셀은 RGB 값을 가집니다.

이 문제는 사실 unsupervised learning인데, 트레이닝 데이터가 없기 때문입니다. 따라서 주어진 데이터 벡터를 이용하여 파라미터를 추정해야만 합니다.

k번째 객체의 각 픽셀 $\mathbf{x}_i$는 normal distribution을 가진다고 해 봅시다.

$$Pr(w_n) = \text{Cat}_{w_n} [ \lambda]$$

$$Pr(\mathbf{x}_i | w_i = k) = \text{Norm}_{mathbf{x}_i} [ \mathbf{\mu}_k, \mathbf{\Sigma}_k ]$$

상태에 대하여 marginalization을 수행하여 봅니다.

$$Pr(\mathbf{x}_{1, \dots, N}) = \prod_{n=1}^N \sum_{k=1}^K \lambda_k \text{Norm}_{\mathbf{x}_n} [ \mathbf{\mu}_k, \mathbf{\Sigma}_k ]$$

파라미터를 찾기 위해 EM 알고리즘을 사용하였습니다. 최종적으로 레이블은 가장 높은 확률을 갖는 레이블로 결정합니다.

$$\hat{w}_i = \arg \max_{w_i} = [ Pr(w_i | \mathbf{x}_i )]$$

7.9.4 Frontal face recognition

이 문제는 데이터 벡터 $\mathbf{x}$에 대하여 어떤 사람인지 의미하는 M개의 레이블 중 하나를 할당하는 것입니다. 이 문제는 레이블링 된 트레이닝 데이터가 제공되는데, 이미지는 grayscale로 50 * 50 크기의 픽셀을 벡터로 만든 것을 사용합니다.

데이터 벡터의 크기가 크기 때문에 factor analyzer를 사용하도록 합니다.

$$Pr(\mathbf{x}_i | w_i = k ) = \text{Norm}_{\mathbf{x}_i} [ \mathbf{\mu}_k, \mathbf{\Phi}_k \mathbf{\Phi}_k^T + \mathbf{\Sigma}_k ]$$

각 사람의 얼굴에 대한 파라미터를 찾기 위하여 EM 알고리즘을 사용합니다. 역시 각 사람에 대한 prior는 동등하다고 가정합니다. 인식을 위하여는 마찬가지로 Bayes’ rule을 사용하였습니다.

7.9.5 Changing face pose (regression)

얼굴의 자세 변경을 처리하기 위하여 이전 자세의 얼굴 $\mathbf{x}$로부터 새로운 자세의 RGB 값 $\mathbf{w}$를 예상하고자 합니다. 예전에 다뤘던 것과는 다르게 예측하고자 하는 값 $\mathbf{w}$는 연속적인 다변수 값입니다.

학습을 위하여 두 자세에 대한 값을 합친 새로운 변수를 만들어냅시다.

$$\mathbf{z} = [ \mathbf{x}^T \mathbf{w}^T ]$$

$$Pr(\mathbf{z}) = Pr(\mathbf{x}, \mathbf{w})$$

이제 factor analyzer를 사용합니다.

$$Pr(\mathbf{x}, \mathbf{w}) = Pr(\mathbf{z}) = \text{Norm}_\mathbf{z} [ \mathbf{\mu}, \mathbf{\Phi}\mathbf{\Phi}^T + \mathbf{\Sigma}]$$

새로 주어진 $\mathbf{x}^*$에 대한 정면에 아닌 얼굴 $\mathbf{w}^*$을 찾기 위해 $\mathbf{w}^*$의 posterior는 조건부 확률 $Pr(\mathbf{w}|\mathbf{x})$로 생각할 수 있습니다.

$$\mathbf{\mu} = \begin{bmatrix} \mathbf{\mu}_\mathbf{x} \\ \mathbf{\mu}_\mathbf{w} \end{bmatrix}, \mathbf{\Phi \Phi}^T + \mathbf{\Sigma} = \begin{bmatrix} \mathbf{\Phi_x \Phi_x}^T + \mathbf{\Sigma_x} &\ \mathbf{\Phi_x \Phi_w}^T \\ \mathbf{\Phi_w \Phi_x}^T &\ \mathbf{\Phi_w \Phi_w}^T + \mathbf{\Sigma_w} \end{bmatrix}$$

$$Pr(\mathbf{w}^* | \mathbf{x}^* ) = \text{Norm}_{\mathbf{w}^*} [ \mathbf{\mu_w} + \mathbf{\Phi_w \Phi_x}^T (\mathbf{\Phi_x \Phi_x}^T + \mathbf{\Sigma_x})^{-1}(\mathbf{x}^* - \mathbf{\mu_x}), \mathbf{\Phi_w \Phi_w}^T + \mathbf{\Sigma_w} - \mathbf{\Phi_w \Phi_x}^T ( \mathbf{\Phi_x \Phi_x}^T + \mathbf{\Sigma_x})^{-1}\mathbf{\Phi_x \Phi_w}^T ]$$

이제 $\mathbf{w}^*$에 대한 파라미터를 학습할 수 있습니다.

7.9.6 Transformations as hidden variables

숫자 이미지이지만 제대로 정렬되지 않은 상태의 이미지의 확률 밀도를 계산하는 문제를 생각해봅시다.

단순히 normal distribution을 만드는 것은 정렬이 안 된 탓에 제대로 표현하지 못하는 아주 안 좋은 모델이 되어버립니다. 여기에서는 정렬된 이미지 $\mathbf{x}'$를 표현하도록 normal distribution을 이용한 generative model을 만든 다음, 이를 K개의 가능한 변환을 중 하나로 변환하는 경우를 가정하여 정렬이 안된 상황을 해결하고자 합니다.

$$Pr(\mathbf{x}') = \text{Norm}_{\mathbf{x}'} [ \mathbf{\mu}, \mathbf{\Sigma}]$$

$$Pr(h) = \text{Cat}_h [\lambda]$$

$$\mathbf{x} = \text{trans}_h [ \mathbf{x}' ]$$

여기서 h는 hidden variable로 K개 중 하나의 변환을 나타냅니다.

EM알고리즘을 이용하여 학습이 가능합니다. E단계에서는 각 샘플에 대하여 역변환을 통해 각 hidden variable에 대한 $Pr(h_i | \mathbf{x}_i)$를 계산합니다 그리고 현재 파라미터 $\mathbf{\mu}, \mathbf{\Sigma}$에 대하여 얼마나 들어맞는지 계산합니다. M단계에서는 역변환된 이미지들의 가중치 합을 이용하여 파라미터를 업데이트합니다.


Add a Comment Trackback