استنباط بیزی تغییراتی

**استنباط بیزی تغییراتی**  یا **استنباط بیزی وردشی**، از جمله روش های رایج در یادگیری بیزی است که برای تقریب جواب با استفاده از یک سری فرض های استقلال در توزیع پَسین  است. نکته مشکل ساز در یادگیری بیزی این است که برای حساب کردن توزیع پسین لازم است انتگرالی روی تمام حالات ممکن متغیرهای پنهان حساب شود که به درست نمایی حاشیه ای  معروف است. استنباط وردشی سعی در تقریب این انتگرال دشوار دارد تا یادگیری مدل و استنباط با آن را آسان تر کند. به عبارتی دیگی، روش استنباط بیزیِ وردشی
# تقریبی برای توزیع پَسین می دهد. با استفاده از این تقریب و داشتن پارامترهای مدل، می توان استنباط آماری روی داده های دیده نشده انجام داد.
# کرانی پایین برای درست نمایی حاشیه ای (یا "گواه") روی داده های آموزشی می دهد. با استفاده از این کران می توان پارامترهای مدل را یاد گرفت ("یادگیری مدل" یا model selection). ایده ی کلی این است که هرچه مقدار درست نمایی برای داده های مورد نظر بیشتر باشد، پارامترها برای مدل و داده ها مناسب تر هستند.

می توان گفت روش استنباط وردشی، تعمیمی از یادگیری "حداکثرسازی امید"  است.

## یک نمونه ساده
فرض کنید یک مدل ساده بیزی داریم که در آن مجموعه ای از داده های iid از یک توزیع گوسی با میانگین و واریانس نامشخص در اختیار داریم. در این مثال با جزئیات زیاد سعی داریم عملکرد یادگیری و استنباط وردشی را نشان دهیم.

### مدل ریاضی
در مدل سازی پارامترهای مسئله، برای مدل سازی پارامترها، از توزیع مزدوج پیشین  استفاده می کنیم. یعنی برای میانگین توزیع نرمال، و برای واریانس توزیع گاما در نظر می گیریم:
:
\begin{align}
\mu & \sim \mathcal{N}(\mu_0, (\lambda_0 \tau)^{-1}) \\
\tau & \sim \operatorname{Gamma}(a_0, b_0) \\
\{x_1, \dots, x_N\} & \sim \mathcal{N}(\mu, \tau^{-1}) \\
N &= \text{number of data points}
\end{align}

اکنون N نقطه\mathbf{X} = \{x_1, \dots, x_N\} در اختیار داریم و هدف این است که توزیع پسین q(\mu, \tau)=p(\mu,\tau|x_1, \ldots, x_N)  را برای پارامترهای مدل \mu و \tau یادبگیریم. فراپارامترهای مدل، یعنی \mu_0, \lambda_0, a_0 و b_0 مقادیری ثابت هستند.

### توزیع مشترک
توزیع مشترک متغیرهای مسئله به صورت زیر است: 
:p(\mathbf{X},\mu,\tau) = p(\mathbf{X}|\mu,\tau) p(\mu|\tau) p(\tau)
که هرکدام از آنها بر اساس فاکتورهایشان به صورت زیر هستند: 
:
\begin{align}
p(\mathbf{X}|\mu,\tau) & = \prod_{n=1}^N \mathcal{N}(x_n|\mu,\tau^{-1}) \\
p(\mu|\tau) & = \mathcal{N}(\mu|\mu_0, (\lambda_0 \tau)^{-1}) \\
p(\tau) & = \operatorname{Gamma}(\tau|a_0, b_0)
\end{align}

که در آن: 
:
\begin{align}
\mathcal{N}(x|\mu,\sigma^2) & = \frac{1}{\sqrt{2\pi\sigma^2}} e^{\frac{-(x-\mu)^2}{2\sigma^2}} \\
\operatorname{Gamma}(\tau|a,b) & = \frac{1}{\Gamma(a)} b^a \tau^{a-1} e^{-b \tau}
\end{align}


