21. Variational inference

21.1. Introduction

앞 장에서는 사후분포를 계산하는 여러 방법을 알아보았다. 이산 그래프 모델에 대해서는 접합 트리 알고리즘으로 정확한 추론을 할 수 있으나 그래프의 트리 두께에 대해 지수 시간이 든다. 게다가, 결합 가우시안 분포가 아닌 한 연속 확률변수에 대해서는 적용할 수도 없다.

하지만 그래프가 \mathbf{x} \to \mathcal{D}의 형태라면 더 일반적인 분포에 대해서도 정확한 추론이 가능하다. 사전분포 p(\mathbf{x})가 가능도 p(\mathcal{D} | \mathbf{x})에 켤레분포이면 정확한 사후분포를 구할 수 있다. 사전분포가 켤레분포가 아니라면 가우시안 근사 등의 방법을 쓸 수 있다. 하지만, 가우시안 분포로 근사하는 것이 적합하지 않은 사후분포도 있다. 이런 경우를 다루기 위해서 변분 추론에 기반한 결정적 근사 추론 알고리즘을 알아볼 수 있다. 기본 발상은 계산 가능한 함수족에서 근사 q(\mathbf{x})을 선택한 뒤 참 사후분포 p^{\ast}(\mathbf{x}) = p(\mathbf{x} | \mathcal{D})와의 KL 분산을 최소화시켜서 근사를 하는 것이다. 이는 추론을 최적화 문제로 변형시킨다. 이는 속도를 위해 정확도를 희생한 것이라 볼 수 있다.

21.2. Variational inference

p^{\ast}(\mathbf{x})가 계산 불가능한 참 분포, q(\mathbf{x})가 계산 가능한 근사라 하자. q에 있는 자유 매개변수를 최적화해 p^{\ast}와 가장 비슷하게 만들고 싶다. 자연스러운 접근은 다음의 KL 발산 \mathbb{KL}(p^{\ast} \vert \vert q) = \sum_{\mathbf{x}} p^{\ast}(\mathbf{x}) \log \frac{p^{\ast}(\mathbf{x})}{q(\mathbf{x})}을 최소화하는 것이지만, p^{\ast}는 계산이 불가능하므로 역 KL 분산 \mathbb{KL}(q \vert \vert p^{\ast}) = \sum_{\mathbf{x}} q(\mathbf{x}) \log \frac{q(\mathbf{x})}{p^{\ast}(\mathbf{x})}를 대신 사용한다.

사실 역 KL 발산도 계산 가능하지 않다. p^{\ast}(\mathbf{x})를 각각 계산하려면 표준화 상수 Z = p(\mathcal{D})를 계산해야 하는데 이것은 불가능하기 때문이다. 하지만 비표준 분포 \tilde{p}(\mathbf{x}) = p(\mathbf{x}, \mathcal{D}) = p^{\ast}(\mathbf{x})Z는 대개 계산 가능하므로, 새로운 목적 함수 J(q) = \mathbb{KL}(q \vert \vert \tilde{p}) = \mathbb{KL}(q \vert \vert p^{\ast}) - \log Z을 정의해 최소화할 수 있다. Z는 상수이므로, J(q)를 최소화하는 것만으로 충분해진다.

KL 발산은 항상 음이 아니므로, J(q) =\mathbb{KL}(q \vert \vert p^{\ast}) - \log Z \geq -\log p(\mathcal{D}) 는 음의 로그가능도에 대한 상한이 된다. 부호를 뒤집으면 로그 가능도의 하한인 에너지 함수를 최대화하는 것이 된다. q = p^{\ast}이면 부등호가 등호가 되므로, 변분 추론은 기대값 최대화와 밀접한 연관이 있다.

21.2.1. Alternative interpretations of the variational objective

위의 목적 함수는 다음과 같이도 쓸 수 있다.

J(q) = -\mathbb{H}(q) + \mathbb{E}_{q} [E(\mathbf{x})]

이는 기대 에너지에서 엔트로피를 뺀 것이다. 통계물리학에서 이는 변분 자유 에너지 또는 헬름홀츠 자유 에너지라 불린다. 또는 다음과 같이도 쓸 수 있다.

J(q) = \mathbb{E}_{q} [-\log p(\mathcal{D} | \mathbf{x})] + \mathbb{KL}(q(\mathbf{x}) \vert \vert p(\mathbf{x}))

이는 기대 음의 로그 가능도에다, 근사 사후분포가 사전분포와 얼마나 유사한지에 대한 징벌항을 더한 것이다.

21.2.2. Forward or reverse KL?

KL 발산은 대칭적이지 않다. 즉, \mathbb{KL}(q \vert \vert p)를 최소화하는 것이랑 \mathbb{KL}(p \vert \vert q)를 최소화하는 것은 다르다.

먼저 역 KL \mathbb{KL}(q \vert \vert p), 즉 I-사영, 정보 사영을 최소화시킬 때, p(\mathbf{x}) = 0이면 반드시 q(\mathbf{x}) = 0이어야 한다. 즉, 역 KL은 q에 대한 0 강제라고 할 수 있다. 따라서 q의 지지집합은 p의 지지집합보다 작아진다.

정 KL \mathbb{KL}(p \vert \vert q), 즉 M-사영, 모멘트 사영을 최소화시킬 때, p(\mathbf{x}) > 0이면 반드시 q(\mathbf{x}) > 0이어야 한다. 즉, 정 KL은 q에 대한 0 회피라고 할 수 있다. 따라서 q의 지지집합은 p의 지지집합보다 커진다.

예를 들어 최빈값이 여러 개인 분포에서는 정방향 KL은 좋은 생각이 아니다. 이 때는 역방향 KL이 계산하기에도 더 좋고 통계적으로도 실용적이다. 이 장에서는 주로 역방향 KL을 다룬다.

최빈값이 2개인 분포에 대한 정방향 vs 역방향 KL.
대칭적 가우시안에 대한 정방향 vs 역방향 KL.

\alpha로 매개화되는 다음의 알파 발산 D_{\alpha}(p \vert \vert q) = \frac{4}{1 - \alpha^{2}} (1 - \int p(x)^{\frac{1 + \alpha}{2}} q(x)^{\frac{1 - \alpha}{2}} dx)을 정의할 수 있다. 이것이 0인 것은 p = q인 것과 동치이다. 하지만 대칭이 아니기 때문에 거리함수는 아니다. \mathbb{KL}(p \vert \vert q)\alpha \to 1일 때의 극한과 대응되고 \mathbb{KL}(q \vert \vert p)\alpha \to -1일 때의 극한과 대응된다. \alpha = 0이면 다음의 헬링거 거리 D_{H}(p \vert \vert q) = \int (p(x)^{\frac{1}{2}} - q(x)^{\frac{1}{2}} )^{2} dx와 선형으로 관계된 대칭적 발산 함수를 얻는다. 헬링거 거리의 루트는 거리함수이다.

21.3. The mean field method

변분 추론의 가장 유명한 형태는 평균 장 근사이다. 여기선 사후분포가 완전히 인수분해되는 근사 q(\mathbf{x}) = \prod_{i=1}^{D} q_{i}(\mathbf{x}_{i})의 꼴인 것으로 가정한다. 목표는 최적화 문제 \min_{q_{1}, \cdots, q_{D}} \mathbb{KL} (q \vert \vert p)를 푸는 것이다. 이를 위해서는 각 단계마다 \log q_{j}(\mathbf{x}_{j}) = \mathbb{E}_{-q_{j}} [\log \tilde{p}(\mathbf{x})] + \mathrm{const}의 업데이트를 수행한다. 즉, 비표준화 사후분포를 x_{j}를 제외한 모든 변수에 대해서 기대값을 계산한 것을 대입한다.

q_{j}를 업데이트할 때에는 x_{j}와 인자를 공유하는 변수, 즉 마르코프 담요에 속한 변수들만 신경쓰면 된다. 이는 깁스 샘플링과 비슷하지만, 인접 노드에 샘플링한 값을 전송하는 대신에 노드간의 평균값을 전송한다는 것이 다르다.

물론, 한 번에 한 분포를 업데이트하는 것은 느릴 수 있지만, 속도를 높이는 여러 접근법이 존재한다. 평균 장 방법은 이산 잠재변량과 연속 잠재변량을 추론하는 데 있어 모두 사용할 수 있다는 것을 유념할 필요가 있다.

21.3.1. Derivation of the mean field approximation

변분 추론의 목표는 상한 J(q) \geq -\log p(\mathcal{D})를 최소화, 또는 하한 L(q) = -J(q) \leq \log p(\mathcal{D})를 최대화하는 것이다.

목적 함수 중 q_{j}에 관련된 항에만 신경을 쓴다면 다음의 형태를 얻는다.

L(q_{j}) = \sum_{\mathbf{x}} \prod_{i} q_{i}(\mathbf{x}_{i}) [\log \tilde{p}(\mathbf{x}) - \sum_{k} \log q_{k}(\mathbf{x}_{k})] = \sum_{\mathbf{x}_{j}} q_{j}(\mathbf{x}_{j}) \mathbb{E}_{-q_{j}} [\log \tilde{p}(\mathbf{x})] - \sum_{\mathbf{x}_{j}} q_{j}(\mathbf{x}_{j}) \log q_{j} (\mathbf{x}_{j}) + \mathrm{const}

이 때 \log f_{j} (\mathbf{x}_{j}) = \mathbb{E}_{-q_{j}} [\log \tilde{p}(\mathbf{x})]로 잡으면 L(q_{j}) = -\mathbb{KL}(q_{j} \vert \vert f_{j}) + \mathrm{const}로 다시 쓸 수 있다. 이를 최대화하는 것은 앞쪽의 KL 발산을 최소화하는 것과 같은데, 이것은 q_{j} = f_{j}일 때 가능하므로, q_{j} = \frac{1}{Z_{j}} e^{\mathbb{E}_{-q_{j}} [\log \tilde{p}(\mathbf{x})]}로 잡으면 된다. q_{j}는 항상 표준화된 분포이므로 표준화 상수를 무시하면 \log q_{j}(\mathbf{x}_{j}) = \mathbb{E}_{-q_{j}} [\log \tilde{p}(\mathbf{x})] + \mathrm{const}를 얻는다. 즉 q_{j} 분포의 형태가 \mathbf{x}_{j}의 변수의 형태에 의존하게 되는 것이며, 이러한 형태를 자유형 최적화라 부른다. x_{j}가 이산확률변수이면 q_{j}는 이산적 분포가 되고 \mathbf{x}_{j}가 연속확률변수이면 q_{j}는 확률밀도함수의 이롱이 된다.

21.3.2. Example: mean field for the Ising model

이미지 노이즈 제거의 예를 보자. 이미지 참값의 은닉 픽셀 값이 이진 변수 x_{i} \in \{1, -1\}이고 결합 모델은 p(\mathbf{x}, \mathbf{y}) = p(\mathbf{x}) p(\mathbf{y} | \mathbf{x}), 사전분포는 아이싱 모델 p(\mathbf{x}) = \frac{1}{Z_{0}} e^{-E_{0}(\mathbf{x})}, E_{0}(\mathbf{x}) = -\sum_{i=1}^{D} \sum_{j \in \mathrm{nbr}(i)} W_{ij} x_{i} x_{j}, 가능도는 p(\mathbf{y} | \mathbf{x}) = e^{\sum_{i} -L_{i}(x_{i})}이라 하면 사후분포는 p(\mathbf{x} | \mathbf{y}) = \frac{1}{Z} e^{-E(\mathbf{x})}, E(\mathbf{x}) = E_{0}(\mathbf{x}) - \sum_{i} L_{i}(x_{i})의 형태가 된다.

이를 완전히 인수분해되는 근사 q(\mathbf{x}) = \prod_{i} q(x_{i}, \mu_{i})를 사용할 때 (\mu_{i}는 노드 i의 평균), 우선 \log \tilde{p}(\mathbf{x}) = -E(\mathbf{x}) = x_{i} \sum_{j \in \mathrm{nbr}(i)} W_{ij}x_{j} + L_{i}(x_{i}) + \mathrm{const}로 쓸 수 있으므로, \prod_{j \neq i} q_{j}(x_{j})에 대해 기대값을 취하면 q_{i}(x_{i}) \propto e^{x_{i} \sum_{j \in \mathrm{nbr}(i)} W_{ij}x_{j} + L_{i}(x_{i})}을 얻게 된다. 즉, 인접 노드의 상태를 그들의 평균값으로 치환하는 것이다. 노드 i에 대한 평균 장 영향력을 m_{i} =  \sum_{j \in \mathrm{nbr}(i)} W_{ij}x_{j}로 정의하면 a_{i} = m_{i} + \frac{1}{2}(L_{i}(+1) - L_{i}(-1))로 정의할 때 q_{i}(x_{i} = 1) = \mathrm{sigm}(2a_{i}), q_{i}(x_{i} = -1) = \mathrm{sigm}(-2a_{i})를 얻는다. 이를 이용하면 \mu_{i} = \mathrm{tanh}(a_{i})가 되므로, 업데이트 공식은 \mu_{i} = \mathrm{tanh}(\sum_{j \in \mathrm{nbr}(i)} W_{ij}\mu_{j} + \frac{1}{2}(L_{i}(+1) - L_{i}(-1)))이 된다.

깁스 샘플링 vs 평균 장 법을 이용한 이미지 노이즈 제거.

적절한 0 < \lambda < 1에 대해 감쇠 업데이트 \mu_{i, t} = (1-\lambda) \mu_{i, t -1} + \lambda \mathrm{tanh}(\sum_{j \in \mathrm{nbr}(i)} W_{ij}\mu_{j, t - 1} + \frac{1}{2}(L_{i}(+1) - L_{i}(-1)))을 사용하는 것이 보통 더 낫다. 모든 노드를 병렬로 또는 비동기적으로 업데이트할 수 있다.

21.4. Structured mean field

사후분포의 모든 변수가 상호 독립이라고 가정하는 것은 대단히 강력한 가정이기 때문에 좋지 않은 결과를 내기 쉽다. 이를 보완하기 위해 계산 가능한 부분 구조를 이용해 의존성을 다룰 수 있다. 이를 구조화된 평균 장 접근법이라 한다. 이는 평균 장 접근법과 같지만 변수의 집합을 그룹화한 뒤 이들을 동시에 업데이트한다. 각각의 q_{i}에 대해 적절한 추론을 하면 이 방법은 계산 가능하다.

