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

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

استنباط بیزی تغییراتی (به انگلیسی: Variational Bayes Inference) از جمله روش های رایج در یادگیری بیزی است که برای تقریب جواب با استفاده از یک سری فرض های استفلال در توزیع پسین (به انگلیسی: Posterior distribution) است. نکته مشکل ساز در یادگیری بیزی این است که برای حساب کردن توزیع پسین لازم است انتگرالی روی تمام حالات ممکن متغیرهای پنهان حساب شود که به درست نمایی حاشیه ای (به انگلیسی: marginal likelihood) معروف است. استنباط تغییراتی سعی در تقریب این انتگرال دشوار دارد تا یادگیری مدل و استنباط با آن را آسان تر کند. به عبارتی دیگی، روش استنباط بیزی تغییراتی

  1. تقریبی برای توزیع پسین می دهد. با استفاده از این تقریب و داشتن پارامترهای مدل، می توان استنباط آماری روی داده های دیده نشده انجام داد.
  2. کرانی پایین برای درست نمایی حاشیه ای (یا "گواه"(به انگلیسی: evidence)) روی داده های آموزشی می دهد. با استفاده از این کران می توان پارامترهای مدل را یاد گرفت ("یادگیری مدل" یا model selection). ایده ی کلی این است که هرچه مقدار درست نمایی برای داده های مورد نظر بیشتر باشد، پارامترها برای مدل و داده ها مناسب تر هستند.

می توان گفت روش استنباط تغییراتی، تعمیمی از یادگیریی "حداکثرسازی امید" (به انگلیسی: Expectation Maximization) است.

یک نمونه ساده[ویرایش]

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

مدل ریاضی[ویرایش]

در مدل سازی پارامترهای مساله، برای مدل سازی پارامترها، از توزیع مزدوج پیشین (به انگلیسی: conjugate prior) استفاده می کنیم. یعنی برای میانگین توزیع نرمال، و برای واریانس توزیع گاما در نظر می گیریم:


\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 به همدیگر توجه کنید که تشکیل یک الگوریتم حداکثر سازی امیدریاضی (به انگلیسی: expectation maximization) می دهند. می توان مراحل اجرای الگوریتم را به صورت زیر خلاصه کرد:

  1. با استفاده از \sum_{n=1}^N x_n و \sum_{n=1}^N x_n^2. مقادیر مربوط به \mu_N و a_N. را حساب کنید.
  2. پارامتر \lambda_N را با مقداری اولیه، مقداردهی کنید.
  3. با استفاده از پارامترهای مساله و از جمله \lambda_N، مقدار b_N را تخمین بزنید.
  4. با استفاده از پارامترهای مساله و از جمله b_N، مقدار \lambda_N را تخمین بزنید.
  5. مراحل فوق را تا رسیدن به همگرایی (جایی که هیچکدام از پارامترها دیگر تغییر زیادی نکنند.) انجام دهید.

می توان نشان داد که این بروز رسانی دوری تضمین شده است که به مقدار بهینه محلی همگرا خواهد شد. می توان اثبات کرد که چون توزیع حول هردو پارامتر و توزیع پسین نمایی است، حتماً به نقطه بهینه جهانی همگرا خواهد شد. نکته ظریف اینجاست این نقطه بهینه مربوط به مساله با تقریب مستقل بودن توزیع پارامترهای مساله است و در هر صورت نسبت جواب مساله اصلی تقریبی است.

یک نمونه ی نسبتاً پیچیده تر[ویرایش]

مدل مخلوط گوسی . مربع های کوچک نشان دهنده ی پارامترهای ثابت هستند و مربع های بزرگ نشان دهنده ی متغیرهای تصادفی هستند. مربع های توپر نشان دهنده ی مقادیر معلوم است. علامت نشان دهنده ی برداری به طول است. به معنی ماتریسی به اندازه ی است. به معنی یک متغیر با توزیع 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}

چند نکته:

می توان توزیع مشترک روی متغیرهای مساله را به صورت زیر نوشت:

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\}

با اجرای پی در پی مراحل بروز رسانی می توان مدل را آموزش داد:

  1. محاسبه ی r_{nk} با استفاده از سایر پارامترها(E-step).
  2. محاسبه ی r_{nk} با استفاده از سایر پارامترهای(M-step).

منابع[ویرایش]

  1. Pattern Recognition and Machine Learning by Christopher M. Bishop بر اساس فصل دهم

منابع[ویرایش]

  • Bishop, Christopher M. (2006). Pattern Recognition and Machine Learning. Springer. ISBN 0-387-31073-8. 

لینک به دنیای خارج[ویرایش]