### فرض استقلال توزیع ها
فرض کنید که توزیع روی پارامترهای مسئله به صورت q(\mu,\tau) = q(\mu)q(\tau) تجزیه شوند. در اصل چنین فرضی درست نیست. چرا که پارامتر واریانس توزیع نرمال میانگین وابسته به توزیع گاما است. اما به صورت تقریبی فرض استقلال فوق را انجام می دهیم. چنین فرضی باعث ایجاد خطا در نتیجه ی نهایی خواهد شد، اما در قبال این خطا، سرعت بیشتری در یادگیری مدل به دست می آوریم. فرض استقلال بین توزیع های پارامترهای مسئله اساس روش استنتاج وردشی است.

### بدست آوردن فاکتور q(μ)
:
\begin{align}
\ln q_\mu^*(\mu) &= \operatorname{E}_{\tau}[\ln p(\mathbf{X}|\mu,\tau) + \ln p(\mu|\tau) + \ln p(\tau)] + C \\
 &= \operatorname{E}_{\tau}[\ln p(\mathbf{X}|\mu,\tau)] + \operatorname{E}_{\tau}[\ln p(\mu|\tau)] + \operatorname{E}_{\tau}[\ln p(\tau)] + C \\
 &= \operatorname{E}_{\tau}[\ln \prod_{n=1}^N \mathcal{N}(x_n|\mu,\tau^{-1})] + \operatorname{E}_{\tau}[\ln \mathcal{N}(\mu|\mu_0, (\lambda_0 \tau)^{-1})] + C_2 \\
 &= \operatorname{E}_{\tau}[\ln \prod_{n=1}^N \sqrt{\frac{\tau}{2\pi}} e^{-\frac{(x_n-\mu)^2\tau}{2}}] + \operatorname{E}_{\tau}[\ln \sqrt{\frac{\lambda_0 \tau}{2\pi}} e^{-\frac{(\mu-\mu_0)^2\lambda_0 \tau}{2}}] + C_2 \\
 &= \operatorname{E}_{\tau}[\sum_{n=1}^N \left(\frac{1}{2}(\ln\tau - \ln 2\pi) - \frac{(x_n-\mu)^2\tau}{2}\right)] + \operatorname{E}_{\tau}[\frac{1}{2}(\ln \lambda_0 + \ln \tau - \ln 2\pi) - \frac{(\mu-\mu_0)^2\lambda_0 \tau}{2}] + C_2 \\
 &= \operatorname{E}_{\tau}[\sum_{n=1}^N -\frac{(x_n-\mu)^2\tau}{2}] + \operatorname{E}_{\tau}[-\frac{(\mu-\mu_0)^2\lambda_0 \tau}{2}] + \operatorname{E}_{\tau}[\sum_{n=1}^N \frac{1}{2}(\ln\tau - \ln 2\pi)] + \operatorname{E}_{\tau}[\frac{1}{2}(\ln \lambda_0 + \ln \tau - \ln 2\pi)] + C_2 \\
 &= \operatorname{E}_{\tau}[\sum_{n=1}^N -\frac{(x_n-\mu)^2\tau}{2}] + \operatorname{E}_{\tau}[-\frac{(\mu-\mu_0)^2\lambda_0 \tau}{2}] + C_3 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \{ \sum_{n=1}^N (x_n-\mu)^2 + \lambda_0(\mu-\mu_0)^2 \} + C_3
\end{align}