21.4.1. Example: factorial HMM

인자 은닉 마르코프 모델에서 길이 T인 연쇄 M개의 각각의 노드가 상태 K개를 갖는다고 가정해 보자. 그러면 모델은 다음과 같이 정의된다.

p(\mathbf{x}, \mathbf{y}) = \prod_{m} \prod_{t} p(x_{t, m} | x_{t-1, m}) p(\mathbf{y}_{t} | x_{tm})

이 때 p(x_{t, m} = k | x_{t - 1, m} = j) = A_{mjk}은 연쇄 m의 전이 행렬의 성분, p(x_{1, m} = k | x_{0, m}) = p(x_{1, m} = k) = \pi_{mk}은 연쇄 m의 초기 상태 분포, p(\mathbf{y}_{t} | \mathbf{x}_{t} ) = \mathcal{N}(\mathbf{y}_{t} | \sum_{m=1}^{M} \mathbf{W}_{m} \mathbf{x}_{tm}, \mathbf{\Sigma})은 관측 모델이다. 각 연쇄들은 사전독립이지만, 관측된 변수 \mathbf{y}_{t}를 공통된 자식으로 가지므로 사후분포에서는 연관되게 된다. 접합 트리 알고리즘을 적용하면 O(TMK^{M+1}) 시간이 걸리는데, 구조화 평균 장 알고리즘은 O(TMK^{2} I) 시간이 걸린다. I는 반복 횟수인데, 보통 10회 정도면 충분하다.

이 때 정확한 사후분포는 다음과 같다.

p(\mathbf{x} | \mathbf{y}) = \frac{1}{Z} e^{-E(\mathbf{x}, \mathbf{y})}

E(\mathbf{x}, \mathbf{y}) = \frac{1}{2} \sum_{t=1}^{T} (\mathbf{y}_{t} - \sum_{m} \mathbf{W}_{m} \mathbf{x}_{tm})^{T} \mathbf{\Sigma}^{-1} (\mathbf{y}_{t} - \sum_{m} \mathbf{W}_{m} \mathbf{x}_{tm}) - \sum_{m} \mathbf{x}_{1m}^{T} \tilde{\mathbf{\pi}}_{m} - \sum_{t=2}^{T} \sum_{m} \mathbf{x}_{tm}^{T} \tilde{\mathbf{A}}_{m} \mathbf{x}_{t-1, m}

\tilde{\mathbf{A}}_{m} = \log \mathbf{A}_{m}, \tilde{\mathbf{\pi}}_{m} = \log \mathbf{\pi}_{m}

이를 주변분포의 곱으로 근사할 수도 있으나, 연쇄의 곱으로 근사하는 것이 더 낫다. 각각의 연쇄는 전방-후방 알고리즘을 통해 계산 가능한 방식으로 업데이트할 수 있기 때문이다. 정확히는, 다음을 가정한다.

q(\mathbf{x} | \mathbf{y}) = \frac{1}{Z_{q}} \prod_{m=1}^{M} q(x_{1m} | \mathbf{\zeta}_{1m}) \prod_{t=2}^{T} q(x_{tm} | x_{t-1, m}, \mathbf{\zeta}_{tm})

q(x_{1m} | \mathbf{\zeta}_{1m}) = \prod_{k=1}^{K} (\zeta_{1mk} \pi_{mk})^{x_{1mk}}

q(x_{tm} | x_{t-1, m}, \mathbf{\zeta}_{tm}) = \prod_{k=1}^{K} (\zeta_{tmk} \prod_{j=1}^{K} (A_{mjk})^{x_{t-1, m, j}})^{x_{tmk}}

이 경우 근사 사후분포를 다음과 같이 쓸 수 있다.

q(\mathbf{x}) = \frac{1}{Z_{q}} e^{-E_{q}(\mathbf{x})}

E_{q}(\mathbf{x}) = -\sum_{t=1}^{T} \sum_{m=1}^{M} \mathbf{x}_{tm}^{T} \tilde{\mathbf{\zeta}}_{tm} - \sum_{m=1}^{M} \mathbf{x}_{1m}^{T} \tilde{\mathbf{\pi}}_{m} - \sum_{t=2}^{T} \sum_{m=1}^{M} \mathbf{x}_{tm}^{T} \tilde{\mathbf{A}}_{m} \mathbf{x}_{t-1, m}

\tilde{\mathbf{\zeta}}_{tm} = \log \mathbf{\zeta}_{tm}

이는 정확한 사후분포와 국소적 증거치 항에서만 차이를 가진다. 목적 함수는 \mathbb{KL}(q \vert \vert p) = \mathbb{E}[E] - \mathbb{E}[E_{q}] - \log Z_{q} + \log Z이 된다. 이 때 업데이트는 다음과 같이 이루어진다.

\mathbf{\zeta}_{tm} = e^{\mathbf{W}_{m} \mathbf{\Sigma}^{-1} \tilde{y}_{tm} - \frac{1}{2} \mathbf{\delta}_{m}}

\mathbf{\delta}_{m} = \mathrm{diag}(\mathbf{W}_{m}^{T} \mathbf{\Sigma}^{-1} \mathbf{W}_{m})

\tilde{y}_{tm} = \mathbf{y}_{t} - \sum_{l \neq m}^{M} \mathbf{W}_{l} \mathbb{E}[\mathbf{x}_{t, l}]

\mathbf{\zeta}_{tm} 변수는 인접한 연쇄간 평균을 내어 국소적 증거도의 역할을 한다. 이들을 계산한 뒤에 전방-후방 알고리즘을 병렬로 돌리고, 이를 위해 각각의 m과 t에 대해 q(\mathbf{x}_{t, m} | \mathbf{y}_{1 : T})을 계산한다. 전체 업데이트에 대한 시간복잡도는 O(TMK^{2})이 되는데, 이는 완전히 인수분해된 근사와 같은 시간복잡도를 갖지만 정확도는 훨씬 높다.

21.5. Variational Bayes

앞에서는 매개변수를 알고 있을 때 잠재변수를 추론하는 법을 알아보았다. 이제는 매개변수를 추론하는 법을 알아보자. 완전히 인수분해되는 근사 p(\mathbf{\theta} | \mathcal{D}) \simeq \prod_{k} q(\mathbf{\theta}_{k})를 사용하면 변분 베이즈(VB)법을 얻는다. 잠재변수와 매개변수를 전부 추론하길 원하고 근사의 형태를 p(\mathbf{\theta}, \mathbf{z}_{1 : N} | \mathcal{D}) \simeq q(\mathbf{\theta}) \prod_{i} q_{i}(\mathbf{z}_{i})를 사용하면 변분 베이즈 기대값 최대화법을 얻는다.

21.5.1. Example: VB for a univariate Gaussian

1D 가우시안 p(\mu, \lambda | \mathcal{D}) 의 예를 고려해 보자. (\lambda = \frac{1}{\sigma^{2}})

켤레사전분포는 p(\mu, \lambda) = \mathcal{N}(\mu | \mu_{0}, \frac{1}{\kappa_{0} \lambda}) \mathrm{Ga}(\lambda | a_{0}, b_{0}), 근사 완전인수분해 사후분포는 q(\mu, \lambda) = q_{\mu}(\mu) q_{\lambda}(\lambda)의 꼴을 사용한다.

