310 likes | 483 Views
הפקולטה להנדסת חשמל המעבדה לבקרה ורובוטיקה. מגישים: משה שגיב רועי דימינטשטיין מנחה : כפיר לוי. מערכות לומדות מימוש סוכן לומד המשחק פקמן. מבנה המצגת. הצגת הנושא מימוש האלגוריתמים סוכן אמיץ/פחדן התוכנה הדגמה תוצאות ומסקנות שלבים בפיתוח. הצגת הנושא. למידה ע"י חיזוקים
E N D
הפקולטה להנדסת חשמל המעבדה לבקרה ורובוטיקה מגישים: משה שגיב רועי דימינטשטיין מנחה: כפיר לוי מערכות לומדות מימוש סוכן לומד המשחק פקמן
מבנה המצגת • הצגת הנושא • מימוש האלגוריתמים • סוכן אמיץ/פחדן • התוכנה • הדגמה • תוצאות ומסקנות • שלבים בפיתוח
הצגת הנושא • למידה ע"י חיזוקים • עבודות קודמות בנושא • מוטיבציה
למידה ע"י חיזוקים • מהי למידה ע"י חיזוקים? • הצגת המודל • מצבים אפשריים, פעולות אפשריות, פונקצית מעבר, פונקצית מדיניות ופונקצית רווח.
עבודות קודמות בנושא • אלגוריתם Sarsa • מתבסס על חישוב תוחלות • אלגוריתם CVaR • פיתוח המשוואה • משערך פונקצית צפיפות הסתברות במקום תוחלת • גישת actor-critic:
מוטיבציה • השוואה בין Sarsa ל- CvaR • יצירת סוכן אמיץ/פחדן
מימוש האלגוריתמים - Sarsa • האלגוריתם במבט על: • מתחילים ממדיניות אקראית • בוחרים פעולה למצב הנוכחי לפי פונקצית המדיניות • צופים בערכי התצפית (המצב הבא שהתקבל, הרווח וכד'). • עדכון פונקצית התגמול , Q, עבור המצב ופעולה לפי הנוסחא:
מימוש האלגוריתמים - Sarsa • Bellman error • מדד למתי הסוכן למד "מספיק" ויש לעדכן את המדיניות.
מימוש האלגוריתמים - Sarsa • בעיה: נניח מצב בו הפקמן מוצא דרך המניבה רווחים חיוביים מאוד, אך היא איננה הדרך האופטימאלית. מצב זה נקרא exploitation • פתרון: נוסיף אקראיות לבחירת הפעולה ובכך נאפשר exploration.
מימוש האלגוריתם - CVaR • שערוך פונקצית צפיפות ההסתברות • Particles • פיתוח לפי המאמר המראה את התלות בין צפיפות ההסתברות של המצב הנוכחי לזו של המצבים האחרים. • שימוש ב- particles לשערוך
מימוש האלגוריתם - CVaR • האלגוריתם במבט על • מאתחלים עבור כל מצב פעולה Kparticles מפולגים יוניפורמית בגובה 1/K ( אין בידינו מידע עדיין). • עבור המצב הנוכחי בוחרים פעולה לפי פונקצית המדיניות. • צופים בערכי התצפית ( הרווח והמצב הבא). • מזיזים מספר particles קבוע מראש לפי הנוסחא: כאשר p , q מייצגים שני particles אקראיים ו-v מיצג את מיקומם.
מימוש האלגוריתם - CVaR • מדד דואלי לשגיאת bellman • יצירת מיצוע על פונקציות צפיפות הסתברות של המצב הנוכחי והמצב הבא נסמן f , g. • יצירת פונקציות הסתברות מצטברת: F, G. • מכך ש: (הרווח המהוון המצטבר של המצב הנוכחי צריך להיות "קרוב" לזה של המצב הבא). • נקבל שהביטוי הבא צריך להיות קטן
סוכן אמיץ/פחדן • גזירת התנהגות אמיצה/פחדנית מפונקצית ההסתברות • יצירת פונקצית הסתברות מצטברת • שערוך חלק עליון/תחתון של פונקצית ההסברות
סוכן אמיץ/פחדן • אמיץ: "אם אני מצליח אז אני רוצה להצליח הכי הרבה שאפשר" • פחדן: "אם כבר נפלתי אז אפול פחות"
התוכנה • פותחה בשפת Java – מבוססת תכנות מונחה עצמים. • כל אלגוריתם מומש כאובייקט היורש מאובייקט אבסטרקטי הנקרא "מוח" ( Brain בתוכנה) • מאפשרת reuse והרחבה ל"מוחות" אחרים • הפרדה מלאה בין מימוש האלגוריתמים למשחק עצמו. • תיעוד עפ"י קונבנציות – javadoc • UML
תוצאות ומסקנות • קריטריוני ההשוואה מתבססים על איסוף נתונים אונליין (תוך כדי ריצה) של הרווח המהוון בנקודות דגימה שונות. • נתונים אלו נותחו אופליין בעזרת matlab. • כל הגרפים, פרט לגרפים האופייניים מהווים אינטרפולציה של 10 הרצות של המשחק, כאשר כל הרצה היא למידה של כחצי שעה. • מסקנה: הפקמן עבד קשה!!!
הפקמן מינקות לבגרות • הרצה ראשונית של Sarsa – • מסך גדול, ללא מפלצת • הפקמן נתקע בקירות הוספת עונש על מצב stand. • עדכון כעבור מספר קבוע של צעדים ( לפני bellman error) • עדכונים מהירים לומד מסלול קצר, נמנע מ"שיגעון" יותר מהר. • רועי: "הוא לומד, הוא לומד..".
יש "התבייתות" על המטרה ברגע שהוא קרוב אליה בשאר המקומות המצב נראה אקראי ( המסך עדיין גדול) • משה: "יש פה למידה" • הוספת אקראיות, הגדלת הזמן בין כל עדכון (עדיין קבוע) • כאשר יש הרבה אקראיות הוא נחלץ יותר מהר מ"שטויות". • מסקנה: • עדכונים מהירים למידה התחלתית יותר מהירה • עדכונים יותר ארוכים התכנסות יותר טובה
תמיד צריך אקראיות "לתת לו סטירות כאשר הוא נתקע". • רעיון: להתחיל עם אקראיות רבה ועם הזמן להקטין אותה. • הוספת שגיאת בלמן • הקטנת מסך • הוספת מצב fast forward • יש למידה + התכנסות • הוספנו מפלצת • רועי: "זה עובד!!!!!!!!!!"