در عبارت فوق پارامترهای C, C_2 و C_3 مقادیر ثابت نسبت به پارامتر \mu هستند. با توجه به عبارت آخر مشاهده می شود که توزیع حول \mu دارای توزیع گوسی است. با کمی بازی با جملات ریاضی می توان توزیع را به فرم گوسی استاندارد نوشت و جمله ای برای میانگین و واریانس آن بدست آورد. 
:
\begin{align}
\ln q_\mu^*(\mu) &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \{ \sum_{n=1}^N (x_n-\mu)^2 + \lambda_0(\mu-\mu_0)^2 \} + C_3 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \{ \sum_{n=1}^N (x_n^2-2x_n\mu + \mu^2) + \lambda_0(\mu^2-2\mu_0\mu + \mu_0^2) \} + C_3 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \{ (\sum_{n=1}^N x_n^2)-2(\sum_{n=1}^N x_n)\mu + \sum_{n=1}^N \mu^2) + \lambda_0\mu^2-2\lambda_0\mu_0\mu + \lambda_0\mu_0^2) \} + C_3 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \{ (\lambda_0+N)\mu^2 -2(\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n)\mu + (\textstyle\sum_{n=1}^N x_n^2) + \lambda_0\mu_0^2 \} + C_3 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \{ (\lambda_0+N)\mu^2 -2(\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n)\mu \} + C_4 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \left\{ (\lambda_0+N)\mu^2 -2\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N}(\lambda_0+N) \mu \right\} + C_4 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \left\{ (\lambda_0+N)\left(\mu^2 -2\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N} \mu\right) \right\} + C_4 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \left\{ (\lambda_0+N)\left(\mu^2 -2\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N} \mu + \left(\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N}\right)^2 - \left(\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N}\right)^2\right) \right\} + C_4 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \left\{ (\lambda_0+N)\left(\mu^2 -2\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N} \mu + \left(\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N}\right)^2 \right) \right\} + C_5 \\
                    &= - \frac{\operatorname{E}_{\tau}[\tau]}{2} \left\{ (\lambda_0+N)\left(\mu-\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N}\right)^2 \right\} + C_5 \\
                    &= - \frac{1}{2} \left\{ (\lambda_0+N)\operatorname{E}_{\tau}[\tau] \left(\mu-\frac{\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n}{\lambda_0+N}\right)^2 \right\} + C_5 \\
\end{align}

به عبارت دیگر:
:
\begin{align}
q_\mu^*(\mu) &\sim \mathcal{N}(\mu|\mu_N,\lambda_N^{-1}) \\
\mu_N &= \frac{\lambda_0 \mu_0 + N \bar{x}}{\lambda_0 + N} \\
\lambda_N &= (\lambda_0 + N) \operatorname{E}[\tau] \\
\bar{x} &= \frac{1}{N}\sum_{n=1}^N x_n
\end{align}


### بدست آوردن فاکتور q(τ)
بدست آوردن فاکتور q_\tau^*(\tau) تا حد زیادی مشابه مراحل بالاست. 
:
\begin{align}
\ln q_\tau^*(\tau) &= \operatorname{E}_{\mu}[\ln p(\mathbf{X}|\mu,\tau) + \ln p(\mu|\tau)] + \ln p(\tau) + \text{constant} \\
                    &= (a_0 - 1) \ln \tau - b_0 \tau + \frac{N}{2} \ln \tau - \frac{\tau}{2} \operatorname{E}_\mu [\sum_{n=1}^N (x_n-\mu)^2 + \lambda_0(\mu - \mu_0)^2] + \text{constant}
\end{align}

با به توان رساندن دو طرف، توزیع نهایی به صورت یک توزیع گاما بدست می آید. 
:
\begin{align}
q_\tau^*(\tau) &\sim \operatorname{Gamma}(\tau|a_N, b_N) \\
a_N &= a_0 + \frac{N+1}{2} \\
b_N &= b_0 + \frac{1}{2} \operatorname{E}_\mu \left[\sum_{n=1}^N (x_n-\mu)^2 + \lambda_0(\mu - \mu_0)^2\right]
\end{align}

### الگوریتم محاسبه ی پارامترهای بهینه مسئله
بگذارید نتایجی را که از قسمت های قبل بدست آوردیم را یادآوری کنیم:
:
\begin{align}
q_\mu^*(\mu) &\sim \mathcal{N}(\mu\mid\mu_N,\lambda_N^{-1}) \\
\mu_N &= \frac{\lambda_0 \mu_0 + N \bar{x}}{\lambda_0 + N} \\
\lambda_N &= (\lambda_0 + N) \operatorname{E}[\tau] \\
\bar{x} &= \frac{1}{N}\sum_{n=1}^N x_n
\end{align}

و 
:
\begin{align}
q_\tau^*(\tau) &\sim \operatorname{Gamma}(\tau\mid a_N, b_N) \\
a_N &= a_0 + \frac{N+1}{2} \\
b_N &= b_0 + \frac{1}{2} \operatorname{E}_\mu \left[\sum_{n=1}^N (x_n-\mu)^2 + \lambda_0(\mu - \mu_0)^2\right]
\end{align}