21.5.1.1. Target distribution

비표준화 로그 사후분포는 다음과 같다.

\log \tilde{p}(\mu, \lambda) = \log p(\mu, \lambda, \mathcal{D}) = \frac{N}{2} \log \lambda - \frac{\lambda}{2} \sum_{i=1}^{N} (x_{i} - \mu)^{2} - \frac{\kappa_{0} \lambda}{2} (\mu - \mu_{0})^{2} + \frac{1}{2} \log ( \kappa_{0} \lambda ) + (a_{0} - 1) \log \lambda - b_{0} \lambda + \mathrm{const}

21.5.1.2. Updating q_{\mu}(\mu)

평균에 대한 사후분포인자는 다음과 같다.

q_{\mu}(\mu) = \mathcal{N}(\mu | \mu_{N}, \frac{1}{\kappa_{N}})

\mu_{N} = \frac{\kappa_{0} \mu_{0} + N \bar{x}}{\kappa_{0} + N}, \kappa_{N} = (\kappa_{0} + N) \mathbb{E}_{q_{\lambda}}[\lambda]

21.5.1.3. Updating q_{\lambda}(\lambda)

정밀도에 대한 사후분포인자는 다음과 같다.

q_{\lambda}(\lambda) = \mathrm{Ga}(\lambda | a_{N}, b_{N})

a_{N} = a_{0} + \frac{N+1}{2}

b_{N} = b_{0} + \frac{1}{2} \mathbb{E}_{q_{\mu}}[\kappa_{0}(\mu-\mu_{0})^{2} + \sum_{i=1}^{N} (x_{i} - \mu)^{2}]

21.5.1.4. Computing the expectations

기대값들은 다음과 같다.

\mathbb{E}_{q(\mu)} [\mu] = \mu_{N}

\mathbb{E}_{q(\mu)} [\mu^{2}] = \frac{1}{\kappa_{N}} + \mu_{N}^{2}

\mathbb{E}_{q(\mu)} [\lambda] = \frac{a_{N}}{b_{N}}

21.5.1.5. Illustration

아래 그림이 변분 베이즈의 예이다.

1차 가우시안에 대한 변분 베이즈.

21.5.1.6. Lower bound

변분 베이즈에서는 로그 주변가능도에 대한 하한 L(q)를 최대화한다. 이 때 하한을 직접 계산하는 것은 여러 면에서 도움이 되는데, 먼저 수렴성을 보장할 수 있고, 둘째로는 단조증가성 때문에 코드를 검증할 수 있고, 셋째로는 주변가능도에 대한 근사로 활용할 수 있다.

1차원 가우시안의 경우에는 하한은 다음과 같다.

L(q) = \int \int q(\mu, \lambda) \log \frac{p(\mathcal{D}, \mu, \lambda)}{q(\mu, \lambda)} d \mu d \lambda = \mathbb{E}[\log p(\mathcal{D} | \mu, \lambda)] + \mathbb{E}[\log p(\mu | \lambda)] + \mathbb{E}[\log p(\lambda)] - \mathbb{E}[\log q(\mu)] - \mathbb{E} [ \log q(\lambda)] = \frac{1}{2} \log \frac{1}{\kappa_{N}} + \log \Gamma(a_{N}) - a_{N} \log b_{N} + \mathrm{const}

이는 업데이트마다 단조증가한다.

21.5.2. Example: VB for linear regression

선형 능선 회귀의 변분 베이즈 적용례를 보자.

사전분포는 다음과 같다.

p(\mathbf{w}, \lambda, \alpha) = \mathcal{N} ( \mathbf{w} | \mathbf{0}, \frac{1}{\lambda \alpha} \mathbf{I}) \mathrm{Ga}(\lambda | a_{0}^{\lambda}, b_{0}^{\lambda}) \mathrm{Ga}(\alpha | a_{0}^{\alpha}, b_{0}^{\alpha})

사후분포의 근사는 다음ㅎ ㅕㅇ태가 된다.

q(\mathbf{w}, \alpha, \lambda) = q(\mathbf{w}, \lambda) q(\alpha) = \mathcal{N}(\mathbf{w} | \mathbf{w}_{N}, \frac{1}{\lambda} \mathbf{V}_{N}) \mathrm{Ga} (\lambda | a_{N}^{\lambda}, b_{N}^{\lambda}) \mathrm{Ga}(\alpha | a_{N}^{\alpha}, b_{N}^{\alpha})

\mathbf{V}_{N}^{-1} = \bar{\mathbf{A}} + \mathbf{X}^{T}

\mathbf{w}_{N} = \mathbf{V}_{N} \mathbf{X}^{T} \mathbf{y}

a_{N}^{\lambda} = a_{0}^{\lambda} + \frac{N}{2}

b_{N}^{\lambda} = b_{0}^{\lambda} + \frac{1}{2} (\lVert \mathbf{y} - \mathbf{X} \mathbf{w} \rVert^{2} + \mathbf{w}_{N}^{T} \bar{\mathbf{A}} \mathbf{w}_{N})

a_{N}^{\alpha} = a_{0}^{\alpha} + \frac{D}{2}

b_{N}^{\alpha} = b_{0}^{\alpha} + \frac{1}{2}(\frac{a_{N}^{\lambda}}{b_{N}^{\lambda}} \mathbf{w}_{N}^{T} \mathbf{w}_{N} + \mathrm{tr}(\mathbf{V}_{N}))

\bar{\mathbf{A}} = \frac{a_{N}^{\alpha}}{b_{N}^{\alpha}} \mathbf{I}

이는 자동 연관 판별 케이스에 다음 사전분포를 적용해서 확장할 수 있다.

p(\mathbf{w}) = \mathcal{N}(\mathbf{0}, \mathrm{diag}(\alpha)^{-1})

p(\mathbf{\alpha}) = \prod_{j=1}^{D} \mathrm{Ga}(\alpha_{j} | a_{0}^{\alpha}, b_{0}^{\alpha})

이 경우 \mathbf{\alpha}에 대한 사후분포는 다음과 같다.

q(\mathbf{\alpha}) = \prod_{j} \mathrm{Ga}(\alpha_{j} | a_{N}^{\alpha}, b_{N_{j}}^{\alpha})

a_{N}^{\alpha} = a_{0}^{\alpha} + \frac{1}{2}

b_{N_{j}}^{\alpha} = b_{0}^{\alpha} + \frac{1}{2}(\frac{a_{N}^{\lambda}}{b_{N}^{\lambda}} w_{N, j}^{2} + (\mathbf{V}_{N})_{jj})

정확한 주변가능도는 다음과 같다.

p(\mathcal{D}) = \int \int \int p(\mathbf{y} | \mathbf{X}, \mathbf{w}, \lambda) p(\mathbf{w} | \alpha) p(\lambda) d \mathbf{w} d \alpha d \lambda

그러므로 로그 주변가능도에 대한 하한은 다음과 같다.

