דוגמה לשימוש באלגוריתם EM כדי ליצור אשכולות (Clustering). בדוגמה זו מוצג מידע על התפרצויות גייזר אולד פיית'פול. ציר ה-X מבטא את משך ההתפרצות של הגייזר, וציר ה-Y מבטא את הזמן שחלף מההתפרצות הקודמת. האלגוריתם מגיע להתכנסות ולסיווג לשני סוגים של התפרצויות הגייזר אולד פיית'פול.
השוואה של k-מרכזים ומקסום תוחלת על נתוני הדמיה. אלגוריתם מקסום תוחלת מגיע לתיאור יותר נכון של ההתפלגויות הנורמליות, בעוד k-מרכזים מפצל את הנתונים לתאי וורונוי. מרכז האשכול מסומן על ידי הסמל הבהיר והגדול יותר.
**אלגוריתם מיקסום התוחלת** (באנגלית: **Expectation–maximization**; ובראשי תיבות: **EM**) הוא שיטה איטרטיבית לאמידה של פרמטרים, במודלים סטטיסטיים שבהם משולבים משתנים מקריים סמויים שאין עבורם תצפיות. מודל איטרציה זה עובר בין שני שלבים:

1. התוחלת (שלב ה-E), אשר יוצר פונקציה של הפרמטרים לאמידה- תוחלת של לוג הנראות (של כל הנתונים, כולל הסמויים) כאשר מניחים כי למשתנים הסמויים יש התפלגות שנסמכת על האומדן הנוכחי עבור הפרמטרים.
2. שלב המיקסום (שלב ה-M), אשר מוצא עבור הפרמטרים את האומדנים אשר מביאים למקסימום את הפונקציה שחושבה בשלב התוחלת.

לאחר שלב המיקסום חוזרים חוזרים לשלב התוחלת עם האומדנים שנמצאו בשלב המיקסום וכן הלאה.

היסטוריה
--------

אלגוריתם EM קיבל את שמו לראשונה בשנת 1977 במאמר מאת ארתור דמפסטר, נאן ליירד, ודונלד רובין. במאמר זה ציינו החוקרים כי בעבר השיטה כבר הועלתה על הכתב בידי מחברים אחרים. דמפסטר-ליירד-רובין הגדירו את שיטת מיקסום התוחלת ככלי חשוב לפתרון מגוון רחב של בעיות. עם זאת, ניתוח ההתכנסות של דמפסטר-ליירד-רובין היה שגוי. ניתוח מתוקן פורסם על ידי ס.פ ג'ף וו ב-1983.

מבוא
----

אלגוריתם EM משמש תחליף לאומד נראות מקסימלית במודלים סטטיסטיים שבהם קיים קושי הנובע מקיומם של משתנים מקריים סמויים או נתונים חסרים. במודלים אלו קשה מבחינה טכנית למצוא מקסימום לפונקציית הנראות.

אלגוריתם EM מתחיל עם אומדן התחלתי לפרמטרים (אפשר לקבלו באמצעות שיטות אמידה פחות מדויקות). מתוך האומדן הראשוני מקבלים את ההתפלגות עבור הנתונים החסרים ואת {\displaystyle Q} תוחלת ההתפלגות של לוג הנראות עבור נתונים מלאים. זו עדיין פונקציה של הפרמטרים, כי האומדן משמש אותנו רק כדי לקבל את ההתפלגות לנתונים החסרים. עתה ניתן להשתמש ב-{\displaystyle Q} במקום בפונקציית לוג הנראות, {\displaystyle l}, שבה משתמשים בשיטה של אומד נראות מקסימלי. האומדן החדש לפרמטרים יהיה זה המביא למקסימום {\displaystyle Q}. בניגוד למקרה של אומד נראות מקסימלי, האומדן שקיבלנו עדיין לא אופטימלי ועלינו להציבו שוב כדי לקבל התפלגות משופרת לנתונים החסרים. כך ממשיכים עם האיטרציות עד אשר מגיעים למצב שבו איטרציות נוספות אינן משנות את האומדנים באופן שהוא משמעותי.

תיאור מתמטי
-----------

בהינתן מודל סטטיסטי המורכב ממדידות {\displaystyle x}, משתנים סמויים שאינם נראים או נתונים חסרים {\displaystyle Z} (משתנה מקרי), פרמטרים θ אותם מעוניינים לאמוד ופונקציית הצפיפות {\displaystyle f(\mathbf {x} ,\mathbf {z} ;{\boldsymbol {\theta }})} בהינתן הנתונים המלאים. פונקציית הצפיפות השולית של הנתונים הקיימים היא {\displaystyle f(\mathbf {x} ;{\boldsymbol {\theta }})=\int f(\mathbf {x} ,\mathbf {z} ;{\boldsymbol {\theta }})d\mathbf {z} } ולכן לוג הנראות בהינתן הנתונים הנראים היא {\displaystyle l(\theta )=log(f(\mathbf {x} ;\theta ))}. כאשר אומדים בשיטת הנראות המקסימלית, בדרך כלל, מוצאים {\displaystyle \theta \in \Omega } שיביא למקסימום את {\displaystyle l(\theta )}. אולם בדרך כלל במקרים של נתונים חסרים בדרך כלל מדובר בבעיה טכנית קשה יחסית.

בתנאים מסוימים, אלגוריתם EM מאפשר לעשות זאת על ידי יישום איטרטיבי של שני הצעדים הבאים:

**שלב התוחלת (שלב ה-**{\displaystyle E}**)**: חישוב תוחלת הלוג של פונקציית הנראות לנתונים המלאים, ביחס להתפלגות של {\displaystyle Z} של הנתונים החסרים, בהינתן סדרת התצפיות {\displaystyle \mathbf {x} } והאומדן הנוכחי של הפרמטרים {\displaystyle {\boldsymbol {\theta }}^{(t)}}:

{\displaystyle Q\left({\boldsymbol {\theta }};{\boldsymbol {\theta }}^{(t)}\right)=\int \log(f(\mathbf {x} \mid \mathbf {z} ;{\boldsymbol {\theta }}))f\left(\mathbf {z} ;{\boldsymbol {\theta }}^{(t)}\right)\ d\mathbf {z} =E\_{Z|\theta ^{(t)}}[\log f(\mathbf {x} \mid \mathbf {Z} ;{\boldsymbol {\theta }})]}
**שלב המיקסום (שלב ה-**{\displaystyle M}**)**: מציאת ה-{\displaystyle {\boldsymbol {\theta }}} אשר מביא למקסימום את הפונקציה שחושבה בצעד הראשון:

{\displaystyle {\boldsymbol {\theta }}^{(t+1)}={\underset {{\boldsymbol {\theta }}\in \Omega }{\operatorname {arg\,max} }}\ Q\left({\boldsymbol {\theta }};{\boldsymbol {\theta }}^{(t)}\right)\,}.

מתחילים עם אומדן ראשוני, {\displaystyle \mathbf {\theta ^{(0)}} } (שיכול להתקבל באמצעות שיטה אחרת, פחות מדויקת), ואז חוזרים שוב ושוב על שלב התוחלת ושלב המיקסום ומקבלים סדרה {\displaystyle \mathbf {\theta ^{(0)}} ,\mathbf {\theta ^{(1)}} ,...} של אומדנים שבתנאים מסוימים הולכים ומשתפרים.

משפט התכנסות של האלגוריתם
-------------------------

ג'ף וו הוכיח את משפט ההתכנסות הבא:

בהינתן שההנחות הבאות מתקיימות:

* {\displaystyle \Omega } הוא תת-קבוצה של המרחב האוקלידי ה-{\displaystyle r} ממדי {\displaystyle \Omega \subseteq \mathbb {R} ^{r}},
* הקבוצה {\displaystyle \Omega \_{\theta ^{(0)}}=\left\{\theta :l(\theta )\geq l\left(\theta ^{(0)}\right)\right\}} קומפקטית לכל {\displaystyle l\left(\theta ^{(0)}\right)>-\infty },
* {\displaystyle l} רציפה על {\displaystyle \Omega } וגזירה בפנים של {\displaystyle \Omega },
* הפונקציה {\displaystyle Q({\boldsymbol {\theta }}';{\boldsymbol {\theta }})} רציפה גם ב-{\displaystyle {\boldsymbol {\theta }}} וגם ב-{\displaystyle {\boldsymbol {\theta }}'};

אז כל נקודות הגבול של סדרה {\displaystyle \mathbf {\theta ^{(0)}} ,\mathbf {\theta ^{(1)}} ,...} הן נקודות קריטיות של {\displaystyle l} (נקודה בה הנגזרת מתאפסת או לא מוגדרת) והסדרה {\displaystyle l\left(\theta ^{(0)}\right),l\left(\theta ^{(1)}\right),...} מתכנסת באופן מונוטוני ל-{\displaystyle l\left(\theta ^{\*}\right)} עבור נקודה {\displaystyle \theta ^{\*}}, שהיא אחת מהנקודות הקריטיות של {\displaystyle l}.

אם נניח בנוסף לכך את ההנחות הבאות:

* לפונקציה {\displaystyle l} יש נקודה קריטית יחידה {\displaystyle \theta ^{\*}} שבה מתקבל מקסימום גלובלי,
* וקטור הנגזרות החלקיות של {\displaystyle Q({\boldsymbol {\theta }}';{\boldsymbol {\theta }})} רציף גם ב-{\displaystyle {\boldsymbol {\theta }}} וגם ב-{\displaystyle {\boldsymbol {\theta }}'};

אז הסדרה {\displaystyle \theta ^{(0)},\theta ^{(1)},...} מתכנסת ל-{\displaystyle \theta ^{\*}}.

דוגמה
-----

### התפלגות תערובת של שתי התפלגויות רב-נורמליות

  

נתון מדגם {\displaystyle \mathbf {x} =(\mathbf {x} \_{1},\mathbf {x} \_{2},\ldots ,\mathbf {x} \_{n})} של {\displaystyle n} ווקטורי תצפיות בלתי תלויים מתערובת של שתי התפלגויות רב-נורמליות ממימד {\displaystyle d}, ונניח שקיימים משתנים מקריים סמויים {\displaystyle \mathbf {Z} =(Z\_{1},Z\_{2},\ldots ,Z\_{n})} אשר קובעים מאיזה מרכיב של התערובת מגיעה כל תצפית.

{\displaystyle X\_{i}\mid Z\_{i}=0\sim {\mathcal {N}}\_{d}({\boldsymbol {\mu }}\_{0},\Sigma \_{0})} ו-

{\displaystyle X\_{i}\mid Z\_{i}=1\sim {\mathcal {N}}\_{d}({\boldsymbol {\mu }}\_{1},\Sigma \_{1})},

כאשר

{\displaystyle \operatorname {P} (Z\_{i}=1)=\tau \,} ו-

{\displaystyle \operatorname {P} (Z\_{i}=0)=1-\tau }.

המטרה היא לאמוד את המשקלים של הצירוף הקמור בין שתי ההתפלגויות המרכיבות ואת התוחלות והשונויות של כל אחד מהם:

{\displaystyle \theta ={\big (}\tau ,{\boldsymbol {\mu }}\_{0},{\boldsymbol {\mu }}\_{1},\Sigma \_{0},\Sigma \_{1}{\big )}},

פונקציית הנראות עבור הנתונים המלאים הכוללים וקטור תצפיות {\displaystyle \mathbf {z} }:

{\displaystyle f(\mathbf {x} ,\mathbf {z} \mid \theta )=\prod \_{i=1}^{n}\ [\left((1-\tau )f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{0},\Sigma \_{0})\right)^{1-z\_{i}}\left(\tau f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{1},\Sigma \_{1})\right)^{z\_{i}}]},

כאשר {\displaystyle f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{j},\Sigma \_{j})} הן פונקציות צפיפות של של התפלגויות רב-נורמליות.

הלוג של פונקציית הנראות הוא:

{\displaystyle \log f(\mathbf {x} ,\mathbf {z} ;\theta )=\sum \_{i=1}^{n}\ [(1-z\_{i})\left(\log(1-\tau )+\log f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{0},\Sigma \_{0})\right)+z\_{i}\left(\log \tau +\log f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{1},\Sigma \_{1})\right)]}.

מאחר ש-{\displaystyle \mathbf {z} } מבטא נתונים חסרים נציב במקומו משתנים מקריים:

{\displaystyle \log f(\mathbf {x} ,\mathbf {Z} ;\theta )=\sum \_{i=1}^{n}\ [(1-Z\_{i})\left(\log(1-\tau )+\log f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{0},\Sigma \_{0})\right)+Z\_{i}\left(\log \tau +\log f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{1},\Sigma \_{1})\right)]}.