در هر کدام از موارد فوق، امید روی یک پارامتر، وابسته به امید روی پارامترهای دیگر است. می توان این روابط را بر اساس روابط پایه آماری بسط داد. 
:
\begin{align}
\operatorname{E}[\tau\mid a_N, b_N] &= \frac{a_N}{b_N} \\
\operatorname{E}[\mu\mid\mu_N,\lambda_N^{-1}] &= \mu_N \\
\operatorname{E}\left[X^2 \right] &= \operatorname{Var}(X) + (\operatorname{E}[X])^2 \\
\operatorname{E}[\mu^2\mid\mu_N,\lambda_N^{-1}] &= \lambda_N^{-1} + \mu_N^2
\end{align}

اعمال روابط فوق به پارامترها سر راست است. در اینجا تنها به توضیح رابطه ی مربوط به b_N می پردازیم.  
:
\begin{align}
b_N &= b_0 + \frac{1}{2} \operatorname{E}_\mu \left[\sum_{n=1}^N (x_n-\mu)^2 + \lambda_0(\mu - \mu_0)^2\right] \\
 &= b_0 + \frac{1}{2} \operatorname{E}_\mu \left[ (\lambda_0+N)\mu^2 -2(\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n)\mu + (\textstyle\sum_{n=1}^N x_n^2) + \lambda_0\mu_0^2 \right] \\
 &= b_0 + \frac{1}{2} \left[ (\lambda_0+N)\operatorname{E}_\mu[\mu^2] -2(\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n)\operatorname{E}_\mu[\mu] + (\textstyle\sum_{n=1}^N x_n^2) + \lambda_0\mu_0^2 \right] \\
 &= b_0 + \frac{1}{2} \left[ (\lambda_0+N)(\lambda_N^{-1} + \mu_N^2) -2(\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n)\mu_N + (\textstyle\sum_{n=1}^N x_n^2) + \lambda_0\mu_0^2 \right] \\
\end{align}

می توان پارامترهای دیگر را دیگر را به صورت زیر نوشت: 
:
\begin{align}
\mu_N &= \frac{\lambda_0 \mu_0 + N \bar{x}}{\lambda_0 + N} \\
\lambda_N &= (\lambda_0 + N) \frac{a_N}{b_N} \\
\bar{x} &= \frac{1}{N}\sum_{n=1}^N x_n \\
a_N &= a_0 + \frac{N+1}{2} \\
b_N &= b_0 + \frac{1}{2} \left[ (\lambda_0+N)(\lambda_N^{-1} + \mu_N^2) -2(\lambda_0\mu_0 + \textstyle\sum_{n=1}^N x_n)\mu_N + (\textstyle\sum_{n=1}^N x_n^2) + \lambda_0\mu_0^2 \right]
\end{align}

در عبارات فوق به وابستگی روابط مربوط به \mu_N, \lambda_N و b_N به همدیگر توجه کنید که تشکیل یک الگوریتم حداکثر سازی امیدریاضی  می دهند. می توان مراحل اجرای الگوریتم را به صورت زیر خلاصه کرد: 
# با استفاده از \sum_{n=1}^N x_n و \sum_{n=1}^N x_n^2. مقادیر مربوط به \mu_N و a_N. را حساب کنید. 
# پارامتر \lambda_N را با مقداری اولیه، مقداردهی کنید. 
# با استفاده از پارامترهای مسئله و از جمله \lambda_N، مقدار b_N را تخمین بزنید. 
# با استفاده از پارامترهای مسئله و از جمله b_N، مقدار  \lambda_N را تخمین بزنید. 
# مراحل فوق را تا رسیدن به همگرایی (جایی که هیچکدام از پارامترها دیگر تغییر زیادی نکنند.) انجام دهید. 
می توان نشان داد که این بروز رسانی دوری تضمین شده است که به مقدار بهینه محلی همگرا خواهد شد. می توان اثبات کرد که چون توزیع حول هردو پارامتر و توزیع پسین نمایی است، حتماً به نقطه بهینه جهانی همگرا خواهد شد. نکته ظریف اینجاست این نقطه بهینه مربوط به مسئله با تقریب مستقل بودن توزیع پارامترهای مسئله است و در هر صورت نسبت جواب مسئله اصلی تقریبی است.

## یک نمونه ی نسبتاً پیچیده تر
راست|300px|بندانگشتی|مدل مخلوط گوسی . مربع های کوچک نشان دهنده ی  پارامترهای ثابت هستند و مربع های بزرگ نشان دهنده ی متغیرهای تصادفی هستند. مربع های توپر نشان دهنده ی مقادیر معلوم است. علامت نشان دهنده ی برداری به طول است. به معنی ماتریسی به اندازه ی است.  به معنی یک متغیر با توزیع categorical با K دسته است.

فرض کنید یک نمونه مدل مخلوط گوسی به صورت زیر تعریف شده باشد: 
:
\begin{align}
\mathbf{\pi} & \sim \operatorname{SymDir}(K, \alpha_0) \\
\mathbf{\Lambda}_{i=1 \dots K} & \sim \mathcal{W}(\mathbf{W}_0, \nu_0) \\
\mathbf{\mu}_{i=1 \dots K} & \sim \mathcal{N}(\mathbf{\mu}_0, (\beta_0 \mathbf{\Lambda}_i)^{-1}) \\
\mathbf{z}[i = 1 \dots N] & \sim \operatorname{Mult}(1, \mathbf{\pi}) \\
\mathbf{x}_{i=1 \dots N} & \sim \mathcal{N}(\mathbf{\mu}_{z_i}, {\mathbf{\Lambda}_{z_i}}^{-1}) \\
K &= \text{number of mixing components} \\
N &= \text{number of data points}
\end{align}

چند نکته: 
* توزیع SymDir() توزیع متقارن دیریکله با K بعد است که دارای فراپارامتر \alpha_0 است. توزیع دیریکله، توزیع مزدوج پیشین توزیع های categorical و multinomial است. 
* توزیع \mathcal{W}() توزیع ویشارت که توزیع مزدوج پیشین برای ماتریس دقت (عکس ماتریس کواریانس) در توزیع نرمال چند متغیره است. 
* Mult() توزیع چندجمله‌ای روی یک مشاهده (معادل توزیع categorical) است. 
* \mathcal{N}() توزیع نرمال چند متغیره است.  
می توان توزیع مشترک روی متغیرهای مسئله را به صورت زیر نوشت: 
:p(\mathbf{X},\mathbf{Z},\mathbf{\pi},\mathbf{\mu},\mathbf{\Lambda}) = p(\mathbf{X}|\mathbf{Z},\mathbf{\mu},\mathbf{\Lambda}) p(\mathbf{Z}|\mathbf{\pi}) p(\mathbf{\pi}) p(\mathbf{\mu}|\mathbf{\Lambda}) p(\mathbf{\Lambda})
می توان هر کدام از فاکتورهای مسئله را به صورت زیر ساده سازی کرد: 
:
\begin{align}
p(\mathbf{X}|\mathbf{Z},\mathbf{\mu},\mathbf{\Lambda}) & = \prod_{n=1}^N \prod_{k=1}^K \mathcal{N}(\mathbf{x}_n|\mathbf{\mu}_k,\mathbf{\Lambda}_k^{-1})^{z_{nk}} \\
p(\mathbf{Z}|\mathbf{\pi}) & = \prod_{n=1}^N \prod_{k=1}^K \pi_k^{z_{nk}} \\
p(\mathbf{\pi}) & = \frac{\Gamma(K\alpha_0)}{\Gamma(\alpha_0)^K} \prod_{k=1}^K \pi_k^{\alpha_0-1} \\
p(\mathbf{\mu}|\mathbf{\Lambda}) & = \mathcal{N}(\mathbf{\mu}_k|\mathbf{m}_0,(\beta_0 \mathbf{\Lambda}_k)^{-1}) \\
p(\mathbf{\Lambda}) & = \mathcal{W}(\mathbf{\Lambda}_k|\mathbf{W}_0, \nu_0)
\end{align}