L(q) = -\frac{N}{2} \log (2 \pi) - \frac{1}{2} \sum_{i=1}^{N} (\frac{a_{N}^{\lambda}}{b_{N}^{\lambda}}(y_{i} - \mathbf{w}_{N}^{T} \mathbf{x}_{i})^{2} + \mathbf{x}_{i}^{T} \mathbf{V}_{N} \mathbf{x}_{i}) + \frac{1}{2} \log \lvert \mathbf{V}_{N} \rvert + \frac{D}{2} - \log \Gamma(a_{0}^{\lambda}) + a_{0}^{\lambda} \log b_{0}^{\lambda} - b_{0}^{\lambda} \frac{a_{N}^{\lambda}}{b_{N}^{\lambda}} + \log \Gamma(a_{N}^{\lambda}) - a_{N}^{\lambda} \log b_{N}^{\lambda} + a_{N}^{\lambda} - \log \Gamma(a_{0}^{\alpha}) + a_{0}^{\alpha} \log b_{0}^{\alpha} - \log \Gamma(a_{N}^{\alpha}) - a_{N}^{\alpha} \log b_{N}^{\alpha}

자동 연관 판별의 경우에는 마지막 4개의 항이 다음과 같이 바뀐다.

\sum_{j=1}^{D} [-\log \Gamma(a_{0}^{\alpha}) + a_{0}^{\alpha} \log b_{0}^{\alpha} - \log \Gamma(a_{N}^{\alpha}) - a_{N}^{\alpha} \log b_{N_{j}}^{\alpha}]

변분 베이즈는 실측 베이즈와 상당히 비슷한 식을 갖는다. 실측 베이즈는 가능도를 최대화하고, 변분 베이즈는 가능도의 하한을 최대화하기 때문이다.

변분 베이즈/실측 베이즈를 이용한 1-3차 다항식 모델에 대한 사후분포의 주변가능도 근사.

21.6. Variational Bayes EM

이제 \mathbf{z}_{i} \to \mathbf{x}_{i} \leftarrow \mathbf{\theta}의 형태를 가진 잠재 변수 모델을 고려해 보자. 이 때의 미지수는 매개변수인 \mathbf{\theta}와 잠재 변수인 \mathbf{z}_{i}이다. 일반적으로 이런 모델은 기대값 최대화를 이용해서 E 단계에서는 잠재 변수에 대한 사후분포 p(\mathbf{z}_{i} | \mathbf{x}_{i}, \mathbf{\theta})를 추론하고 M 단계에서는 매개변수 \mathbf{\theta}에 대한 점 추정을 계산함으로써 피팅을 한다. 이는 알고리즘이 간단하고 \mathbf{\theta}에 대한 사후불확실성이 \mathbf{z}_{i}보다 적게 나온다는 이점이 있다 (\mathbf{\theta}는 모든 데이터로부터 추론되고 \mathbf{z}_{i}\mathbf{x}_{i}로부터만 추론되기 때문이다).

하지만, 변분 베이즈는 더 베이지안적인 접근법을 제공한다. 즉, 매개변수에서의 불확실성도 잠재변수의 불확실성과 똑같이 모델링하면서 기대값 최대화와 똑같은 계산량을 쓰는 것이다. 이를 변분 베이즈 기대값 최대화(VBEM)이라 한다. 기본 발상은 평균 장 알고리즘을 쓰는데, 이 때 근사 사후분포는 p(\mathbf{\theta}, \mathbf{z}_{1 : N} | \mathcal{D}) \simeq q(\mathbf{\theta}) q(\mathbf{z}) = q(\mathbf{\theta}) \prod_{i} q(\mathbf{z}_{i})의 형태가 된다. 이 때 첫 번째 분해로 좌변을 근사하는 것이 알고리즘을 계싼 가능하게 만드는 핵심이다.

변분 베이즈 기대값 최대화 알고리즘은 q(\mathbf{z}_{i} | \mathcal{D})를 변분 E 단계에서 업데이트하고 q(\mathbf{\theta} | \mathcal{D})를 변분 M 단계에서 업데이트한다. 이 때 q(\mathbf{\theta} | \mathcal{D}) \simeq \delta_{\hat{\mathbf{\theta}}}(\mathbf{\theta})의 근사를 사용하면 일반적인 기대값 최대화 알고리즘을 얻는다.

변분 E 단계는 일반적인 E 단계와 비슷하나 매개변수의 최대사후확률추정을 대입해 잠재 변수에 대한 사후분포를 계산하는 대신, 매개변수에 대해 평균을 낸다. 변분 M 단계는 일반적인 M 단계와 비슷하나, 매개변수에 대한 점 추정을 하는 대신 초매개변수를 업데이트한다.

변분 기대값 최대화 알고리즘이 기대값 최대화 알고리즘에 비해 갖는 주된 이점은 매개변수를 적분해 빼냄으로써 주변가능도에 대한 하한을 계산할 수 있다는 것이다. 또한, 매개변수를 잠재 변수와 동등하게 다룬다는 점도 있다.

21.6.1. Example: VBEM for mixtures of Gaussians

가우시안 혼합 모델에 변분 베이즈 기대값 최대화를 적용해 보자.

가우시안 혼합 모델에 변분 베이즈를 적용한 결과. 반복 94회째에 2개의 분포의 합으로 수렴한다.

21.6.1.1. The variational posterior

가능도는 다음과 같다.

p(\mathbf{z}, \mathbf{X} | \mathbf{\theta}) = \prod_{i} \prod_{k} \pi_{k}^{z_{ik}} \mathcal{N}(\mathbf{x}_{i} | \mathbf{\mu}_{k}, \mathbf{\Lambda}_{k}^{-1})^{z_{ik}}

켤레사전분포는 다음과 같이 가정하고, 모든 클러스터에 대한 사전분포 매개변수는 같다고 가정한다. (\mathbf{\Lambda}_{k}는 클러스터 k에 대한 정밀도 행렬)

p(\mathbf{\theta}) = \mathrm{Dir}(\mathbf{\pi} | \mathbf{\alpha}_{0}) \prod_{k} \mathcal{N}(\mathbf{\mu}_{k} | \mathbf{m}_{0}, (\beta_{0} \mathbf{\Lambda}_{k})^{-1}) \mathrm{Wi}(\mathbf{\Lambda}_{k} | \mathbf{L}_{0}, \nu_{0})

혼합 가중치에 대해서는 대칭 사전분포 \mathbf{\alpha}_{0} = \alpha_{0} \mathbf{I}를 주로 쓴다.

정확한 사후분포 p(\mathbf{z}, \mathbf{\theta} | \mathcal{D})K^{N} 개의 분포의 혼합이 된다. 이는 계산하기 어려우므로 일반 변분 베이즈 근사 p(\mathbf{\theta}, \mathbf{z}_{1 : N} | \mathcal{D}) \simeq q(\mathbf{\theta}) \prod_{i} q(\mathbf{z}_{i})를 사용한다. 이 때 최적의 근사는 다음과 같다.

q(\mathbf{z}, \mathbf{\theta}) = q(\mathbf{z} | \mathbf{\theta} ) q(\mathbf{\theta}) = [\prod_{i} \mathrm{Cat}(\mathbf{z}_{i} | \mathbf{r}_{i})][\mathrm{Dir}(\mathbf{\pi} | \mathbf{\alpha}) \prod_{k} \mathcal{N}(\mathbf{\mu}_{k} | \mathbf{m}_{k}, (\beta_{k} \mathbf{\Lambda}_{k})^{-1}  ) \mathrm{Wi}(\mathbf{\Lambda}_{k} | \mathbf{L}_{k}, \nu_{k})]

21.6.1.2. Derivation of q(z) (variational E step)

잠재 변수의 사전분포 근사 인자는 다음과 같다.

\log q(\mathbf{z}) = \sum_{i} \sum_{k} z_{ik} \log \rho_{ik} + \mathrm{const}

\log \rho_{ik} = \mathbb{E}_{q(\mathbf{\theta})}[\log \pi_{k}] + \frac{1}{2} \mathbb{E}_{q(\mathbf{\theta})} [\log \lvert \mathbf{\Lambda}_{k} \rvert ] - \frac{D}{2} \log (2 \pi) - \frac{1}{2} \mathbb{E}_{q(\mathbf{\theta})}[(\mathbf{x}_{i} - \mathbf{\mu}_{k})^{T} \mathbf{\Lambda}_{k} (\mathbf{x}_{i} - \mathbf{\mu}_{k})]

\log \tilde{\pi}_{k} = \phi(\alpha_{k}) - \phi(\sum_{j} \alpha_{j}) (\phi는 디감마 함수)

\log \tilde{\Lambda}_{k} = \sum_{j=1}^{D} \phi(\frac{\nu_{k} + 1 - j}{2}) + D \log 2 + \log \lvert \mathbf{\Lambda}_{k} \rvert

위의 결과를 전부 대입하면 클러스터 k의 데이터 i에 대한 사후책임도는 다음과 같다.

r_{ik} \propto \tilde{\pi}_{k} \tilde{\Lambda}_{k}^{\frac{1}{2}} e^{-\frac{D}{2 \beta_{k}} - \frac{\nu_{k}}{2} (\mathbf{x}_{i} - \mathbf{m}_{k})^{T} \mathbf{\Lambda}_{k} (\mathbf{x}_{i} - \mathbf{m}_{k}) }

아래의 일반적인 기대값 최대화 알고리즘에서의 사후책임도 식과 비교해 차이를 살펴보자.

r_{ik}^{\mathrm{EM}} \propto \hat{\pi}_{k} \lvert \hat{\mathbf{\Lambda}} \rvert_{k}^{\frac{1}{2}} e^{- \frac{1}{2} (\mathbf{x}_{i} - \hat{\mathbf{\mu}}_{k})^{T} \hat{\mathbf{\Lambda}}_{k} (\mathbf{x}_{i} - \hat{\mathbf{\mu}}_{k}) }

21.6.1.3. Derivation of q(\mathbf{\theta}) (variational M step)

평균 장 법을 사용하면 다음을 얻는다.

\log q(\mathbf{\theta}) = \log p(\mathbf{\pi}) + \sum_{k} \log p(\mu_{k}, \mathbf{\Lambda}_{k}) + \sum_{i} \mathbb{E}_{q(\mathbf{z})} [\log p(\mathbf{z}_{i} | \mathbf{\pi})] + \sum_{k} \sum_{i} \mathbb{E}_{q(\mathbf{z})} [z_{ik}] \log \mathcal{N}(\mathbf{x}_{i} | \mathbf{\mu}_{k}, \mathbf{\Lambda}_{k}^{-1}) + \mathrm{const}

q(\mathbf{\theta}) = q(\mathbf{\pi}) \prod_{k} q(\mathbf{\mu}_{k}, \mathbf{\Lambda}_{k}) 의 인수분해를 이용하면 다음을 얻는다.

q(\mathbf{\pi}) = \mathrm{Dir} (\mathbf{\pi} | \mathbf{\alpha})

\alpha_{k} = \alpha_{0} + N_{k}

N_{k} = \sum_{i} r_{ik}

q(\mathbf{\mu}_{k}, \mathbf{\Lambda}_{k}) = \mathcal{N}(\mathbf{\mu}_{k} | \mathbf{m}_{k}, (\beta_{k} \mathbf{\Lambda}_{k})^{-1} ) \mathrm{Wi}(\mathbf{\Lambda}_{k} | \mathbf{L}_{k}, \nu_{k})

\beta_{k} = \beta_{0} + N_{k}

\mathbf{m}_{k} = \frac{\beta_{0} \mathbf{m}_{0} + N_{k} \bar{\mathbf{x}}_{k}}{\beta_{k}}

\mathbf{L}_{k}^{-1} = \mathbf{L}_{0}^{-1} + N_{k} \mathbf{S}_{k} + \frac{\beta_{0} N_{k}}{\beta_{0} + N_{k}} (\bar{\mathbf{x}}_{k} - \mathbf{m}_{0})(\bar{\mathbf{x}}_{k} - \mathbf{m}_{0})^{T}

\nu_{k} = \nu_{0} + N_{k} + 1

\bar{\mathbf{x}}_{k} = \frac{\sum_{i} r_{ik} \mathbf{x}_{i}}{N_{k}}

\mathbf{S}_{k} = \frac{\sum_{i} r_{ik} (\mathbf{x}_{i} - \bar{\mathbf{x}}_{k}) (\mathbf{x}_{i} - \bar{\mathbf{x}}_{k})^{T} }{N_{k}}

이는 최대사후확률추정에서의 M 단계와 비슷하지만, 매개변수의 최대사후확률추정에 대한 계산이 아닌 사후분포의 매개변수에 대한 계산을 한다는 차이점이 있다.

21.6.1.4. Lower bound on the marginal likelihood

위의 알고리즘은 다음의 하한을 최대화시키는 것을 목적으로 한다. 해당 통계량은 반복에 따라 단조증가한다.

\mathcal{L} = \sum_{\mathbf{z}} \int q(\mathbf{z}, \mathbf{\theta}) \log \frac{p(\mathbf{x}, \mathbf{z}, \mathbf{\theta})}{q(\mathbf{z}, \mathbf{\theta})} d \mathbf{\theta} \leq \log p(\mathcal{D})

21.6.1.5. Posterior predictive distribution

사후예측분포의 근사는 다음과 같다.

p(\mathbf{x} | \mathcal{D}) \simeq \sum_{z} \int p(\mathbf{x} | z, \mathbf{\theta}) p(z | \mathbf{\theta}) q(\mathbf{\theta}) d \mathbf{\theta} = \sum_{k} \frac{\alpha_{k}}{\sum_{j} \alpha_{j}} \mathcal{T} (\mathbf{x} | \mathbf{m}_{k}, \mathbf{M}_{k}, \nu_{k} + 1 - D)

\mathbf{M}_{k} = \frac{(\nu_{k} + 1 - D)\beta_{k}}{1 + \beta_{k}}\mathbf{L}_{k}

이는 스튜던트 분포의 가중치합과 같다. 대입 근사를 쓴다면 가우시안 분포의 가중치합을 얻을 것이다.

21.6.1.6. Model selection using VBEM

변분 베이즈에서 K의 값을 선택하는 법은 여러 모델을 피팅한 뒤 로그 주변가능도에 대한 변분 하한을 이용해 p(K | \mathcal{D}) = \frac{e^{\mathcal{L}(K)}}{\sum_{K^{\prime}}e^{\mathcal{L}(K^{\prime})}} 로 근사하는 것이다.

하지만 이 하한을 그대로 사용할 수는 없는데, 매개변수의 특정성이 부족하기 때문이다. 또한, 변분 베이즈는 매개변수의 사후분포의 최빈값이 여러 개 존재할 경우 그 중 하나인 국소최빈값에 대해서만 근사를 한다. 따라서 \log p(\mathcal{D} | K) \simeq \mathcal{L}(K) + \log (K!)의 식을 사용해야 한다.

21.6.1.7. Automatic sparsity inducing effects of VBEM

변분 베이즈는 주변가능도에 대한 합리적인 근사를 제공하지만 K개의 모델을 전부 피팅해야 한다. K가 크지만 \alpha_{0}이 매우 작을 때에는 하나의 모델만 피팅하는 대안이 존재한다.

일반적 기대값 최대화 알고리즘에서는 혼합 가중치에 대한 최대사후확률추정은 \hat{\pi}_{k} \propto (\alpha_{k} - 1), \alpha_{k} = \alpha_{0} + N_{k}의 꼴을 가지는데, 이는 음수가 될 수 있다는 단점이 있다. 변분 베이즈에서는 \tilde{\pi}_{k} = \frac{e^{\Psi(\alpha_{k})}}{e^{\Psi(\sum_{k^{\prime}}\alpha_{k^{\prime}})}} 을 사용해 이 단점을 회피할 수 있지만, 작은 클러스터에 있는 원소들이 반복에 따라 점점 큰 클러스터로 흡수되는 부익부 빈익빈 현상이 일어난다.

21.7. Variational message passing and VIBES

평균 장 법은 매우 비슷하다. 각 노드에 대한 전체 조건분포를 계산하고 인접 노드들에 대해 평균내는 것이다. 이는 계산량이 더 많다는 점을 빼고 깁스 샘플링과 비슷하다. 다행히도 조건부 확률분포들이 전부 지수족에 속할 경우에는 임의의 방향그래프모델에 적용할 수 있는 일반적인 업데이트 방법이 존재하는데, 깁스 샘플링처럼 그래프에 대해 탐색을 하고 한 번에 하나의 노드씩을 업데이트하면 된다. 이를 변분 메시지 전달(VMP) 이라 하며, 은닉 노드들 일부가 연속일 때 추론을 하는 데 적합하다.

21.8. Local variational bounds

평균 장 추론 외에 다른 변분 추론도 존재한다. 이는 결합분포 내 특정한 항을 더 간단한 함수로 치환해 사후분포를 계산하기 쉽게 하는 것이다. 이를 국소 변분 근사라 한다.

21.8.1. Motivating applications

몇 가지 예를 들어 보자.

21.8.1.1. Variational logistic regression

가우시안 사전분포하의 다 클래스 로지스틱 회귀의 사후분포를 근사하는 문제를 보자. 가우시안(라플라스) 근사를 쓸 수도 있지만, 변분식 접근이 더 정확한 근사를 한다. 매개변수 튜닝이 가능하며 하한을 단조증가시키는 식으로 최적화할 수 있기 때문이다. 직접 최적화를 하는 대신 하한을 쓰는 이유는 가능도가 p(\mathbf{y} | \mathbf{X}, \mathbf{w}) = \prod_{i=1}^{N} e^{\mathbf{y}_{i}^{T} \mathbf{\eta}_{i} - \log (1 + \sum_{m=1}^{M} e^{\eta_{im}})}로그-합-지수(lse) 꼴이기 때문에 가우시안 사전분포와 켤레분포가 아니기 때문이다.

21.8.1.2. Multi-task learning

로지스틱 회귀에 대한 베이지안 추론의 중요한 용례는 서로 상관이 있는 복수의 분륙를 피팅해야 할 때이다. 이 경우엔 각각의 분류기의 매개변수간 정보를 공유를 시켜야 하는데, 이를 위해서는 매개변수에 대한 사후분포를 필요로 한다. 따라서 값의 추정뿐만 아니라 해당 추정의 신뢰도도 있는 것이 좋다. 이를 위해 변분적 접근을 할 수 있다.

21.8.1.3. Discrete factor analysis

변분 하한이 유용한 다른 상황은 이산적 데이터에 인자 분석을 시행할 때이다. 이 때 모델은 다항 로지스틱 회귀와 비슷하지만, 입력 변수가 은닉 인자라는 것이 다르다. 이 때는 회귀 가중치뿐만 아니라 은닉 변수에 대한 추론도 수행할 필요가 있다. 가중치에 대한 점 추정을 한 뒤 은닉 변수를 적분해 빼낼 수 있는데, 변분 기대값 최대화를 이용해 이를 수행할 수 있다.

21.8.1.4. Correlated topic model

토픽 모델은 텍스트 문서나 다른 형태의 이산적 데이터에 대한 잠재 변수 모델이다. 디리클레 사전분포를 쓸 수도 있으나 상관 토픽 모델이라는 가우시안 사전분포를 쓰면 상호 연관을 더 쉽게 모델링할 수 있다. 이 방법도 로그-합-지수 함수가 필요하므로 변분 하한 접근법이 필요하다.

21.8.2. Bohning’s quadratic bound to the log-sum-exp function

로그-합-지수 함수를 포함하는 가능도에 대한 가우시안과 비슷한 하한이 존재한다. 이는 적당한 지점 \mathbf{\psi}_{i}에 대한 테일러 전개를 수행해서 이루어지며, 다음과 같다.

p(\mathbf{y}_{i} | \mathbf{x}_{i}, \mathbf{w}) \geq f(\mathbf{x}_{i}, \mathbf{\psi}_{i}) \mathcal{N}(\tilde{\mathbf{y}}_{i} | \mathbf{X}_{i} \mathbf{w}_{i}, \mathbf{A}_{i}^{-1})

\tilde{\mathbf{y}}_{i} = \mathbf{A}_{i}^{-1}(\mathbf{b}_{i} + \mathbf{y}_{i})

\mathbf{A}_{i} = \frac{1}{2} [\mathbf{I}_{M} - \frac{1}{M+1}\mathbf{1}_{M} \mathbf{1}_{M}^{T}]

\mathbf{b}_{i} = \mathbf{A}_{i} \mathbf{\psi}_{i} - \mathcal{S}(\mathbf{\psi}_{i})

c_{i} = \frac{1}{2} \mathbf{\psi}_{i}^{T} \mathbf{A}_{i} \mathbf{\psi}_{i} - \mathcal{S}(\mathbf{\psi}_{i})^{T} \mathbf{\psi}_{i} + \mathrm{lse} (\mathbf{\psi}_{i})

이 때 f(\mathbf{x}_{i}, \mathbf{\psi}_{i})\mathbf{w}에 의존하지 않는 적당한 함수이다. 이것이 주어져 있을 때, 가우시안에 대한 베이즈 정리를 쓰면 사후분포 q(\mathbf{w}) = \mathcal{N}(\mathbf{m}_{N}, \mathbf{V}_{N})은 구하기 쉽다.

21.8.2.1. Applying Bohning’s bound to multinomial logistic regression

다항 로지스틱 회귀에 대해서 이를 적용하면 다음과 같다.

