ירידה בשיפוע היא טכניקת האופטימיזציה הפופולרית ביותר בדוגמנות למידת מכונה (ML). האלגוריתם ממזער את השגיאה בין הערכים החזויים לבין האמת הבסיסית. מכיוון שהטכניקה מחשיבה כל נקודת נתונים כדי להבין ולמזער את השגיאה, הביצועים שלה תלויים בגודל נתוני האימון. טכניקות כמו ירידה בדרגה סטוקהסטית (SGD) נועדו לשפר את ביצועי החישוב אך במחיר של דיוק ההתכנסות.
Gradient Stochastic Average מאזן את הגישה הקלאסית, הידועה בשם Full Gradient Descent ו-SGD, ומציעה את שתי היתרונות. אבל לפני שנוכל להשתמש באלגוריתם, עלינו להבין תחילה את משמעותו עבור אופטימיזציה של המודל.
לכל אלגוריתם ML יש פונקציית אובדן משויכת שמטרתה למזער או לשפר את ביצועי המודל. מבחינה מתמטית, ניתן להגדיר את ההפסד כך:
זה פשוט ההבדל בין התפוקה בפועל לתפוקה החזויה, ומזעור ההבדל הזה אומר שהמודל שלנו מתקרב יותר לערכי האמת הבסיסית.
אלגוריתם המינימום משתמש בירידה בשיפוע כדי לעבור את פונקציית ההפסד ולמצוא מינימום גלובלי. כל שלב מעבר כרוך בעדכון משקלי האלגוריתם כדי לייעל את הפלט.
אלגוריתם הירידה ההדרגתי המקובל משתמש בממוצע של כל ההדרגות המחושבות על פני מערך הנתונים כולו. מחזור החיים של דוגמה לאימון בודד נראה כך:
משוואת עדכון המשקל נראית כך:
כאשר W
מייצג את משקלי הדגם ו- dJ/dW
הוא הנגזרת של פונקציית ההפסד ביחס למשקל הדגם. לשיטה הקונבנציונלית יש קצב התכנסות גבוה, אך היא הופכת יקרה מבחינה חישובית כאשר עוסקים במערכי נתונים גדולים הכוללים מיליוני נקודות נתונים.
מתודולוגיית SGD נשארת זהה ל-GD רגיל, אבל במקום להשתמש במערך הנתונים כולו כדי לחשב את ההדרגות, היא משתמשת באצווה קטנה מהקלט. השיטה הרבה יותר יעילה אך עלולה לקפוץ יותר מדי סביב המינימום הגלובלי מכיוון שכל איטרציה משתמשת רק בחלק מהנתונים ללמידה.
גישת ה-Stochastic Average Gradient (SAG) הוצגה כאמצעי ביניים בין GD ל-SGD. הוא בוחר נקודת נתונים אקראית ומעדכן את ערכה בהתבסס על השיפוע באותה נקודה וממוצע משוקלל של מעברי העבר המאוחסנים עבור אותה נקודת נתונים מסוימת.
בדומה ל-SGD, SAG מדגמנת כל בעיה כסכום סופי של פונקציות קמורות הניתנות להבדלה. בכל איטרציה נתונה, הוא משתמש בהדרגות הנוכחיות ובממוצע ההדרגות הקודמות לעדכון משקל. המשוואה לובשת את הצורה הבאה:
בין שני האלגוריתמים הפופולריים, שיפוע מלא (FG) וירידה סטוכסטית (SGD), לאלגוריתם FG יש קצב התכנסות טוב יותר מכיוון שהוא מנצל את כל מערך הנתונים במהלך כל איטרציה לחישוב.
למרות של-SAG יש מבנה דומה ל-SGD, שיעור ההתכנסות שלו דומה ולפעמים טוב יותר מאשר גישת השיפוע המלא. טבלה 1 להלן מסכמת את התוצאות מהניסויים של
למרות הביצועים המדהימים שלו, הוצעו מספר שינויים באלגוריתם SGD המקורי כדי לעזור לשפר את הביצועים.
ירידה בדרגה היא אופטימיזציה פופולרית המשמשת לאיתור המינימום הגלובלי של פונקציות המטרה שסופקו. האלגוריתם משתמש בשיפוע של פונקציית המטרה כדי לעבור את שיפוע הפונקציה עד שהוא מגיע לנקודה הנמוכה ביותר.
ירידה בדרגה מלאה (FG) וירידה בשיפוע סטוכסטי (SGD) הן שתי וריאציות פופולריות של האלגוריתם. FG משתמש בכל מערך הנתונים במהלך כל איטרציה ומספק קצב התכנסות גבוה בעלות חישוב גבוהה. בכל איטרציה, SGD משתמש בתת-קבוצה של נתונים כדי להפעיל את האלגוריתם. זה הרבה יותר יעיל אבל עם התכנסות לא בטוחה.
Gradient Stochastic Average Gradient (SAG) היא וריאציה נוספת המספקת את היתרונות של שני האלגוריתמים הקודמים. הוא משתמש בממוצע של מעברי עבר ובתת-קבוצה של מערך הנתונים כדי לספק קצב התכנסות גבוה עם חישוב נמוך. ניתן לשנות את האלגוריתם עוד יותר כדי לשפר את היעילות שלו באמצעות וקטוריזציה ומיני-אצטות.