**الگوریتم امید ریاضی-بیشینه‌سازی** (EM) یک روش تکرارشونده (iterative) است که به دنبال یافتن برآوردی با بیشترین درست نمایی برای پارامترهای یک توزیع پارامتری است. این الگوریتم روش متداول برای زمانهایی است که برخی از متغیرهای تصادفی پنهان هستند.

شرح الگوریتم
------------

فرض کنید که مشاهدات {\displaystyle x\_{1},x\_{2},...x\_{n}} را با d نمایش دهیم، متغیرهای پنهان {\displaystyle h\_{1},h\_{2},...h\_{n}} را با h و همهٔ پارامترهای توزیع را نیز با \theta. در این صورت لگاریتم درست نمایی کل داده‌ها (پنهان و نمایان=مشاهدات) برابر خواهد بود با:

{\displaystyle {\mathcal {L}}(\theta )=\log {p(d;\theta )}=\log {\sum \_{h}{p(d,h;\theta )}}}
از آنجا که لگاریتم تابع اکیداً صعودی است، می‌توان لگاریتم درست نمایی کل داده‌ها را نسبت به \theta  بیشینه کرد. هرچند، آرگومان لگاریتم یک مجموع است و نمی‌توان به سادگی پاسخ تحلیلی برای \theta  یافت. از این رو، الگوریتم ب-ا ترفندی را برای بیشینه کردن *حد پایین* لگاریتم درست نمایی بکار می‌برد. این حد پایین از نابرابری ینسن بدست می‌آید.
بر اساس نابرابری ینسن که از کوژ بودن تابع لگاریتم استفاده می‌کند برای هر دسته kتایی از {\displaystyle t\_{i}}ها و w\_iها اگر {\displaystyle t\_{i}>0} و {\displaystyle \sum {w\_{i}}=1}، خواهیم داشت:

{\displaystyle \sum \_{i=1}^{k}{w\_{i}\log {t\_{i}}}\leq \log {\sum \_{i=1}^{k}{w\_{i}t\_{i}}}}
اکنون {\mathcal {L}} را به صورت زیر باز می‌نویسیم

{\displaystyle {\mathcal {L}}(\theta )=\log {\sum \_{h}{q(h){\frac {p(d,h;\theta )}{q(h)}}}}\geq \sum \_{h}{q(h)\log {\frac {p(d,h;\theta )}{q(h)}}}={\mathcal {J}}(q,\theta )}
با گزینش {\displaystyle q\left(h\right)=p\left(h;d,\theta \right)} نابرابری بالا تنگ می‌شود. این به معنای آن است که نابرابری به برابری تبدیل می‌شود. این گام الگوریتم همانند بیشینه کردن حدپایین درست نمایی ({\displaystyle {\mathcal {J}}}) نسبت به q است. در نتیجه روش کار الگوریتم امید ریاضی-بیشینه کردن به صورت زیر است:

1. پارامترها را مقدار آغازین {\displaystyle \theta ^{(0)}} می‌دهیم.
2. تا زمان همگرایی به بیشینه محلی ادامه می‌دهیم:
	1. گام-ا (مید ریاضی): {\displaystyle q^{(t)}=\arg \max \_{q}{{\mathcal {J}}(q,\theta ^{(t)})}}
	2. گام-ب (بیشینه کردن): {\displaystyle \theta ^{(t+1)}=\arg \max \_{\theta }{{\mathcal {J}}(q^{(t)},\theta )}}
3. مقادیر نهایی \theta  و q را باز گردان

این دیدگاه نسبت به الگوریتم امید ریاضی-بیشینه کردن متعلق به نیل و هینتون است.

بدین ترتیب در هر گام الگوریتم، حد پایین درست نمایی کل داده‌ها افزایش می‌یابد تا آنجا که در یک بیشینه محلی همگرا شود. برای رهایی از بیشینه‌های محلی، این الگوریتم را معمولاً چندین بار با شرایط آغازین متفاوت اجرا می‌کنند.

نمونه
-----

