מכוניות אוטונומיות מקדישות שנים למעקב אחר סטים נוקשים של הוראות. מהנדסים כתבו אלפי משפטי "אם-אז". אם הולך רגל חוצה, בלום. אם הרמזור הופך לאדום, עצור. אם הנתיב מתעקל, פנה. גישה זו עובדת כשהעולם מתנהג בדיוק כפי שצופה, אך נהיגה אמיתית היא מבולגנת יותר. ספר חוקים לא יכול לכסות כל דרך עפר בוצית, צומת ללא סימון או רוכב אופניים שמתמרן בין כלי רכב. כשהסביבה משתנה, פקודות מחמירות נשברות. אנחנו זקוקים למערכות שלומדות מהי נהיגה טובה במקום פשוט לעקוב אחר רשימת תיוג.
מעבר לחוקים מקודדים מראש
מערכות אוטונומיות מסורתיות מסתמכות על תכנות מפורש. הן מתפקדות היטב בסביבות סגורות כמו רצפות מחסנים, נתיבים ייעודיים ומזג אוויר צפוי. בכבישים ציבוריים, אותה לוגיקה מתפרקת לעיתים קרובות.
דמיינו אזור בנייה עם שלטים בכתב יד, קונוסים מפוזרים בזוויות מוזרות ואיש סימון המכוון את התנועה. מערכת מבוססת חוקים מחפשת אות תנועה ברור. היא רואה כאוס. ללא חוק ספציפי עבור "אדם באפוד כתום המאותת שמאלה", המכונית קופאת או מנחשת לא נכון. נהגים אנושיים מטפלים בכך באופן מיידי מכיוון שאנו מפרשים כוונה והקשר, ולא רק פיקסלים. אנחנו קוראים את הסצנה. ללמד מכונה לעשות את אותו הדבר דורש גישה שונה מיסודה.
למידה באמצעות צפייה: Inverse Reinforcement Learning
כאן למידת חיזוק הפוכה (Inverse Reinforcement Learning) משנה את כללי המשחק. בלמידת חיזוק (Reinforcement Learning) סטנדרטית, נותנים ל-AI מטרה ופונקציית תגמול. הגעה ליעד במהירות מזכה בנקודות. פגיעה במדרכה גוררת הפסד נקודות. הסוכן (agent) מתהלך בערפול עד שהוא מגלה מדיניות שממקסמת את הציון שלו. אך נהיגה אינה עוסקת אך ורק ביעילות. היא עוסקת בנוחות, בבטיחות, בחוקיות ובמוסכמות חברתיות. כתיבת תגמול מתמטי עבור "נהוג כמו אדם זהיר אך מיומן" היא כמעט בלתי אפשרית.
Inverse Reinforcement Learning הופכת את הבעיה. במקום להגיש ל-AI מטרה, מראים לו דוגמאות. האלגוריתם צופה בשעות של תיעוד נהיגה אנושית. הוא מתבונן מתי האדם מאט, מחליף נתיב מוקדם או מפנה דרך למשאית המתמזגת. הוא לא רק משנן את זווית ההיגוי המדויקת. הוא עובד לאחור כדי להסיק את ה"למה". אולי הנהג האט כי ילד עמד ליד המדרכה, למרות שהרחוב היה פנוי מבחינה חוקית. ה-AI מחלץ את התגמול הנסתר: קרבה להולכי רגל חשובה, גם ללא מעבר חצייה.
על ידי התייחסות לאדם כמומחה שכבר פתר את בעיית האופטימיזציה, האלגוריתם משחזר את פונקציית העלות (cost function) שהמומחה הזה ממזער. ברגע שהמערכת מבינה את ההעדפות הבסיסיות, כמו העדפת בלימה חלקה על פני עצירות חדות או שמירה על מרכז הנתיב על פני קיצורי דרך, היא יכולה להכליל. היא נתקלת בכביש חדש בעיר אחרת ויודעת, בקירוב, מה נהג טוב היה מעריך באותה סביבה לא מוכרת.
קבלת החלטות: Deep Q-Networks
הבנת התגמולים היא רק מחצית מהקרב. מכונית עדיין צריכה לפעול. Deep Q-Networks מטפלות בקבלת ההחלטות על ידי עיבוד נתונים חיישניים כדי לבחור את הפעולה הטובה ביותר.
Q-learning קלאסי קיים כבר עשורים. סוכן לומד את הערך של ביצוע פעולה ספציפית במצב ספציפי. הבעיה היא שמצבי נהיגה אמיתיים הם אינסופיים למעשה. זרם מצלמה אינו עולם רשת (grid world) פשוט. אלו מיליוני פיקסלים המשתנים בשישים פריימים לשנייה, בשילוב עם ענני נקודות lidar, קריאות מהירות ווקטורי GPS.
Deep Q-Networks פותרות זאת על ידי שימוש ברשת עצבית כמקרב פונקציה (function approximator). הרשת מקבלת נתונים חיישניים גולמיים ומוציאה ערך חזוי עבור כל פעולה אפשרית: פנייה שמאלה, בלימה עדינה, האצה, שמירה על מסלול. במקום לאחסן טבלת חיפוש (lookup table) עבור כל תרחיש, הרשת מבצעת הכללה. היא מזהה שכתם כהה בלילה גשום הוא כנראה מכונית חונה, בדיוק כפי שלמדה במהלך אימון בשמש, ומקצה ערך נמוך לפעולת ה"האצה".
האימון כולל שידור חוזר של חוויות (experience replay). המערכת שומרת רגעים מנהיגות עבר, החלפות נתיב מוצלחות, כמעט-תאונות והאטה חלקה, ואז דוגמת אותם באופן אקראי כדי לעדכן את הרשת שלה. זה שובר מתאמים מזיקים ומייצב את הלמידה. לאורך אלפי שעות סימולציה, הרשת לומדת אילו פעולות מובילות להתקדמות בטוחה ואילו מובילות לצרות.
מחברים הכל
אף אחת מהשיטות לבדה אינה בונה נהג מיומן. למידת חיזוק הפוכה (Inverse Reinforcement Learning) ללא מנוע החלטות היא רק צופה. היא יודעת שבני אדם מעריכים נסיעה חלקה, אך היא אינה יכולה לגעת בהגה. רשת Deep Q-Network ללא פונקציית תגמול מוגדרת היטב מבצעת אופטימיזציה לדבר הלא נכון. היא עלולה לגלות שנסיעה במעגלים מונעת התנגשויות בצורה מושלמת, ובכך משיגה ציון גבוה מבלי להתקדם לשום מקום.
בשילוב, הן יוצרות לולאה עוצמתית. Inverse Reinforcement Learning צופה במומחים אנושיים ומזקקת פונקציית תגמול הלוכדת סדרי עדיפויות מהעולם האמיתי. לאחר מכן, ה-Deep Q-Network משתמשת בפונקציית התגמול הזו כדי לאמן את עצמה באמצעות ניסוי וטעייה, תוך עיבוד נתוני חיישנים בזמן אמת לבחירת פעולות. הבינה המלאכותית לומדת התנהגויות מורכבות באמצעות תצפית, אך גם באמצעות תרגול.
שקלו מקרה של שילוב בכביש מהיר. רכיב ה-Inverse Reinforcement Learning הסיק שנהגים אנושיים מאזנים בין התאמת מהירות לבין קבלת מרווח (gap acceptance). ה-Deep Q-Network מקבלת את אות העלות המורכב הזה ומתרגלת שילוב עשרת אלפים פעמים בסימולציה. היא לומדת מתי להאיץ, מתי להישאר מאחור, ומתי המרווח צר מדי. התוצאה אינה תוכי שחוזר על תנועות אנושיות מוקלטות. זוהי מערכת שהפנימה את הלוגיקה ויכולה להסתגל כאשר הכביש רטוב או כאשר המרווח קטן מהרגיל.
