close menu

המאמר: Mastering Diverse Domains through World Models

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

ואפילו לא צריך בני אדם ביוטיוב שיראו לו איך משחקים.

המאמר: Mastering Diverse Domains through World Models
בנוסף,ככה על הדרך הוא גם למד לשחק באטארי, Control suit, DMLab. הוא סקיילאבילי ביחס לכוח העיבוד ומכליל יותר טוב בהמון סביבות ביחס להמון אלגוריתמים אחרים.

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

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

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

כן! למצוא (!!) את היהלום. אין לנו מושג איפה הוא יהיה, צריך לחפש.

בקיצור: לתכנן כמה מאות אלפי (אם לא מיליוני) צעדים מראש.
הוא באמת עשה את כל זה?
הכותבים הציגו סרטונים לא חתוכים של ריצות (מאפס) שבמהלכן DreamerV3 אסף יהלומים. קשה להתווכח עם זה: הוא נראה גם מצליח בתנאי התחלה רבים וככל הנראה באמת מבין מה צריך לעשות.
חלק מתנאי ההתחלה הללו קשים במיוחד ודורשים הרבה מאד חיפוש חופשי בעולם אחר משאבים ספציפיים הרחוקים מאד מהסוכן, הוא נדרש לשחייה ארוכה במים ,חציית הרים, חפירות עמוקות וטיול במערות תת קרקעיות. הReward מסופק רק ליהלום הראשון בכל פרק, כך שהסוכן לא מקבל כמעט אף תמריץ.
יעילות דאטה:
הסוכן מפגין יעילות מדהימה ביחס לכמות הדאטה עליה התאמן: בניסוים שערכו נראה שהסוכן פי 130 (!!!) יותר יעיל מIMPALA למשל.
סקיילאביליות:
הכותבים מציגים יכולת מעניינת שלא דובר עליה לפני כן הרבה בRL: הסוכן נראה סקיילאבילי ביחס לגודל המודל בו.
אמנם יכולת זו יכולה לעצבן את אלו שאין להם מספיק משאבי מחשוב לחשוב בכלל על סקיילאביליות אבל זוהי יכולת חשובה במיוחד שכן על מנת להשיג סוכן יותר טוב, ישנה דרך פשוטה שאינה דורשת זמן אנושי: עוד כוח עיבוד.
יכול להיות שזו נקודת מפנה בRL כמו זו שקרתה בNLP: סוכנים ענקיים יוכלו לפתור בעיות קשות יותר ומסובכות יותר שלא היו אפשריות קודם לכן.
איפה זה פוגש אותנו? איזה כיף זה RL במציאות:
נורא נחמד לראות סרטונים של PPO מכסח את אלוף העולם האנושי בסטארקראפט אבל מה ששוכחים לציין הוא שאם תנסו לאמן אותו בעצמכם תגיעו מהר מאד לבעיה: הוא לא עובד.
לא כי PPO לא עובד..

האמת? PPO לא עובד. לא הPPO שכתוב במאמר לפחות. הכותבים שכחו לציין במאמר המון פרטים שבלי כל אחד מהם האלגוריתם פשוט לא לומד כלום. את הפרטים ה"סודיים" הללו תוכלו למצוא במימוש הפופולרי של Stable Baselines ובקושי מדברים עליהם במאמרים או בהרצאות על PPO.

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

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

אחת הבעיות הגדולות של RL שמשום מה לא מדברים עליה מספיק היא ההיפרפרמטרים של האלגוריתמים – חיפוש היפרפרמטרים בפני עצמו לא כיף בכלל במודלים פשוטים אז אם לוקחים בחשבון גם את הזמן שלוקח למודל "לשחק".. הסיפור רק הופך ליותר כבד ולא כיף.
ועוד פרט קטן – הSlow-start של RL: סוכני RL מתנהגים שונה ממודלים רגילים בזמן האימון: לא נראה שהם לומדים יותר מידי בתחילת האימון והלמידה עצמה יכולה להגיע לפעמים רק בשלב מאוחר באימון, למשל IMPALA (שנחשב סוכן חזק מאד) נשאר עם תוצאה כמעט אפסית לאורך 10 מיליון הצעדים הראשונים (!!) באימון של DMLab ורק לאחר מכן הלימוד עצמו באמת מתחיל. הסוכן החדש מתחיל לצבור לעצמו ניקוד כבר באיזור הצעד המיליון ואפילו קצת לפני.
אז לגבי RL בעולם האמיתי: לא רק שזה לא יציב, רגיש להיפרפרמטרים, אי אפשר לסמוך על המאמרים בשביל הפרטים הקטנים, צורך הרבה כוח עיבוד ובכללי תחום קטן יותר משאר תחומי הML ולכן אין בו הרבה תשתיות: אתם אפילו לא תהיו בטוחים אם יש לכם איזה באג או שפשוט צריך לחכות עד שהסוכן יתחיל ללמוד בעוד שבוע.
הסוכן החדש של דיפמיינד
כאן נכנס לתמונה הסוכן החדש של דיפמיינד: DreamerV3.
הסוכן מגיע לתוצאות אל-אנושיות בשלל משחקים וסביבות עם אותם ההיפרפרמטרים ואפילו יותר: הסוכן מנצח בהרבה סוכנים שנבנו במיוחד לסביבות מסוימות!
הטריק הגדול הוא נרמול מיוחד שהציגו במאמר לReturns על פי Percentiles ללוס אנטרופיה וגם נרמול וייצוב לוס הKL של הסוכן.