که در آن: 
:
\begin{align}
\mathcal{N}(\mathbf{x}|\mathbf{\mu},\mathbf{\Sigma}) & = \frac{1}{(2\pi)^{D/2}} \frac{1}{|\mathbf{\Sigma}|^{1/2}} \exp \{-\frac{1}{2}(\mathbf{x}-\mathbf{\mu})^{\rm T} \mathbf{\Sigma}^{-1}(\mathbf{x}-\mathbf{\mu}) \} \\
\mathcal{W}(\mathbf{\Lambda}|\mathbf{W},\nu) & = B(\mathbf{W},\nu) |\mathbf{\Lambda}|^{(\nu-D-1)/2} \exp \left(-\frac{1}{2} \operatorname{Tr}(\mathbf{W}^{-1}\mathbf{\Lambda}) \right) \\
B(\mathbf{W},\nu) & = |\mathbf{W}|^{-\nu/2} (2^{\nu D/2} \pi^{D(D-1)/4} \prod_{i=1}^{D} \Gamma(\frac{\nu + 1 - i}{2}))^{-1} \\
D & = \text{dimensionality of each data point}
\end{align}

اگر فرض کنیم 
q(\mathbf{Z},\mathbf{\pi},\mathbf{\mu},\mathbf{\Lambda}) = q(\mathbf{Z})q(\mathbf{\pi},\mathbf{\mu},\mathbf{\Lambda})
بنابرین: 
:
\begin{align}
\ln q^*(\mathbf{Z}) &= \operatorname{E}_{\mathbf{\pi},\mathbf{\mu},\mathbf{\Lambda}}[\ln p(\mathbf{X},\mathbf{Z},\mathbf{\pi},\mathbf{\mu},\mathbf{\Lambda})] + \text{constant} \\
                    &= \operatorname{E}_{\mathbf{\pi}}[\ln p(\mathbf{Z}|\mathbf{\pi})] + \operatorname{E}_{\mathbf{\mu},\mathbf{\Lambda}}[\ln p(\mathbf{X}|\mathbf{Z},\mathbf{\mu},\mathbf{\Lambda})] + \text{constant} \\
                    &= \sum_{n=1}^N \sum_{k=1}^K z_{nk} \ln \rho_{nk} + \text{constant}
\end{align}

که آن تعریف کرده ایم: 
:\ln \rho_{nk} = \operatorname{E}[\ln \pi_k] + \frac{1}{2} \operatorname{E}[\ln |\mathbf{\Lambda}_k|] - \frac{D}{2} \ln(2\pi) - \frac{1}{2} \operatorname{E}_{\mathbf{\mu}_k,\mathbf{\Lambda}_k} [(\mathbf{x}_n - \mathbf{\mu}_k)^{\rm T} \mathbf{\Lambda}_k (\mathbf{x}_n - \mathbf{\mu}_k)]
با به توان رساندن هر دو طرف داریم: 
:q^*(\mathbf{Z}) \propto \prod_{n=1}^N \prod_{k=1}^K \rho_{nk}^{z_{nk}}
به صورتی معادل می توان عبارت فوق را به صورت زیر نوشت: 
:q^*(\mathbf{Z}) = \prod_{n=1}^N \prod_{k=1}^K r_{nk}^{z_{nk}}
که در آن: 
:r_{nk} = \frac{\rho_{nk}}{\sum_{j=1}^K \rho_{nj}}
همچنین توجه کنید که 
:\operatorname{E}[z_{nk}] = r_{nk} \, 
که به صورت طبیعی از توزیع categorical بدست می آید. با توجه به فاکتوریزه کردن q(\mathbf{\pi},\mathbf{\mu},\mathbf{\Lambda}) به صورت q(\mathbf{\pi}) \prod_{k=1}^K q(\mathbf{\mu}_k,\mathbf{\Lambda}_k) می توان نوشت: 
:
\begin{align}
\ln q^*(\mathbf{\pi}) &= \ln p(\mathbf{\pi}) + \operatorname{E}_{\mathbf{Z}}[\ln p(\mathbf{Z}|\mathbf{\pi})] + \text{constant} \\
                    &= (\alpha_0 - 1) \sum_{k=1}^K \ln \pi_k + \sum_{n=1}^N \sum_{k=1}^K r_{nk} \ln \pi_k + \text{constant}
\end{align}