### مدل مخلوط گوسی

اگر {\displaystyle \mathbf {x} =(\mathbf {x} \_{1},\mathbf {x} \_{2},\ldots ,\mathbf {x} \_{n})} ، n داده مستقل از یک توزیع مخلوط گاوسی با بُعد d باشد و {\displaystyle \mathbf {z} =(z\_{1},z\_{2},\ldots ,z\_{n})} متغیرهای پنهانِ مسئله باشد که نشان می‌دهد هر بار داده از کدام یک از توزیع‌های گاوسی آمده است، آنگاه رابطه {\displaystyle \mathbf {x\_{i}} } با {\displaystyle \mathbf {z\_{i}} } به این شکل خواهد بود (برای سادگی کار تعداد توزیع‌های مخلوط گاوسی دو در نظر گرفته شده):

{\displaystyle X\_{i}|(Z\_{i}=1)\sim {\mathcal {N}}\_{d}({\boldsymbol {\mu }}\_{1},\Sigma \_{1})} و {\displaystyle X\_{i}|(Z\_{i}=2)\sim {\mathcal {N}}\_{d}({\boldsymbol {\mu }}\_{2},\Sigma \_{2})} و {\displaystyle \operatorname {P} (Z\_{i}=1)=\tau \_{1}\,} و {\displaystyle \operatorname {P} (Z\_{i}=2)=\tau \_{2}=1-\tau \_{1}}

هدف یادگیری پارامترهای این دو توزیع و نحوه مخلوط کردن آنهاست یعنی {\displaystyle \theta ={\big (}{\boldsymbol {\tau }},{\boldsymbol {\mu }}\_{1},{\boldsymbol {\mu }}\_{2},\Sigma \_{1},\Sigma \_{2}{\big )}}، تابع درست نمایی برابر است با {\displaystyle L(\theta ;\mathbf {x} )=\prod \_{i=1}^{n}\sum \_{j=1}^{2}\tau \_{j}\ f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{j},\Sigma \_{j})}.

حال اگر مقادیر متغیرهای پنهان مشخص بود تابع درست نمایی با عبارت پایین برابر می‌شد:

{\displaystyle L(\theta ;\mathbf {x} ,\mathbf {z} )=p(\mathbf {x} ,\mathbf {z} \vert \theta )=\prod \_{i=1}^{n}\prod \_{j=1}^{2}\ [f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{j},\Sigma \_{j})\tau \_{j}]^{\mathbb {I} (z\_{i}=j)}}

و اگر این عبارت را بسط دهیم به این معادله می‌رسیم:

{\displaystyle L(\theta ;\mathbf {x} ,\mathbf {z} )=\exp \left\{\sum \_{i=1}^{n}\sum \_{j=1}^{2}\mathbb {I} (z\_{i}=j){\big [}\log \tau \_{j}-{\tfrac {1}{2}}\log |\Sigma \_{j}|-{\tfrac {1}{2}}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{j})^{\top }\Sigma \_{j}^{-1}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{j})-{\tfrac {d}{2}}\log(2\pi ){\big ]}\right\}}

f تابع چگالی احتمال توزیع گاوس است و {\displaystyle \mathbb {I} } تابع مشخصه است. در معادله خط قبلی برای هر {\displaystyle i} دقیقا یک تابع مشخصه یک است و دیگری صفر، یعنی دقیقا برای یکی از {\displaystyle j}ها {\displaystyle \mathbb {I} (z\_{i}=j)} برابر با یک خواهد بود.

  

#### مرحله امید ریاضی (E)

طبق قضیه بیز {\displaystyle \theta ^{(t)}} که همان احتمال شرطی {\displaystyle Z\_{i}} است به این شکل محاسبه می‌شود: {\displaystyle T\_{j,i}^{(t)}:=\operatorname {P} (Z\_{i}=j|X\_{i}=\mathbf {x} \_{i};\theta ^{(t)})={\frac {\tau \_{j}^{(t)}\ f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{j}^{(t)},\Sigma \_{j}^{(t)})}{\tau \_{1}^{(t)}\ f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{1}^{(t)},\Sigma \_{1}^{(t)})+\tau \_{2}^{(t)}\ f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{2}^{(t)},\Sigma \_{2}^{(t)})}}}