L(q) = -\mathbb{KL}(q(\mathbf{w}) \vert \vert p(\mathbf{w} | \mathcal{D})) + \sum_{i=1}^{N} \mathbf{y}_{i}^{T} \mathbb{E}_{q} [\mathbf{\eta}_{i}] - \sum_{i=1}^{N} \mathbb{E}_{q} [\mathrm{lse}(\mathbf{\eta}_{i})] \geq -\frac{1}{2} [\mathrm{tr}(\mathbf{V}_{N}\mathbf{V}_{0}^{-1}) - \log \lvert \mathbf{V}_{N}\mathbf{V}_{0}^{-1}\rvert + (\mathbf{m}_{N} - \mathbf{m}_{0})^{T} \mathbf{V}_{0}^{-1} (\mathbf{m}_{N} - \mathbf{m}_{0}) - \frac{1}{2} D + \sum_{i=1}^{N} \mathbf{y}_{i}^{T} \tilde{\mathbf{m}}_{i} - \frac{1}{2} \mathrm{tr}(\mathbf{A}_{i} \tilde{\mathbf{V}}_{i}) - \frac{1}{2} \tilde{\mathbf{m}}_{i} \mathbf{A}_{i} \tilde{\mathbf{m}}_{i} + \mathbf{b}_{i}^{T} \tilde{\mathbf{m}}_{i} - c_{i}]

이의 매개변수를 최적화하면 다음과 같다.

\mathbf{V}_{N} = (\mathbf{V}_{0} + \mathbf{A} \otimes \sum_{i=1}^{N} \mathbf{x}_{i} \mathbf{x}_{i}^{T})^{-1}

\mathbf{m}_{N} = \mathbf{V}_{n}(\mathbf{V}_{0}^{-1} \mathbf{m}_{0} + \sum_{i=1}^{N} (\mathbf{y}_{i} + \mathbf{b}_{i}) \otimes \mathbf{x}_{i})

\mathbf{\phi}_{i} = \tilde{\mathbf{m}}_{i} = \mathbf{X}_{i} \mathbf{m}_{N}

21.8.3. Bounds for the sigmoid function

이진 데이터에 대한 보닝 하한은 다음과 같다.

\log (1 + e^{\eta}) \leq \frac{1}{2} a \eta^{2} - b \eta + c

a = \frac{1}{4}

b = A \phi - (1 + e^{-\phi})^{-1}

c = \frac{1}{2} A \phi^{2} - (1 + e^{-\phi})^{-1} \phi + \log (1 + e^{\phi})

하지만 이 경우엔 다른 하한인 JJ 하한이 존재한다.

\log (1 + e^{\eta}) \leq \lambda(\zeta)(\eta^{2} - \zeta^{2}) + \frac{1}{2} (\eta - \zeta) + \log(1 + e^{\zeta})

\lambda(\zeta) = \frac{1}{2 \zeta}[\mathrm{sigm}(\zeta) - \frac{1}{2}]

이는 비상수 곡률을 가지며 두 점에서 일치한다. 이와 비교해, 보닝 하한은 상수 곡률을 가지며 한 점에서만 일치한다.

JJ 하한을 이진 로지스틱 회귀에 쓰고 싶으면 위에 언급된 알고리즘을 조금 고쳐야 한다. JJ 하한에서는 보닝 상한과 달리 a가 상수가 아니기 때문에, 속도는 더 느려진다. 사후분포에 대한 업데이트는 다음과 같아진다.

\mathbf{V}_{N}^{-1} = \mathbf{V}_{0}^{-1} + 2 \sum_{i=1}^{N} \lambda(\zeta)_{i} \mathbf{x}_{i} \mathbf{x}_{i}^{T}

\mathbf{m}_{N} = \mathbf{V}_{N} (\mathbf{V}_{0}^{-1} \mathbf{m}_{0} + \sum_{i=1}^{N} (y_{i} - \frac{1}{2})\mathbf{x}_{i})

(\zeta_{i, \mathrm{new}})^{2} = \mathbf{x}_{i}^{T} (\mathbf{V}_{N} + \mathbf{m}_{N} \mathbf{m}_{N}^{T} ) \mathbf{x}_{i}

시그모이드에 대한 보닝 하한 vs JJ 하한.

이것보다 더 타이트한 하한인 구간별 이차 하한도 있다.

21.8.4. Other bounds and approximations to the log-sum-exp function

로그-합-지수 함수에 대한 다른 여러 하한을 알아보자.

21.8.4.1. Product of sigmoids

다음의 식에서 우변에 JJ 하한을 적용하는 방법이 있다.

\log (\sum_{k=1}^{K} e^{\eta_{k}}) \leq \alpha + \sum_{k=1}^{K} \log (1 + e^{\eta_{k} - \alpha})

21.8.4.2. Jensen’s inequality

젠센의 부등식을 적용한 다음 방법이 있다.

\mathbb{E}_{q}[\mathrm{lse}(\mathbf{\eta}_{i})] \leq \log (1 + \sum_{c=1}^{M}e^{\mathbf{x}_{i}^{T} \mathbf{m}_{N, c} + \frac{1}{2} \mathbf{x}_{i}^{T} \mathbf{V}_{N, cc} \mathbf{x}_{i} })

21.8.4.3. Multivariate delta method

테일러 전개를 이용해 함수의 모멘트를 근사하는 다변수 델타 법이 있다.

\mathbb{E}_{q}[\mathrm{lse}(\mathbf{X}_{i} \mathbf{w})] \leq \mathrm{lse}(\mathbf{X}_{i} \mathbf{m}) + \frac{1}{2} \mathrm{tr}[\mathbf{X}_{i} \mathbf{H} \mathbf{X}_{i}^{T} \mathbf{V}]

\mathbf{H} = \mathrm{diag}(\mathcal{S}(\mathbf{m})) - \mathcal{S}(\mathbf{m})\mathcal{S}(\mathbf{m})^{T}

21.8.5. Variational inference based on upper bounds

때로는 하한 뿐만 아니라 상한이 필요할 수도 있다. 다음의 방법이 있다.

\mathbb{E}[\log (1 + e^{-\sum_{j \in \mathrm{pa}(i)} w_{ij} x_{j} })] = \mathbb{E} [-\log \mathrm{sigm}(\mathbf{w}_{i}^{T} \mathbf{x}_{\mathrm{pa}(i)})]

요점 정리

  • 변분 추론 : 기본 발상은 계산 가능한 함수족에서 사후분포에 대한 적절한 근사 함수를 선택한 뒤 KL 발산을 최소화시키는 방법. 역 KL 발산을 주로 사용.
  • 평균 장 방법 : 주변분포를 최적화할 때 인접한 노드에 대한 기대값을 취하는 방법.
  • 구조화된 평균 장 방법 : 변수들을 그룹핑한 뒤 동시에 업데이트하는 방법.
  • 변분 베이즈 : 모델의 매개변수 자체를 근사 추정하는 방법.
  • 변분 베이즈 기대값 최대화 : 잠재 변수가 있는 모델에 대해 모델의 매개변수와 잠재 변수를 함께 근사 추정하는 방법. 기대값 최대화와 비슷함.
  • 변분 메시지 전달 : 특수한 조건을 만족하는 경우 임의의 방향그래프모델에 적용할 수 있는 방법으로, 그래프에 대해 탐색을 하고 한 번에 하나의 노드씩을 업데이트함.
  • 국소적 변분 하한 : 변분 추론의 또 다른 방법으로, 보닝 하한, JJ 하한 등의 방법이 있음.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중