با به توان رساندن دو طرف می توان دید که q^*(\mathbf{\pi}) دارای توزیع دریکله است. 
:q^*(\mathbf{\pi}) \sim \operatorname{Dir}(\mathbf{\alpha}) \, 
که در آن 
:\alpha_k = \alpha_0 + N_k \, 
همچنین 
:N_k = \sum_{n=1}^N r_{nk} \, 
در نهایت داریم: 
:\ln q^*(\mathbf{\mu}_k,\mathbf{\Lambda}_k) = \ln p(\mathbf{\mu}_k,\mathbf{\Lambda}_k) + \sum_{n=1}^N \operatorname{E}[z_{nk}] \ln \mathcal{N}(\mathbf{x}_n|\mathbf{\mu}_k,\mathbf{\Lambda}_k^{-1}) + \text{constant}
می توان نتیجه کلی را به اینصورت نوشت: 
:q^*(\mathbf{\mu}_k,\mathbf{\Lambda}_k) = \mathcal{N}(\mathbf{\mu}_k|\mathbf{m}_k,(\beta_k \mathbf{\Lambda}_k)^{-1}) \mathcal{W}(\mathbf{\Lambda}_k|\mathbf{W}_k,\nu_k)
که دارای پارامترهای زیر است:
:
\begin{align}
\beta_k             &= \beta_0 + N_k \\
\mathbf{m}_k        &= \frac{1}{\beta_k} (\beta_0 \mathbf{m}_0 + N_k {\bar{\mathbf{x}}}_k) \\
\mathbf{W}_k^{-1}   &= \mathbf{W}_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)^{\rm T} \\
\nu_k               &= \nu_0 + N_k \\
N_k                 &= \sum_{n=1}^N r_{nk} \\
{\bar{\mathbf{x}}}_k &= \frac{1}{N_k} \sum_{n=1}^N r_{nk} \mathbf{x}_n \\
\mathbf{S}_k        &= \frac{1}{N_k} \sum_{n=1}^N (\mathbf{x}_n - {\bar{\mathbf{x}}}_k) (\mathbf{x}_n - {\bar{\mathbf{x}}}_k)^{\rm T}
\end{align}


:
\begin{array}{rcccl}
\operatorname{E}_{\mathbf{\mu}_k,\mathbf{\Lambda}_k}  [(\mathbf{x}_n - \mathbf{\mu}_k)^{\rm T} \mathbf{\Lambda}_k (\mathbf{x}_n - \mathbf{\mu}_k)] &&&=& D\beta_k^{-1} + \nu_k (\mathbf{x}_n - \mathbf{m}_k)^{\rm T} \mathbf{W}_k (\mathbf{x}_n - \mathbf{m}_k) \\
\ln {\tilde{\Lambda}}_k &\equiv& \operatorname{E}[\ln |\mathbf{\Lambda}_k|] &=& \sum_{i=1}^D \psi \left(\frac{\nu_k + 1 - i}{2}\right) + D \ln 2 + \ln |\mathbf{\Lambda}_k| \\
\ln {\tilde{\pi}}_k &\equiv& \operatorname{E}\left[\ln |\pi_k|\right] &=& \psi(\alpha_k) - \psi\left(\sum_{i=1}^K \alpha_i\right)
\end{array}


:r_{nk} \propto {\tilde{\pi}}_k {\tilde{\Lambda}}_k^{1/2} \exp \left\{ - \frac{D}{2 \beta_k} - \frac{\nu_k}{2} (\mathbf{x}_n - \mathbf{m}_k)^{\rm T} \mathbf{W}_k (\mathbf{x}_n - \mathbf{m}_k) \right\}
با اجرای پی در پی مراحل بروز رسانی می توان مدل را آموزش داد: 
# محاسبه ی r_{nk} با استفاده از سایر پارامترها(E-step). 
# محاسبه ی r_{nk} با استفاده از سایر پارامترهای(M-step).

## منابع

* 

## پیوند به بیرون
* Variational-Bayes Repository A repository of papers, software, and links related to the use of variational methods for approximate Bayesian learning 
* The on-line textbook: Information Theory, Inference, and Learning Algorithms, by دیوید جی سی ماکای provides an introduction to variational methods (p.&nbsp;422).
* Variational Algorithms for Approximate Bayesian Inference, by M. J. Beal includes comparisons of EM to Variational Bayesian EM and derivations of several models including Variational Bayesian HMMs.
* A Tutorial on Variational Bayes. Fox, C. and Roberts, S. 2011. Artificial Intelligence Review, . 
* High-Level Explanation of Variational Inference by Jason Eisner may be worth reading before a more mathematically detailed treatment.

رده:آمار بیزی