למידת חיזוק – Reinforcement Learning

למידת חיזוק (RL) היא חלק מתחום למידת המכונה שפרץ לחיינו בשנים האחרונות הודות ליכולות החישוב הנדרשות שהפכו לנגישות בימינו.

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

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

Agent – RL Algorithm

Policy – approximator tunable parameters (NN)

Learning Algorithm – update the Policy

Environment – the tested system

Action – set of commends to the environment

Reward – return cost function

Observation – the system location

בניית המודל לצורך אימון המערכת

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

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

השימוש בסביבות MATLAB & Simulink

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

ישנם מבחר אלגוריתמי חישוב המובנים בכלי כגון: DQN  , DDPG , PPO ועוד.

למידת החיזוק דורשת יכולות חישוב מתקדמות ולכן ניתן לבצע זאת על מספר פלטפורמות : על גבי CPU , GPU וכאמור גם על שרתים מרובי ליבות בענן, לאחר סיום אימון המודל, תוכלו לייצר קוד C, CPP ו CODA שישולב על גבי פלטפורמות כגון MCU & GPU

השימוש בבסביבות MATLAB & SIMULINK

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

1) שימוש במודלים קיימים והרכבתם לכדי מערכת שלמה

2) דיוק בחישוב השפעות פיסיקליות על המערכת (מקרים ותגובות)

האצת חישובים וקידוד הרשת על המערכת

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

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

עבודת המקבול יכולה להתבצע בצורה סינכרונית ואסינכרונית, כלומר, כלל המאמנים מחזירים את התוצאות שלהם וכולם מקבלים עדכון יחדיו המשוקלל בין כל המאמנים(סינכרונית), וכל מאמן שולח את התוצאות ומתעדכן לבדו לאחר מכן (אסינכרונית)

ובסוף, לאחר אימון הרשת יש באפשרותכם לייצאה בצורה אוטומטית על גביי מערכת EMBEDDED / Clusters / GPU

אלגוריתמי עבודה ב – RL

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

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

מידע נוסף

Reinforcement Learning with MATLAB and Simulink

מלאו פרטיכם וקבלו אליכם למייל קישור להורדת ה-EBOOK


     

    פוסט בבלוג - Reinforcement Learning – מאיפה מתחילים?

    Reinforcement Learning for Engineers, Part 1: What Is Reinforcement Learning?

    יצירת קשר: