Q-Learning על רובוטים שיודעים לדחות סיפוקים

מיועד ל- מתחילים (כתבה קצת טכנית)

נכתב על ידי תמיר נווה

אפשר להתווכח על זה, אבל נניח שמסכימים שמטרת העל של בני האדם הינה להיות מאושרים, ז”א כל פעם שאדם שמח הוא מקבל על כך תגמול פיסיולוגי. ז”א שאנו כבני אדם שואפים להגיע כל הזמן לתגמול הזה. כל אדם פיתח את האסטרטגיות שלו איך להגיע למטרה הזו. למשל יהיו כאלו שיעשו ספורט, יהיו כאלו שיעסקו באומנות וכו’.

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

מה קורה כשיש דילמות ?

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

לתחום הלמידה החיזוקית Reinforcement Learning יש הרבה במשותף עם בקרה אופטימלית Optimal Control, והוא עוסק במציאת הפעולות שימקסמו פונקציית תגמול בהינתן תגובות מהסביבה.

תודה ל Megajuice

את החישוב המתמטי של מה עדיף בדילמות הללו (פעולה עם תגמול מיידי או פעולה עם תגמול עתידי) בא לפתור אלגוריתם Q-Learning. האות “Q “מסמלת Quality במשמעות של מה הערך שבפעולה מסוימת, ז”א האם תביא לתגמול עתידי יותר או פחות.

האלגוריתם מחזיק מטריצה של ערכים מספריים שמציינים עד כמה משתלם לעבור מכל מצב לכל למצב אחר. למשל אם האומן שלנו קם בבוקר יום של חול ומתלבט אם להמשיך ליצור או ללכת לסרט אזי משתלם לו להמשיך ליצור אבל אם אותה דילמה תוקפת אותו בבוקר יום שבת אזי ייתכן ודווקא יותר משתלם לו ללכת לסרט כדי להתרענן ולקבל השראה כי המוח זקוק ליום מנוחה בשבוע (נניח). ז”א שבפונקצית התגמול יש חשיבות מאיזה מצב (יום חול או יום שבת) לאיזה מצב (ללכת לסרט או להמשיך לעבוד על היצירה) עוברים.

כמו כן ככל שמנסים יותר פעולות מגוונות מעדכנים את האסטרטגיות של איך הכי נכון לפעול כדי לקבל תגמול, המישוואה הבסיסית של האלגוריתם הינה:

מישוואה בסיסית של Q-Learning

ומטרתה לעדכן מהו הערך שבלבצע פעולה כלשהיא על סמך המידע החדש שמגיע בכל רגע נתון.

ערך זה נקבע ע”י הערך הידוע עד כה שבלבצע פעולה ועוד הערך של הפעולה הבאה המשתלמת ביותר.

ובדוגמה שלנו, האומן שקם ביום חול ומתלבט אם ללכת לסרט או להמשיך לעבוד על היצירה שלו ייקח בחשבון את ההנאה שבללכת לסרט אבל גם את ההנאה שבהצגת עבודתו המוגמרת אם לא יילך כעת לסרט ויעבוד על יצירתו. שיקולים אלו בחשיבתו של אותו האומן נולדו עקב ניסוי וטעייה של שנים בהם עבד על פרויקטים והשלים אותם בזמן או שלא השלים אותם בזמן וכך למד את המשמעות והערך שבכך. אותו ניסוי וטעיה הינם מהות המשוואה הנ”ל.

אלגוריתם Q-Learning הוצג לראשונה ב 1989 כעבודת הדוקטורט של Watkins תחת השם: “Learning from Delayed rewards” ז”א ללמוד מתגמולים דחויים.

ב 2014 הראו Google DeepMind שימוש ב Q-Learning עם CNN (ז”א עם למידה עמוקה) ויצרו אלגוריתמים שמשחקים משחקי אטארי ישנים ברמה של בני אדם. לזה קראו Deep Reinforcement Learning למידה חיזוקית עמוקה.

נראה דוגמא נחמדה של אימון רובוט עם ארבע רגליים שלומד איך ללכת קדימה.

בדוגמה זו המשוב ניתן באופן אוטומטי ע”י חיישן אולטרא-סוני שמודד מרחק של הרובוט מנקודת היעד, ז”א כשהמרחק נהיה קצר יותר זה סימן לרובוט שהפעולות שהוא עושה הם נכונות וכך הוא לומד מה כן לעשות כדי ללכת קדימה ומה לא לעשות. נשים לב שאותם ערכי Q ז”א מה עדיף לעשות בכל מצב הינם בהתחלה אקראיים ולכן בתחילת האימון הרובוט מתנענע באופן אקראי. (אולי כמו שהאומן שלנו היה בגיל הילדות או ההתבגרות וניסה כל מיני דברים באופן לא עיקבי)

גם פה אפשר שיש פעולות שלא משתלמות בטווח המיידי אבל כן בטווח הארוך:

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

מסקנה: אפילו כדי ללכת צריך ללמוד לדחות סיפוקים! נסו להסביר זאת לפעוט בן שנתיים…

רוצים ללמוד עוד על למידה חיזוקית ברמה הפרקטית ובעברית, כנסו לכאן!