همچنین تابع Q الگوریتم به شکل ذیل بدست می‌آید:

{\displaystyle {\begin{aligned}Q(\theta |\theta ^{(t)})&=\operatorname {E} \_{\mathbf {Z} |\mathbf {X} ,\mathbf {\theta } ^{(t)}}[\log L(\theta ;\mathbf {x} ,\mathbf {Z} )]\\&=\operatorname {E} \_{\mathbf {Z} |\mathbf {X} ,\mathbf {\theta } ^{(t)}}[\log \prod \_{i=1}^{n}L(\theta ;\mathbf {x} \_{i},\mathbf {z} \_{i})]\\&=\operatorname {E} \_{\mathbf {Z} |\mathbf {X} ,\mathbf {\theta } ^{(t)}}[\sum \_{i=1}^{n}\log L(\theta ;\mathbf {x} \_{i},\mathbf {z} \_{i})]\\&=\sum \_{i=1}^{n}\operatorname {E} \_{\mathbf {Z\_{i}} |\mathbf {X} ;\mathbf {\theta } ^{(t)}}[\log L(\theta ;\mathbf {x} \_{i},\mathbf {z} \_{i})]\\&=\sum \_{i=1}^{n}\sum \_{j=1}^{2}P(Z\_{i}=j|X\_{i}=\mathbf {x} \_{i};\theta ^{(t)})\log L(\theta \_{j};\mathbf {x} \_{i},\mathbf {z} \_{i})\\&=\sum \_{i=1}^{n}\sum \_{j=1}^{2}T\_{j,i}^{(t)}{\big [}\log \tau \_{j}-{\tfrac {1}{2}}\log |\Sigma \_{j}|-{\tfrac {1}{2}}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{j})^{\top }\Sigma \_{j}^{-1}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{j})-{\tfrac {d}{2}}\log(2\pi ){\big ]}\end{aligned}}}

امید ریاضی {\displaystyle \log L(\theta ;\mathbf {x} \_{i},\mathbf {z} \_{i})} در معادله بالا نسبت به توزیع احتمال مشروط {\displaystyle Z\_{i}} یعنی {\displaystyle P(Z\_{i}|X\_{i}=\mathbf {x} \_{i};\theta ^{(t)})} گرفته می شود. این احتمال برای هر {\displaystyle \mathbf {x} \_{i}} می‌تواند مقداری متفاوت داشته باشد.

#### مرحله بیشینه‌سازی (M)

{\displaystyle {\begin{aligned}{\boldsymbol {\tau }}^{(t+1)}&={\underset {\boldsymbol {\tau }}{\operatorname {arg\,max} }}\ Q(\theta |\theta ^{(t)})\\&={\underset {\boldsymbol {\tau }}{\operatorname {arg\,max} }}\ \left\{\left[\sum \_{i=1}^{n}T\_{1,i}^{(t)}\right]\log \tau \_{1}+\left[\sum \_{i=1}^{n}T\_{2,i}^{(t)}\right]\log \tau \_{2}\right\}\end{aligned}}}

{\displaystyle \tau \_{j}^{(t+1)}={\frac {\sum \_{i=1}^{n}T\_{j,i}^{(t)}}{\sum \_{i=1}^{n}(T\_{1,i}^{(t)}+T\_{2,i}^{(t)})}}={\frac {1}{n}}\sum \_{i=1}^{n}T\_{j,i}^{(t)}}

