כמה זמן דרוש כדי לאלף אלגוריתם ?

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

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

מתי נראה הרבה רובוטים שעובדים במפעלים, משרתים אותנו בבתי קפה, מנקים לנו את הבית ואת הרחוב או מחליפים הרבה בעלי מקצוע אחרים ? נראה שלא ממש בקרוב! אחד הקשיים הוא כמות הזמן שיש לאמן את הרובוטים על כל משימה. התחום המבטיח בהקשר זה הינו Reinforcment learning או בעברית למידה חיזוקית. תחום זה הינו ענף ב machine learning – למידת מכונה שקיבל השראה מפסיכולוגיה התנהגותית. בעולם זה יש סוכן (רובוט\מכונית\תוכנה) שפועל בסביבה כלשהיא ומקבל מידע או חש את סביבתו. למשל אם מדובר במכונית אוטונומית אזי היא מקבלת תמונות היקפיות, חיישני תאוצה ולעיתים תמונת מכ”ם והיא יכולה לפעול בסביבה (בכביש) שזה אומר ללחוץ על הגז או הברקס או לסובב את ההגה:
אם למשל מדובר באלגוריתם שמטרתו לשחק במשחק האטארי המפורסם Breakout (פריצה) אזי האלגוריתם מקבל את תמונת המסך והפעולות שיכול לעשות הינן להזיז ימינה או שמאלה את השולחן:
בגישת ה reinforcement learning  על כל פעולה שמבצע הסוכן הוא מקבל תגמול (שהינו ערך מספרי) שמייצג עד כמה הפעולה הייתה חיונית או לא חיונית להשגת המטרה ובהתאם לכך הסוכן מעדכן את המדיניות שלו עבור הפעולות הבאות. קצת כמו לאלף כלב… מהפיכת הלמידה העמוקה הראתה לעולם שאימון עמוק (ז”א מודלים גדולים במיוחד) עם database גדול במיוחד מצליח באופן מפתיע איפה שגישות קלאסיות נכשלות. על אף שתחום ה reinforcement learning ותיק, בגילגוליו הראשונים החל בשנות החמישים אך כמו הרבה תחומים, החיבור שלו עם הלמידה העמוקה (deep reinforcement learning) נראה מבטיח מאוד לחוקרים רבים. כמה זמן צריך להתאמן על דוגמאות צעצוע ? לפי המאמר של openAi משך הזמן שדרוש לאמן אלגוריתם Rainbow DQN  עד שמשחק במשחקי אטארי טוב לפחות כמו בן אדם הינו 83 שעות משחק. דוגמה אחרת הינה לאמן למשימות בסימולציה MuJoCo שם כמות האימונים נעה בין מאות אלפים לעשרות מיליוני צעדים. MuJoCo  הינו מנוע המדמה את חוקי הפיסיקה שנועד לעזור למחקר בתחום הרובוטיקה. זה בעצם חוסך ניסויים ברובוטים פיסיים באמצעות סימולציה וירטואלית. למשל משימות כגון לגרום לרובוט ללכת, לעלות במדרגות, לתמרן בין מכשולים וכו…
לפי המאמר של Deepmind נדרשו מעל 100 שעות אימון מקבילי כדי להגיע לביצועים שניתן לראות בסרטון. אלו דוגמאות יחסית פשוטות, כמה זמן צריך להתאמן על דוגמאות מהעולם הפיסי ? נראה שהתשובה לא ברורה לגמרי אבל מדובר בהרבה מאוד, אולי הרבה יותר נתונים ממה שסביר לאסוף. אם נסתכל על פעולות פיסיות פשוטות כמו פתיחת דלת, הרמת חפץ או הזזה של חפץ:
נראה שלמשל להרמת חפצים על הרובוט לבצע לפחות 800,000 חזרות (של ניסוי וטעייה) וזה יביא אותו רק לבשלות חלקית כי אם הסביבה קצת משתנה הוא פחות יצליח. ולגבי משימות קצת יותר מורכבות עם תנאי סביבה משתנים, כמו למשל נהיגה אוטונומית, עוד ב 2015 דיבר אלון מאסק מנכ”ל טסלה על בערך מיליון מיילים של נהיגה מבוקרת (נהג אוטומטי בפיקוח נהג אנושי) ליום שמתווספים לאינטליגנציה המשותפת של האלגוריתם נהיגה אוטונומי.  ב 2016 כבר דיברו צבירה של 780 מיליון מיילים של נהיגה וקצב אגירת המידע גדל למיליון מיילים כל עשר שעות. אז תקציבים לאימון אלגוריתמים של נהיגה אוטונומית לא חסרים בעולם וזה אכן מתקרב, אך פעולות אחרות אנחנו עוד לא רואים הרבה. לסיכום הרובוטים עדיין מתנהגים כמו כלבים קשים לאילוף, או שאנחנו עוד לא למדנו את אומנות האילוף היעיל!