יש עוד כל מיני טריקים הם למשל לא לשמור בReplay Buffer משחקים בהם הסוכן לא קיבל Reward או לעצור משחקים בהם הסוכן קיבל פסילה כלשהי (ולא לחכות שיפסל לחלוטין ויגמרו לו החיים)

חשוב כאן להוסיף מילה טובה לכותבים שדאגו במיוחד להעיף כל מה שלא נחוץ על מנת לגרום לסוכן לעבוד במאמר ו(כנראה) בקוד העתיד להיות משוחרר בקרוב.

היה נחמד אם מאמרים נוספים היו הולכים בדרך זו.

ארכיטקטורת הסוכן בנויה משלושה חלקים:
  • מודל ה-סביבה (World model) שבנוי מencoder decoder (ממש Autoencoder) כשביצוג הנסתר הנלמד משתמשים על מנת לחזות את המצב הבא אליו הסביבה תגיע בהנתן פעולה מסוימת ואת הReward אותו הסוכן יקבל בהנתן אותו המצב. חלקים ספציפיים במודל הם עם Feedback (כמו RNN) וחלקים אחרים לא. למודל יש 6 יציאות שונות אותן הוא מנסה לחזות בכל שלב.
  • רשתות Actor וCritic המקודדות את הסביבה העתידית אותה חזה מודל העולם ועליהן עבור מצב מסוים להחזיר את הRewardים העתידיים (עם Discount וכל הטריקים הרגילים) על סמך התחזית העתידית של מודל העולם (שימו לב! זו תחזית על העתיד על סמך תחזית על העתיד). עוד טריק שהם הוסיפו פה הוא שתחזית הReturns מתבצעת ברגרסיה בדידה עם טריק הtwohot. כך הם מנרמלים את תוצאות הרשת ושומרים על יציאות מנורמלות. ועוד טריק נוסף הוא נרמול האנטרופיה לאקספלורציה באמצעות חלון נע בזמן.
טריק חשוב:
בכל המאמר יש טריקים הקשורים לנרמול (הם באמת נרמלו כל דבר אפשרי) אבל טריק אחד בולט מעל השאר, לגבי הרשת הActor:
כאשר הRewards דלילים, סטיית התקן של הReturns קטנה ולכן הם לא יכולים לנרמל באמצעותה ובכך המודל נפגע.
הטריק מטרתו היא להפחית את הReturns הגדולים מבלי לפגוע בReturns הקטנים. עבור טווחים ספציפים בReturns הם חלקים את הערך בקבוע כלשהו בו הם דנים במאמר.
עבור פעולות בדידות הם לומדים עם Backprop ועבור פעולות רציפות הם לומדים עם Reinforce.
מכיוון שRewards דלילים יוצרים מצב בו התפלגותם לא גאוסיאנית בכלל: הרבה ערכים נמוכים ומידי פעם ערכים חריגים גבוהים.
נוצר מצב שהרשת לומדת בעיקר ממשחקים קלים בהם היא קיבלה Reward מידיים קטנים על כל מיני דברים ובכך נפגעת יכולת האקספלורציה שלה, על מנת לתקן זאת הם מנרמלים אותם בחלון נע אקספוננציאלי של האחוזון ה5 והאחוזון ה95.
לסיכום:
באופן כללי הרעיונות העיקריים במאמר הם שנרמול מיוחד של הרשת (שבלתי תלוי בסביבה) גורם לסוכן לקבל תוצאות טובות על שלל סביבות ומשחקים שונים עליהן הוא מופעל ובכך הכותבים יצרו אלגוריתם שקל לשימוש בעולם האמיתי בו לא ניתן לצפות מראש לטווח ערכים ספציפי מהסביבה.
הכותבים כתבו בטוויטר שהם חושבים בעתיד להוסיף סרטונים ביוטיוב (אולי גם את כתוביות בהם) או לשלב את השיטות החדשות עם סוכנים אחרים (כמו סוכן57 שמנצח הכל או MuZero שמנצח כמעט הכל).
לטענתם כל משחק הדורש תכנון ארוך טווח יכול להרוויח משיפורי המאמר.
עוד בנושא: