410 likes | 569 Views
מודל מרקוב סמוי Hidden Markov Models (HMM). a11. S 1. S 2. S 3. a12. a13. a21. a31. a22. a33. a32. a23. נתחיל במודל מרקוב פשוט: נתונה מערכת בזמן בדיד שיכולה להיות ב3 מצבים שונים S1 S2 S3
E N D
a11 S1 S2 S3 a12 a13 a21 a31 a22 a33 a32 a23 נתחיל במודל מרקוב פשוט: נתונה מערכת בזמן בדיד שיכולה להיות ב3 מצבים שונים S1 S2 S3 ונתונות הסתברויות המעבר ממצב אחד לשני (a12 - הסתברות מעבר ממצב S1 למצב S2 ביחידת זמן אחת. כאשר הסתברויות המעבר למצב הבא תלויות רק במצב הנוכחי ולא במצבים שקדמו לו- מודל מרקוב מסדר ראשון)
a11 a12 a13 a21 a22 a23 a31 a32 a33 0.3 0.4 0.3 0.1 0.9 0 0 0 1 A= דוגמא כעת שמים את המקדמים aij במטריצה A: סכום כל שורה חייב להיות שווה לאחד מכיוון שזהו סכום ההסתברויות של כל המעברים האפשריים ממצב מסוים. כעת אם נתון וקטור הסתברויות P(t=0)=(p1 p2 p3) בזמן מסוים (למשל t=0) ניתן לחשב בקלות את ההסתברויות בכל זמן עתידי: P(t=1)=P(t=0)*A
כעת נרחיב למקרה של מודל מרקוב סמוי. במודל מרקוב רגיל אנו רואים מה הוא המצב (s1 למשל) הנוכחי, וכך יכולים להעריך את הסתברויות המצב הבא. במודל מרקוב סמוי, התצפית שלנו לא אומרת בפרוש מה הוא המצב הנוכחי, אלא היא פונקציה הסתברותית כלשהי של המצב הנוכחי.
דוגמא נניח ישנם שני מצבים S1 S2 כאשר S1 מייצג מטבע מסוים ו-2S מייצג מטבע אחר. S1 – עץ - הסתברות 0.2. פלי - הסתברות - 0.8. 2S – עץ - הסתברות 0.7. פלי - הסתברות - 0.3. אנו רוצים לדעת מה ההסתברות שביחידת הזמן הבאה נקבל 1S . כאשר במודל מרקוב אנו יודעים מהו המצב הנוכחי (S1 או S2), במודל מרקוב סמוי אנו רואים רק מה התקבל עץ או פלי. (כשבמקרה שלנו עץ נוטה להעיד על מצב S2 ופלי על S1)
מאפיינים של מודל מרקוב סמוי (דוגמא): N – מספר המצבים (2= N1S – מטבע ראשון 2S - מטבע שני) M – מספר אפשרויות התצפית (2=M : עץO1= , פליO2=) A – מטריצת המעבר בין מצבים (aij) B - הסתברות לתצפית מסוימת במצב נתון: j=1…N k=1…M כלומר B1(2) הינה ההסתברות שנקבל פלי כאשר משתמשים במטבע הראשון. - וקטור התפלגות התחלתית P(t=0)=(p1 p2) כאשר :
לסיכום: מודל מרקוב סמוי מאופיין ע"י השלשה:
אפשרויות תצפית רציפות עד עכשיו דיברנו על מספר סופי של אפשרויות תצפית - כלומר במצב מסוים יתכנו O1,O2…On ניתן לדבר גם על אפשרויות תצפית רציפות – כלומר שכל מצב נותן התפלגות רציפה של אפשרויות תצפית. למשל במקרה של שני מצבים שהתצפיות האפשריות בכל מצב נתונות ע"י התפלגות גאוסית:
שלושת הבעיות הבסיסיות שצריך לדעת לפתור בHMM 1. בהינתן מודל מרקובי מסוים ( ) מה ההסתברות לרצף תצפיות מסוים (o1o2o3o4o5) ? (Evaluation problem) 2. בהינתן רצף תצפיות מסוים והמודל המרקובי, מהו רצף המצבים ההגיוני ביותר שיצר את רצף התצפיות? 3. בהינתן רצף תצפיות מסוים וכן N (מספר מצבים) ו-M (מספר סוגי תצפיות) אך לא נתונים A,B ופאי, איך נמצא מודל מרקובי שיתאר בצורה הכי טובה את התצפיות?
ראשית נראה שבמודל מרקוב רגיל הפתרון הוא פשוט: נתון תהליך מרקובי (בעל שני מצבים) – מה ההסתברות לרצף הבא: s1s2s2s1s1s2 (אין הבדל בין מצבים לתצפיות במרקוב רגיל) הפתרון הוא על פי ההגדרות שהגדרנו מקודם: p1*a12*a22*a21*a11*a12 כלומר בשלב ראשון ההסתברות ההתחלתית, ולאחר מכן מכפלה בהסתברויות המעבר.
לעומת זאת בבעיית מרקוב סמויה נתונה (נתון ) הפתרון מורכב יותר. מכיוון שאנו מדברים על תצפיות ולא על מצבים צריך לחשב את ההסתברות של כל המצבים האפשריים ולהכפיל אותן בהסתברויות המופע המתאימות, במקרה שלנו: o1o2o2o1o1o2(o – תצפית להבדיל מ s – מצב) קיבלנו חישובי הסתברויות שאותם אנו צריכים לסכום. כשכל חישוב הוא מכפלה של 2*T=12 איברים. קצת יותר מדי.
קיבלנו כמות חישובים בסדר גודל של למשל N=5 T=100 נותן לנו בערך חישובים אנו זקוקים לאלגוריתם יעיל יותר.
Forward algorithm נגדיר משתנה חדש : שמשמעותו ההסתברות לרצף התצפיות עד לזמן t ושהמצב בזמן t הוא i. כאשר מההגדרה כעת צעד האינדוקציה הוא והחישוב של ההסתברות :
מבנה הסבכה של התהליך a2(1) a3(1) a1(1) a11 a11 b1 b1 a21 a21 a12 a12 a3(2) a2(2) b2 a1(2) b2 a22 a22 a מסמן -
דוגמא הבעיה שלנו : מה ההסתברות של o1o2o3o4o5o6 ? כאשר יש שני מצבים אפשריים ושתי תצפיות אפשריות
דוגמא ולבסוף אנו סוכמים את שתי התוצאות האחרונות:
דוגמא אם נחזור אל הסבכה נראה שבכל שלב יש 4 חישובים למעבר לשלב הבא – כלומר N בריבוע נכפיל את זה בT (מספר השלבים), ונקבל חישובים. N=5 T=100 ייתן לנו 2500 חישובים לעומת שקיבלנו מקודם.
שלושת הבעיות הבסיסיות שצריך לדעת לפתור בHMM 1. בהינתן מודל מרקובי מסוים ( ) מה ההסתברות לרצף תצפיות מסוים (o1o2o3o4o5) ? Evaluation problem 2. בהינתן רצף תצפיות מסוים והמודל המרקובי, מהו רצף המצבים ההגיוני ביותר שיצר את רצף התצפיות? 3. בהינתן רצף תצפיות מסוים וכן N (מספר מצבים) ו-M (מספר סוגי תצפיות) אך לא נתונים A,B ופאי, איך נמצא מודל מרקובי שיתאר בצורה הכי טובה את התצפיות?
אלגוריתם ויטרבי (Viterbi) אלגוריתם ויטרבי הינו אלגוריתם יעיל למציאת רצף המצבים הסביר ביותר בהינתן סדרת תצפיות ומודל מרקובי סמוי. האלגוריתם משתמש בעובדה שחישוב המצב הסמוי הנוכחי תלוי רק בתצפית הנוכחית ובמצב הסמוי הקודם הסביר ביותר.
אלגוריתם ויטרבי (Viterbi) מתקדמים עם הזמן t וכל פעם מסתכלים לאחור מהי ההסתברות הגבוהה ביותר להגיע למצב הנוכחי (דלתא), וכך יוצרים שוב מבנה סבכה בדומה לאלגוריתם הForwrad, רק שבמקום סכימה יש בחירת מקסימום. כאשר המצבים שנתנו את ההסתברויות המקסימליות נשמרים בפסיי. לבסוף בוחרים את הדרך בעלת ההסתברות הגבוהה ביותר. (הדגמה בעמוד הבא) שוב, כמו באלגוריתם הקודם, כמות החישובים בעזרת האלגוריתם יורדת בצורה משמעותית והופכת את המימוש לאפשרי.
שלושת הבעיות הבסיסיות שצריך לדעת לפתור בHMM 1. בהינתן מודל מרקובי מסוים ( ) מה ההסתברות לרצף תצפיות מסוים (o1o2o3o4o5) ? Evaluation problem 2. בהינתן רצף תצפיות מסוים והמודל המרקובי, מהו רצף המצבים ההגיוני ביותר שיצר את רצף התצפיות? 3. בהינתן רצף תצפיות מסוים וכן N (מספר מצבים) ו-M (מספר סוגי תצפיות) אך לא נתונים A,B ופאי, איך נמצא מודל מרקובי שיתאר בצורה הכי טובה את התצפיות?
להבדיל משתי הבעיות הקודמות שניתן להן פתרון אנליטי, לבעיה השלישית (training) אין צורה אנליטית להגיע לפתרון למיקסום ההסתברויות של התצפיות. למרות זאת ניתן באמצעות מספר אלגוריתמים (למשל גירסה של expectation maximization של Baum & Welch) להגיע למקסימום מקומי בצורה איטרטיבית.
סוגים של מודלי מרקוב מודל מרקוב ארגודי הינו מודל שמכל מצב בו ניתן להגיע למצב אחר במספר סופי של צעדים. מודל מרקוב משמאל לימין הינו מודל שמכל מצב ניתן לעבור למצב בעל אינדקס גבוה יותר (או להישאר באותו מצב) אך לא למצב בעל אינדקס נמוך יותר:
סוגים של מודלי מרקוב המודל משמאל לימין מבוטא ע"י מטריצת מעבר משולשת עליונה, במקרה שלנו : מודל זה מבטא התקדמות של תהליך מההתחלה לסוף.
שימוש במודל מרקוב סמוי אחד השימושים העיקריים בhmm הוא זיהוי דיבור. פונמה הינה יחידת הדיבור הבסיסית (באנגלית ישנן כ-45 פונמות שונות). למשל במילה cat ישנן שלוש פונמות: /k/ /a/ /t/
דיבור מהיר יראה כך: k-a-t דיבור איטי יותר יראה כך: k-a-a-a-t ולכן השימוש במודל מרקובי הוא הגיוני – אותו מצב יכול לחזור על עצמו מספר פעמים. כאשר התצפיות שלנו הינן מקדמים קפסטרליים (cepstral coefficients) שמבטאים מידע על התפלגות התדרים, שנלקחו בפרקי זמן קצרים. מכיוון שהמקדמים הנ"ל לא מעידים בצורה חד ערכית על המצב הנוכחי – כלומר איננו יודעים בוודאות מהו המצב הנוכחי – המודל הוא מרקובי סמוי.
כל פונמה מחולקת למספר מצבים (לדוגמא 3 – התחלה אמצע וסוף הפונמה) כך שהמילה שלנו מחולקת כך: /silence-k-a/ /k-a-t/ /a-t-silence/
כעת ניתן ליצור מודל מרקובי לכל פונמה שיכיל שלושה מצבים – יש ליצור 45 מודלי מרקוב שונים. החיסרון הוא שהסתברות לכל פונמה עומדת בפני עצמה ואין התייחסות לרצף הפונמות. גישה שכן מתייחסת לרצף הפונמות היא לבנות מודל מרקובי של 3 פונמות (טריפון) בבת אחת – בעל 9 מצבים. החיסרון הוא שיש צורך ב45 בחזקת 3 מודלים מרקוביים, וכדי לאמן אותם יש צורך בכמות עצומה של נתונים שעליהם יבוצע האימון.
לסיכום – אם יש לנו מילה שאנו רוצים לזהות, אנו מוציאים את המקדמים הקפסטרליים של המקטעים שבה, ואז אנו יכולים לבדוק מהו המודל המרקובי הסביר ביותר שגרם לתצפיות אלו (מבין המודלים שבידינו) החישוב ייעשה בעזרת הפיתרון לבעיה הראשונה (Forward algorithm)
אשכול בעזרת HMM אנו רוצים לאשכל את O1,O2 …ON (O1,O2 …ONמבטאים סדרות של תצפיות במקטעים באורך T1,T2…TNבהתאמה) למשל O1=O1O2O3O4O5O6O7כאשר T1=7
אשכול בעזרת HMM שלב ראשון: בחירת מספר מצבים (N) בחירת התצפיות האפשריות במקרה הבדיד (לדוגמא 1-6 בקובייה) או בחירת צורת התפלגות התצפיות (לדוגמא גאוסי רב מימדי)
אשכול בעזרת HMM שלב שני: לכל Onנבצע אימון (ע"י Baum & Welch למשל) למציאת מודל הHMM הסביר ביותר שיוגדר כ-
אשכול בעזרת HMM שלב שלישי: יצירת מטריצת מרחקים (NxN) בין כל סדרות התצפיותO1,O2 …ON. (כמובן אפסים באלכסון) חישוב מרחק בין שתי סדרות נעשה ע"י הנוסחה הבאה:
אשכול בעזרת HMM שלב רביעי: אשכול בעזרת מטריצת המרחקים, למשל: אשכול היררכי בין כל רצפי התצפיות שנעצר או כשהאשכול מגיע למספר הקבוצות הרצוי (למשל אם אנו יודעים את מספר המילים שאנו מנסים לאשכל) או כשהמרחק בין שתי קבוצות עובר סף מסוים.
נ.ב. החלטה של האקדמיה ללשון העברית: "שמות שהתגלגלו לעברית מן הארמית והמשמשים בצורת נקבה, כגון דוגמה, נכתבים בה' בסופם. דוגמות נוספות: סדנה, טבלה, פסקה, עסקה, קופסה, גרסה. הוא הדין בשמות כגון משכנתה, אסמכתה, אתנחתה, בדותה. יוצא מן הכלל כתיב המילה סבתא". חשוב לציין שההחלטה הזאת אינה מתייחסת ללשון רבים. בלשון רבים, ההטמעה לעברית עוד לא הושלמה, והאקדמיה מתירה להשתמש בצורת הריבוי הארמית דוגמאות.
קריאה מומלצת ספר: Fundamentals of speech recognition by L. Rabiner & juang. p 321-389. L. Rabiner, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition זיהוי דיבור – רון משה הכט (מצגת) Applying HMM http://en.wikipedia.org/wiki/Viterbi_algorithm http://en.wikipedia.org/wiki/Hidden_Markov_model