{\displaystyle {\begin{aligned}({\boldsymbol {\mu }}\_{1}^{(t+1)},\Sigma \_{1}^{(t+1)})&={\underset {{\boldsymbol {\mu }}\_{1},\Sigma \_{1}}{\operatorname {arg\,max} }}\ Q(\theta |\theta ^{(t)})\\&={\underset {{\boldsymbol {\mu }}\_{1},\Sigma \_{1}}{\operatorname {arg\,max} }}\ \sum \_{i=1}^{n}T\_{1,i}^{(t)}\left\{-{\tfrac {1}{2}}\log |\Sigma \_{1}|-{\tfrac {1}{2}}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{1})^{\top }\Sigma \_{1}^{-1}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{1})\right\}\end{aligned}}}
بر طبق برآورد درست نمایی بیشنه توزیع گاوسی، مقادیر میانگین و کوواریانس را به این شکل محاسبه می‌کنیم:

{\displaystyle {\boldsymbol {\mu }}\_{1}^{(t+1)}={\frac {\sum \_{i=1}^{n}T\_{1,i}^{(t)}\mathbf {x} \_{i}}{\sum \_{i=1}^{n}T\_{1,i}^{(t)}}}} و {\displaystyle \Sigma \_{1}^{(t+1)}={\frac {\sum \_{i=1}^{n}T\_{1,i}^{(t)}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{1}^{(t+1)})(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{1}^{(t+1)})^{\top }}{\sum \_{i=1}^{n}T\_{1,i}^{(t)}}}} و {\displaystyle {\boldsymbol {\mu }}\_{2}^{(t+1)}={\frac {\sum \_{i=1}^{n}T\_{2,i}^{(t)}\mathbf {x} \_{i}}{\sum \_{i=1}^{n}T\_{2,i}^{(t)}}}} و {\displaystyle \Sigma \_{2}^{(t+1)}={\frac {\sum \_{i=1}^{n}T\_{2,i}^{(t)}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{2}^{(t+1)})(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{2}^{(t+1)})^{\top }}{\sum \_{i=1}^{n}T\_{2,i}^{(t)}}}}

#### پایان الگوریتم

مراحل E و M را به‌صورت متناوب آنقدر اجرا میکنیم تا جایی که میزان افزایش تابع امید ریاضی مشروط از یک حد از پیش تعیین شده‌ای مانند {\displaystyle \epsilon } بیشتر نشود، به زبان ریاضی یعنی زمانی که نابرابری پایین صدق کند.

{\displaystyle E\_{Z|\theta ^{(t)},\mathbf {x} }[\log L(\theta ^{(t)};\mathbf {x} ,\mathbf {Z} )]\leq E\_{Z|\theta ^{(t-1)},\mathbf {x} }[\log L(\theta ^{(t-1)};\mathbf {x} ,\mathbf {Z} )]+\epsilon }

تاریخچه
-------

این الگوریتم چندین بار به صورت جداگانه توسط افراد مختلف ابداع شده‌است. برای نمونه پیش از اینکه نام آن بیشنه کردن-امید ریاضی باشد، به نام الگوریتم باوم-ولچ شناخته می‌شد. نمونه امروزی آن را عموماً مربوط به مقاله ای در سال ۱۹۷۷ توسط دمپستر، لرد و روبین می‌دانند.

منابع
-----

1. ↑  Neal, Radford; Hinton, Geoffrey (1999). Michael I. Jordan (ed.). "A view of the EM algorithm that justifies incremental, sparse, and other variants" (PDF). *Learning in Graphical Models*. Cambridge, MA: MIT Press: 355–368. ISBN 0-262-60032-3. Retrieved 2009-03-22.
2. ↑  Hastie, Trevor; Tibshirani, Robert; Friedman, Jerome (2001). "8.5 The EM algorithm". *The Elements of Statistical Learning*. New York: Springer. pp. 236–243. ISBN 0-387-95284-5.
3. ↑  Dempster, A.P.; Laird, N.M.; Rubin, D.B. (1977). "Maximum Likelihood from Incomplete Data via the EM Algorithm". *Journal of the Royal Statistical Society. Series B (Methodological)*. **39** (1): 1–38. JSTOR 2984875. MR 0501537.

پیوند به بیرون
--------------

* کتاب ویکی انگلیسی در این رابطه