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

استنباط بیزی تغییراتی از جمله روش‌های رایج در یادگیری بیزی است که برای تقریب جواب با استفاده از یک سری فرض‌های استفلال در توزیع پسین است. نکته مشکل ساز در یادگیری بیزی این است که برای حساب کردن توزیع پسین لازم است انتگرالی روی تمام حالات ممکن متغیرهای پنهان حساب شود که به درست نمایی حاشیه‌ای معروف است. استنباط تغییراتی سعی در تقریب این انتگرال دشوار دارد تا یادگیری مدل و استنباط با آن را آسان‌تر کند. به عبارتی دیگی، روش استنباط بیزی تغییراتی
تقریبی برای توزیع پسین می‌دهد. با استفاده از این تقریب و داشتن پارامترهای مدل، می‌توان استنباط آماری روی داده‌های دیده نشده انجام داد.
کرانی پایین برای درست نمایی حاشیه‌ای (یا "گواه") روی داده‌های آموزشی می‌دهد. با استفاده از این کران می‌توان پارامترهای مدل را یاد گرفت ("یادگیری مدل" یا 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
اکنون نقطه در اختیار داریم و هدف این است که توزیع پسین را برای پارامترهای مدل و یادبگیریم. فراپارامترهای مدل، یعنی , , و مقادیری ثابت هستند.
توزیع مشترک
توزیع مشترک متغیرهای مسئله به صورت زیر است:
که هرکدام از آنها بر اساس فاکتورهایشان به صورت زیر هستند:
\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()
\begin{align
\ln q_\mu^*(\mu) -= \operatorname{E_{\tau\mu,\tau) + \ln p(\mu + C \\
-= \operatorname{E_{\tau\mu,\tau) + \operatorname{E_{\tau\tau) + \operatorname{E_{\tau\ln p(\tau) + C \\
-= \operatorname{E_{\tau\mu,\tau^{-1) + \operatorname{E_{\tau\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
در عبارت فوق پارامترهای , و مقادیر ثابت نسبت به پارامتر هستند. با توجه به عبارت آخر مشاهده می‌شود که توزیع حول دارای توزیع گوسی است. با کمی بازی با جملات ریاضی می‌توان توزیع را به فرم گوسی استاندارد نوشت و جمله‌ای برای میانگین و واریانس آن بدست آورد.
\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()
بدست آوردن فاکتور تا حد زیادی مشابه مراحل بالاست.
\begin{align
\ln q_\tau^*(\tau) -= \operatorname{E_{\mu\mu,\tau) + \ln p(\mu + \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\leftX^2 \right -= \operatorname{Var(X) + (\operatorname{EX)^2 \\
\operatorname{E\mu^2\mid\mu_N,\lambda_N^{-1 -= \lambda_N^{-1 + \mu_N^2
\end{align
اعمال روابط فوق به پارامترها سر راست است. در اینجا تنها به توضیح رابطه‌ی مربوط به می‌پردازیم.
\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
در عبارات فوق به وابستگی روابط مربوط به , و به همدیگر توجه کنید که تشکیل یک الگوریتم حداکثر سازی امیدریاضی می‌دهند. می‌توان مراحل اجرای الگوریتم را به صورت زیر خلاصه کرد:
با استفاده از و مقادیر مربوط به و را حساب کنید.
پارامتر را با مقداری اولیه، مقداردهی کنید.
با استفاده از پارامترهای مسئله و از جمله ، مقدار را تخمین بزنید.
با استفاده از پارامترهای مسئله و از جمله ، مقدار را تخمین بزنید.
مراحل فوق را تا رسیدن به همگرایی (جایی که هیچکدام از پارامترها دیگر تغییر زیادی نکنند.) انجام دهید.
می‌توان نشان داد که این بروز رسانی دوری تضمین شده است که به مقدار بهینه محلی همگرا خواهد شد. می‌توان اثبات کرد که چون توزیع حول هردو پارامتر و توزیع پسین نمایی است، حتما به نقطه بهینه جهانی همگرا خواهد شد. نکته ظریف اینجاست این نقطه بهینه مربوط به مسئله با تقریب مستقل بودن توزیع پارامترهای مسئله است و در هر صورت نسبت جواب مسئله اصلی تقریبی است.
یک نمونه‌ی نسبتا پیچیده‌تر
مدل مخلوط گوسی . مربع‌های کوچک نشان دهنده‌ی پارامترهای ثابت هستند و مربع‌های بزرگ نشان دهنده‌ی متغیرهای تصادفی هستند. مربع‌های توپر نشان دهنده‌ی مقادیر معلوم است. علامت نشان دهنده‌ی برداری به طول است. به معنی ماتریسی به اندازه‌ی است. به معنی یک متغیر با توزیع 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{zi = 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
چند نکته:
توزیع توزیع متقارن دیریکله با بعد است که دارای فراپارامتر است. توزیع دیریکله، توزیع مزدوج پیشین توزیع‌های categorical و multinomial است.
توزیع توزیع ویشارت که توزیع مزدوج پیشین برای ماتریس دقت (عکس ماتریس کواریانس) در توزیع نرمال چند متغیره است.
توزیع چندجمله‌ای روی یک مشاهده (معادل توزیع categorical) است.
توزیع نرمال چند متغیره است.
می‌توان توزیع مشترک روی متغیرهای مسئله را به صورت زیر نوشت:
می‌توان هر کدام از فاکتورهای مسئله را به صورت زیر ساده سازی کرد:
\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
\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
اگر فرض کنیم
بنابرین:
\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\mathbf{\pi) + \operatorname{E_{\mathbf{\mu,\mathbf{\Lambda\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
که آن تعریف کرده‌ایم:
با به توان رساندن هر دو طرف داریم:
به صورتی معادل می‌توان عبارت فوق را به صورت زیر نوشت:
که در آن:
همچنین توجه کنید که
که به صورت طبیعی از توزیع categorical بدست می‌آید. با توجه به فاکتوریزه کردن به صورت می‌توان نوشت:
\begin{align
\ln q^*(\mathbf{\pi) -= \ln p(\mathbf{\pi) + \operatorname{E_{\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
با به توان رساندن دو طرف می‌توان دید که دارای توزیع دریکله است.
که در آن
همچنین
در نهایت داریم:
می‌توان نتیجه کلی را به اینصورت نوشت:
که دارای پارامترهای زیر است:
\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\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\pi_k -=- \psi(\alpha_k) - \psi\left(\sum_{i=1^K \alpha_i\right)
\end{array
با اجرای پی در پی مراحل بروز رسانی می‌توان مدل را آموزش داد:
محاسبه‌ی با استفاده از سایر پارامترها(E-step).
محاسبه‌ی با استفاده از سایر پارامترهای(M-step).