###### שלב התוחלת

בהינתן האומדן {\displaystyle \theta ^{(t)}}, ההתפלגות המותנה של {\displaystyle Z\_{i}} נקבעת על ידי חוק בייס:

{\displaystyle \tau \_{i,1}^{(t)}:=\operatorname {P} (Z\_{i}=1\mid \mathbf {x} \_{i};\theta ^{(t)})={\frac {\tau ^{(t)}\ f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{1}^{(t)},\Sigma \_{1}^{(t)})}{(1-\tau ^{(t)})\ f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{0}^{(t)},\Sigma \_{0}^{(t)})+\tau ^{(t)}\ f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{1}^{(t)},\Sigma \_{1}^{(t)})}}}.

לכן,

{\displaystyle \operatorname {E} \_{Z|\theta ^{(t)}}[Z\_{i}=1\mid X\_{i}=\mathbf {x} \_{i};\theta ^{(t)}]=\tau \_{i,1}^{(t)}}.

נסמן גם {\displaystyle \tau \_{i,0}^{(t)}=1-\tau \_{i,1}^{(t)}}. לכן,

{\displaystyle Q(\theta \mid \theta ^{(t)})=\operatorname {E} \_{Z|\theta ^{(t)}}[\log f(\mathbf {x} ,\mathbf {Z} ;\theta )]=\sum \_{i=1}^{n}\ [\tau \_{i,0}^{(t)}\left(\log(1-\tau )+\log f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{0},\Sigma \_{0})\right)+\tau \_{i,1}^{(t)}\left(\log \tau +\log f(\mathbf {x} \_{i};{\boldsymbol {\mu }}\_{1},\Sigma \_{1})\right)]}

###### שלב המיקסום

בשלב זה מקבלים אומדנים חדשים לפרמטרים, כאלה אשר מביאים את {\displaystyle Q} למקסימום. נעשה זאת, במקרה המסוים הזה, על ידי גזירה (חלקית) לפי הפרמטרים והשוואה ל-0,

{\displaystyle .{\boldsymbol {\tau }}^{(t+1)}={\underset {\boldsymbol {\tau }}{\operatorname {arg\,max} }}\ Q(\theta \mid \theta ^{(t)})={\underset {\boldsymbol {\tau }}{\operatorname {arg\,max} }}\ \left\{\left[\sum \_{i=1}^{n}\tau \_{i,0}^{(t)}\right]\log(1-\tau )+\left[\sum \_{i=1}^{n}\tau \_{i,1}^{(t)}\right]\log \tau \right\}}

מקבלים,

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

עבור {\displaystyle j=0,1}, מציאת האומדנים החדשים של {\displaystyle {\boldsymbol {\mu }}\_{j}} ו- {\displaystyle {\boldsymbol {\Sigma }}\_{j}},

**הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "http://localhost:6011/he.wikipedia.org/v1/":): {\displaystyle .(\boldsymbol{\mu}\_j^{(t+1)}, \boldsymbol{\Sigma}\_j^{(t+1)}) = \underset{\boldsymbol{\mu}\_j,\Sigma\_j} {\operatorname{arg\,max}}\ Q(\theta \mid \theta^{(t)} ) = \underset{\boldsymbol{\mu}\_j,\Sigma\_j} {\operatorname{arg\,max}}\ \sum\_{i=1}^n \tau\_{i,j}^{(t)} \left\{ -\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) \right\} }**

מקבלים,

{\displaystyle {\boldsymbol {\mu }}\_{j}^{(t+1)}=\left(\sum \_{i=1}^{n}\tau \_{i,j}^{(t)}\right)^{-1}\sum \_{i=1}^{n}\tau \_{i,j}^{(t)}\mathbf {x} \_{i}}     וגם     {\displaystyle {\boldsymbol {\Sigma }}\_{j}^{(t+1)}=\left(\sum \_{i=1}^{n}\tau \_{i,j}^{(t)}\right)^{-1}\sum \_{i=1}^{n}\tau \_{i,j}^{(t)}(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{j}^{(t+1)})(\mathbf {x} \_{i}-{\boldsymbol {\mu }}\_{j}^{(t+1)})^{\top }}.

###### הכללה

ניתן להכליל את האלגוריתם המודגם לעיל עבור תערובות של יותר משתי התפלגויות רב-נורמליות.

הערות שוליים
------------

1. ↑  A. P. Dempster, N. M. Laird, D. B. Rubin, Maximum Likelihood from Incomplete Data Via the EM Algorithm, **Journal of the Royal Statistical Society: Series B (Methodological)** 39, 1977-09, עמ' 1–22 doi: 10.1111/j.2517-6161.1977.tb01600.x
2. 1 2  C. F. Jeff Wu, On the Convergence Properties of the EM Algorithm, **The Annals of Statistics** 11, 1983-03, עמ' 95–103 doi: 10.1214/aos/1176346060
3. ↑  Hastie, Trevor; Tibshirani, Robert; Friedman, Jerome (2001). "8.5 The EM algorithm". *The Elements of Statistical Learning*. New York: Springer. pp. 236–243. ISBN 978-0-387-95284-0.

| בינה מלאכותית |
| --- |
| כללי | מבחן טיורינג • היסטוריה של הבינה המלאכותית • ציר הזמן של בינה מלאכותית • התקדמות הבינה המלאכותית (אנ') • AI-שלמות מערכת מומחה • אסדרת בינה מלאכותית (אנ') • בינה מלאכותית צרה • בינה חישובית • הסברתיות בינה מלאכותית • הפרדוקס של מורבק • סוכן תבוני • אתיקה של בינה מלאכותית |  |
| תחומים | עיבוד שפה טבעית • ראייה ממוחשבת • בינה מלאכותית יוצרת • אומנות בינה מלאכותית |
| סוגי למידת מכונה | מערכת לומדת • למידה מונחית • למידה בלתי מונחית • למידה עמוקה • למידת חיזוק • סיווג בייסיאני נאיבי • רשת בייסיאנית |
| אלגוריתמי למידת מכונה קלאסית | פרספטרון • עץ החלטה • מכונת וקטורים תומכים • Bag of words • אלגוריתם k-מרכזים • אלגוריתם מיקסום התוחלת • הורדת ממד • אלגוריתם שכן קרוב • Q-learning •‏ T-SNE •‏ Tf–idf • חיזוק גרדיאנט |
| למידה עמוקה | רשת עצבית מלאכותית • רשת זרימה קדימה • רשת עצבית רקורסיבית • טרנספורמר • Attention •‏ GAN |
| עיבוד שפה טבעית | מודל שפה • שיכון מילים (אנ') • בלשנות חישובית • תרגום מכונה • חילוץ מידע (אנ') • ניתוח סנטימנט • זיהוי חלקי דיבר (אנ') • מערכת זיהוי דיבור • זיהוי ישויות • כריית טקסט • תיוג תפקידים סמנטי • Word2vec • מודל שפה גדול • GPT •‏ BERT (אנ') • מודל Bag-of-words (אנ') • יצירת טקסט בשפה טבעית (אנ') • מילת עצירה • ניתוח מחרוזות • Stemming (אנ') • למטיזציה (אנ') |
| יישומים לבינה מלאכותית (אנ') | צ'אטבוט • זיהוי דובר • זיהוי עצמים • זיהוי תבניות • עוזר וירטואלי • זיהוי תווים אופטי • מחולל תמונות (הזיות (אנ')) |
| מערכות בינה מלאכותית | אלייזה • ChatGPT •‏ DALL-E •‏ Midjourney •‏ Gemini •‏ Perplexity •‏ GitHub Copilot • דיפ־פייק • סירי • Google Assistant • אמזון אלכסה |
| סוגיות בטיחות בינה מלאכותית (אנ') | סכנה קיומית מבינה מלאכותית כללית • בינה מלאכותית חזקה • יישור בינה מלאכותית (אנ') • בקרת יכולות בינה מלאכותית (אנ') • השתלטות בינה מלאכותית (אנ') • בינה מלאכותית ידידותית (אנ') • התכנסות אינסטרומנטלית (אנ') • סינגולריות טכנולוגית |
| ספריות בשימוש נרחב | TensorFlow •‏ PyTorch •‏ Torch •‏ Hugging Face •‏ Keras •‏ spaCy (אנ') •‏ Caffe |
| לקטגוריית הבינה המלאכותית |