ירידה בגרדינט היא טכניקה מתמטית שמוצאת באופן איטרטיבי את המשקלים וההטיה שיוצרים את המודל עם האובדן הנמוך ביותר. כדי למצוא את המשקל וההטיה הטובים ביותר, מתבצעת חזרה על התהליך הבא מספר חזרות מוגדרות על ידי המשתמש.
המודל מתחיל את האימון עם משקלים ונטיות אקראיים שסמוכים לאפס, ואז חוזר על השלבים הבאים:
מחשבים את האובדן עם המשקל וההטיה הנוכחיים.
קובעים את הכיוון שבו צריך להזיז את המשקלים וההטיה כדי לצמצם את האובדן.
מעבירים את ערכי המשקל וההטיה בכיוון שמקטין את האובדן.
חוזרים לשלב אחד וחוזר על התהליך עד שהמודל לא יכול להפחית את האובדן יותר.
הדיאגרמה הבאה מתארת את השלבים האיטרטיביים שבהם מתבצעת ירידה בגרדינט כדי למצוא את המשקלים וההטיה שיוצרים את המודל עם האובדן הנמוך ביותר.
איור 12. ירידה בגרדינט היא תהליך איטרטיבי שמוצא את המשקלים וההטיה שיוצרים את המודל עם האובדן הנמוך ביותר.
לוחצים על סמל הפלוס כדי לקבל מידע נוסף על המתמטיקה שמאחורי ירידה בגרדינט.
ברמה קונקרטית, אפשר להבין את השלבים של ירידה בגרדינט באמצעות מערך נתונים קטן עם שבע דוגמאות למשקל הרכב בפאונד ולצריכת הדלק שלו במילי ליטר:
פאונד באלפים (תכונה) | מיילים לגלון (תווית) |
---|---|
3.5 | 18 |
3.69 | 15 |
3.44 | 18 |
3.43 | 16 |
4.34 | 15 |
4.42 | 14 |
2.37 | 24 |
- המודל מתחיל את האימון על ידי הגדרת המשקל וההטיה לאפס:
- מחשבים את אובדן ה-MSE באמצעות הפרמטרים הנוכחיים של המודל:
- מחשבים את השיפוע של המשיק לפונקציית האובדן בכל משקל ובשיפוע:
- זזים כמות קטנה בכיוון השיפוע השלילי כדי לקבל את המשקל וההטיה הבאים. בינתיים, נגדיר באופן שרירותי את 'הסכום הקטן' כ-0.01:
לוחצים על סמל הפלוס כדי לקבל מידע נוסף על חישוב שיפוע.
כדי לקבל את השיפוע של הקווים שרלוונטיים למשקל ולשיהוי, מחשבים את הנגזרת של פונקציית האובדן ביחס למשקל ולשיהוי, ואז פותרים את המשוואות.
נכתוב את המשוואה ליצירת תחזית כך:
$ f_{w,b}(x) = (w*x)+b $.
נכתוב את הערך בפועל כך: $ y $.
נחשב את MSE באמצעות:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
כאשר $i$ מייצג את הדוגמה ה-ith לאימון ו-M מייצג את מספר הדוגמאות.
הנגזרת של פונקציית האובדן ביחס למשקל נכתבת כך:
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
והיא מקבלת את הערך:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
קודם מסכמים כל ערך חזוי בניכוי הערך בפועל, ואז מכפילים אותו בשני ערכים של המאפיין. לאחר מכן מחלקים את הסכום במספר הדוגמאות. התוצאה היא השיפוע של הקו שנוגע בערך המשקל.
אם פותרים את המשוואה הזו עם משקל ונטייה שווים לאפס, מקבלים שיפוע של -119.7.
נגזרת הטיה
הנגזרת של פונקציית האובדן ביחס לשגיאת ההטיה נכתבת כך:
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
והיא מקבלת את הערך:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
קודם אנחנו מסכמים כל ערך חזוי בניכוי הערך בפועל, ואז מכפילים אותו בשניים. לאחר מכן מחלקים את הסכום במספר הדוגמאות. התוצאה היא שיפוע הקו שמשויך לערך של השיטה.
אם פותרים את המשוואה הזו עם משקל ונטייה שווים לאפס, מקבלים שיפוע של -34.3.
משתמשים במשקל ובשיפוי החדשים כדי לחשב את האובדן וחוזר חלילה. אחרי שמשלימים את התהליך בשש חזרות, מקבלים את המשקלים, ההטיות והפסדים הבאים:
איטרציה | משקל | הטיה | אובדן (MSE) |
---|---|---|---|
1 | 0 | 0 | 303.71 |
2 | 1.2 | 0.34 | 170.67 |
3 | 2.75 | 0.59 | 67.3 |
4 | 3.17 | 0.72 | 50.63 |
5 | 3.47 | 0.82 | 42.1 |
6 | 3.68 | 0.9 | 37.74 |
אפשר לראות שהאובדן קטן יותר בכל עדכון של המשקל וההטיה. בדוגמה הזו, הפסקנו אחרי שש חזרות. בפועל, המודל עובר אימון עד שהוא מתכנס. כשהמודל מתכנס, איטרציות נוספות לא מפחיתות את האובדן יותר, כי ירידה בגרדינט מצאה את המשקלים וההטיה שמצמצמים את האובדן כמעט למינימום.
אם תמשיכו לאמן את המודל אחרי ההתכנסות, האובדן יתחיל להשתנות בתנודות קטנות, כי המודל ימשיך לעדכן את הפרמטרים סביב הערכים הנמוכים ביותר שלהם. לכן, קשה לוודא שהמודל אכן הגיע להסכמה. כדי לוודא שהמודל הגיע ליציבות, צריך להמשיך את האימון עד שהאובדן יתייצב.
התכנסות של מודלים ועקומות אובדן
כשמאמנים מודל, לרוב בודקים את עקומת האובדן כדי לקבוע אם המודל התקרב לפתרון. בעקומת האובדן מוצג השינוי באובדן במהלך אימון המודל. כך נראה עקומת אובדן אופיינית. האובדן מוצג בציר ה-y והחזרות מוצגות בציר ה-x:
איור 13. עקומת אובדן שמראה את המודל מתכנס סביב סימן האיטרציה ה-1,000.
אפשר לראות שהאובדן יורד באופן משמעותי במהלך החזרות הראשונות, ואז יורד בהדרגה עד שהוא נעצר בסביבות החזרה ה-1,000. אחרי 1,000 חזרות, אפשר להיות בטוחים כמעט לחלוטין שהמודל הגיע לפתרון.
בתרשים הבא מוצגת גרפיקה של המודל בשלושה שלבים במהלך תהליך האימון: התחלה, אמצע וסוף. הצגה חזותית של מצב המודל בתמונות מצב במהלך תהליך האימון ממחישה את הקשר בין עדכון המשקלים וההטיה, הפחתת האובדן והתכנסות המודל.
בתרשים, אנחנו משתמשים במשקלים ובנטייה המשוערים בחזרה בחזרה (iterative) מסוימת כדי לייצג את המודל. בתרשים עם נקודות הנתונים ותמונת המצב של המודל, קווים כחולים של אובדן מהמודל לנקודות הנתונים מציגים את כמות האובדן. ככל שהשורות ארוכות יותר, כך יש יותר אובדן.
בתרשים הבא אפשר לראות שבסביבות האיטרציה השנייה המודל לא יעשה תחזיות טובות בגלל כמות ההפסד הגבוהה.
איור 14. עקומת אובדן ותמונת מצב של המודל בתחילת תהליך האימון.
בסביבות האיטרציה ה-400, אפשר לראות שהירידה בגרדינט מצאה את המשקל וההטיה שמניבים מודל טוב יותר.
איור 15. עקומת אובדן ותמונת מצב של מודל באמצע האימון.
בסביבות האיטרציה ה-1,000, אפשר לראות שהמודל הגיע לנקודת הסכמה, וניתן ליצור מודל עם האובדן הנמוך ביותר האפשרי.
איור 16. עקומת אובדן ותמונת מצב של המודל לקראת סוף תהליך האימון.
תרגול: בדיקת ההבנה
פונקציות קונצ'וקסיות ופונקציות מתכנסות
פונקציות האובדן של מודלים לינאריים תמיד יוצרות פני קמורים. כתוצאה מהמאפיין הזה, כשמודל רגרסיה לינארית מתכנס, אנחנו יודעים שהמודל מצא את המשקלים וההטיה שמניבים את האובדן הנמוך ביותר.
אם נציג בתרשים את פני השטח של אובדן המודל עם מאפיין אחד, נוכל לראות את הצורה הקמורה שלו. זוהי פני השטח של אובדן נתוני המאגר של מייל לגלון ששימש בדוגמאות הקודמות. המשקל נמצא בציר ה-X, ההטיה נמצאת בציר ה-Y והאובדן נמצא בציר ה-Z:
איור 17. פני השטח של האובדן שמוצגת בו הצורה הקמורה שלו.
בדוגמה הזו, משקל של -5.44 וסטייה רגילה של 35.94 מניבים את האובדן הנמוך ביותר, 5.54:
איור 18. פני השטח של האובדן, שמוצגים בו ערכי המשקל וההטיה שמניבים את האובדן הנמוך ביותר.
מודל לינארי מתכנס כשנמצא האובדן המינימלי. לכן, איטרציות נוספות גורמות לירידה בגרדינט להזיז את ערכי המשקל וההטיה רק בסכומים קטנים מאוד סביב הערך המינימלי. אם נציג בתרשים את המשקלים ואת נקודות ההטיה במהלך ירידה בגרדינט, הנקודות ייראו כמו כדור שרץ במורד גבעה ונעצר בנקודה שבה אין יותר שיפוע כלפי מטה.
איור 19. תרשים אובדן שבו מוצגות נקודות של ירידה בגרדינט שמפסיקות בנקודה הנמוכה ביותר בתרשים.
שימו לב שנקודות ההפסד השחורות יוצרות את הצורה המדויקת של עקומת ההפסד: ירידה חדה לפני שיורדים בהדרגה עד שמגיעים לנקודה הנמוכה ביותר על פני השטח של ההפסד.
חשוב לציין שבדרך כלל המודלים לא מוצאים את הערך המינימלי המדויק של כל משקל ונטייה, אלא ערך קרוב מאוד אליו. חשוב גם לציין שהערך המינימלי של המשקלים וההטיה לא תואם לפסד אפס, אלא רק לערך שמניב את הפסד הנמוך ביותר לפרמטר הזה.
בעזרת ערכי המשקל וההטיה שמניבים את האובדן הנמוך ביותר – במקרה הזה משקל של -5.44 והטיה של 35.94 – אפשר ליצור תרשים של המודל כדי לראות עד כמה הוא מתאים לנתונים:
איור 20. מודל שמוצג בתרשים באמצעות ערכי המשקל וההטיה שמניבים את האובדן הנמוך ביותר.
זהו המודל הטוב ביותר למערך הנתונים הזה, כי אף ערך אחר של משקל ונטייה לא מניב מודל עם אובדן נמוך יותר.