ירידה הדרגתית היא שיטה מתמטית שבה המערכת מוצאת באופן חזרתי את המשקולות ואת ההטיות שיוצרות את המודל עם ההפסד הנמוך ביותר. כדי למצוא את המשקל וההטיה הטובים ביותר, מתבצעת חזרה על התהליך הבא מספר חזרות מוגדרות על ידי המשתמש.
המודל מתחיל את האימון עם משקלים ונטיות אקראיים שסמוכים לאפס, ואז חוזר על השלבים הבאים:
מחשבים את האובדן עם המשקל וההטיה הנוכחיים.
מצאו את הכיוון של הזזת המשקולות וההטיה שמפחיתות את הירידה.
מעבירים את ערכי המשקל וההטיה בכיוון שמקטין את האובדן.
חוזרים לשלב אחד וחוזר על התהליך עד שהמודל לא יכול להפחית את האובדן יותר.
הדיאגרמה הבאה מתארת את השלבים האיטרטיביים שבהם נעשה שימוש ב-gradient descent כדי למצוא את המשקלים וההטיה שיוצרים את המודל עם האובדן הנמוך ביותר.
איור 12. ירידה בגרדינט היא תהליך איטרטיבי שמוצא את המשקלים וההטיה שיוצרים את המודל עם האובדן הנמוך ביותר.
לוחצים על סמל הפלוס כדי לקבל מידע נוסף על המתמטיקה שמאחורי ירידה בגרדינט.
ברמה קונקרטית, אפשר להבין את השלבים של ירידה בגרדינט באמצעות מערך נתונים קטן עם שבע דוגמאות למשקל הרכב בפאונד ולצריכת הדלק שלו במילי ליטר:
לירה 2000 ש"ח (תכונה) | מיילים לגלון (תווית) |
---|---|
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)} $
קודם כל נסכם כל ערך חזוי בניכוי הערך בפועל, ואז מכפילים אותו פי 2 מהערך של התכונה. לאחר מכן מחלקים את הסכום במספר הדוגמאות. התוצאה היא השיפוע של הקו שנוגע בערך המשקל.
אם פותרים את המשוואה הזו עם משקל ונטייה שווים לאפס, מקבלים שיפוע של -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 חזרות, אפשר להיות בטוחים כמעט בוודאות שהמודל הגיע לפתרון.
בתמונות הבאות אנחנו משרטטים את המודל בשלוש נקודות במהלך תהליך האימון: התחלה, אמצע וסוף. המחשת מצב המודל בתמונות snapshot במהלך תהליך האימון מבססת את הקשר בין עדכון המשקולות וההטיות, צמצום ההפסד והתכנסות המודל.
בדמויות אנחנו משתמשים במשקולות ובהטיות הנגזרות באיטרציה מסוימת כדי לייצג את המודל. בתרשים עם נקודות הנתונים ותמונת המצב של המודל, קווים כחולים של אובדן מהמודל לנקודות הנתונים מציגים את כמות האובדן. ככל שהקווים ארוכים יותר, כך יש יותר אובדן.
באיור הבא ניתן לראות שבאיטרציה השנייה המודל לא יהיה טוב בביצוע תחזיות בגלל כמות האובדן הגבוהה.
איור 14. עקומת אובדן ותמונת מצב של המודל בתחילת תהליך האימון.
בסביבות האיטרציה ה-400, אפשר לראות שהירידה בגרדינט מצאה את המשקל וההטיה שמניבים מודל טוב יותר.
איור 15. עקומת אובדן ותמונת מצב של המודל בערך באמצע האימון.
בסביבות האיטרציה ה-1,000, אפשר לראות שהמודל הגיע לנקודת הסכמה, וניתן ליצור מודל עם האובדן הנמוך ביותר האפשרי.
איור 16. עקומת אובדן ותמונת מצב של המודל לקראת סוף תהליך האימון.
תרגול: בדיקת ההבנה
פונקציות קונצ'וקסיות ופונקציות מתכנסות
פונקציות האובדן של מודלים לינאריים תמיד יוצרות פני קמורים. כתוצאה מהמאפיין הזה, כשמודל רגרסיה לינארית מתכנס, אנחנו יודעים שהמודל מצא את המשקלים וההטיה שמניבים את האובדן הנמוך ביותר.
אם נציג בתרשים את פני השטח של אובדן המודל עם מאפיין אחד, נוכל לראות את הצורה הקמורה שלו. זוהי פני השטח של אובדן נתוני המאגר של מייל לגלון ששימש בדוגמאות הקודמות. המשקל הוא על ציר ה-X, ההטיה על ציר ה-Y והירידה היא על ציר ה-z:
איור 17. פני השטח של האובדן שמוצגת בו הצורה הקמורה שלו.
בדוגמה הזו, משקל של -5.44 וסטייה רגילה של 35.94 מניבים את האובדן הנמוך ביותר, 5.54:
איור 18. פני השטח של האובדן, שמוצגים בו ערכי המשקל וההטיה שמניבים את האובדן הנמוך ביותר.
מודל לינארי מתכנס כשנמצא האובדן המינימלי. לכן, איטרציות נוספות גורמות לירידה בגרדינט להזיז את ערכי המשקל וההטיה רק בסכומים קטנים מאוד סביב הערך המינימלי. אם הציגו בגרף את המשקולות ואת נקודות ההטיות במהלך ירידה הדרגתית, הנקודות ייראו כמו כדור שמתגלגל במורד גבעה, ולבסוף ייפסקו בנקודה שבה אין יותר שיפוע כלפי מטה.
איור 19. תרשים אובדן שבו מוצגות נקודות של ירידה בגרדינט שמפסיקות בנקודה הנמוכה ביותר בתרשים.
שימו לב שנקודות ההפסד השחורות יוצרות את הצורה המדויקת של עקומת ההפסד: ירידה חדה לפני שיורדים בהדרגה עד שמגיעים לנקודה הנמוכה ביותר על פני השטח של ההפסד.
חשוב לציין שבדרך כלל המודלים לא מוצאים את הערך המינימלי המדויק של כל משקל ונטייה, אלא ערך שדומה מאוד לערך המינימלי. חשוב גם לציין שהמינימום של המשקולות וההטיות לא תואם לאפס הפסד, אלא רק ערך שמייצר את ההפסד הנמוך ביותר באותו פרמטר.
בעזרת ערכי המשקל וההטיה שמניבים את האובדן הנמוך ביותר – במקרה הזה משקל של -5.44 והטיה של 35.94 – אפשר ליצור תרשים של המודל כדי לראות עד כמה הוא מתאים לנתונים:
איור 20. מודל שמוצג בתרשים באמצעות ערכי המשקל וההטיה שמניבים את האובדן הנמוך ביותר.
זה המודל הטוב ביותר למערך הנתונים הזה, כי אף ערך אחר של משקל והטיות לא מייצר מודל עם ירידה נמוכה יותר.