שיפור הדרגתי (יחידה אופציונלית)

בבעיות של רגרסיה כדאי להגדיר את השגיאה החתומה כהבדל בין החיזוי לתווית. עם זאת, בסוגים אחרים של בעיות, האסטרטגיה הזו מובילה לעיתים קרובות לתוצאות גרועות. כשמדובר בהגדלה הדרגתית, מומלץ להשתמש באחת מהאסטרטגיות הבאות:

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

באופן רשמי, בהינתן פונקציית הפסד $L(y,p)$ שבה $y$ הוא תווית ו-$p$ הוא חיזוי, אז התגובה המדומה $z_i$ שמשמשת לאימון המודל החלש בשלב $i$ היא:

$$ z_i = \frac {\partial L(y, F_i)} {\partial F_i} $$

איפה:

  • $F_i$ הוא החיזוי של המודל החזקה.

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

$$ L(y,p) = (y - p)^2 $$

במקרה זה, ההדרגתיות היא:

$$ z = \frac {\partial L(y, F_i)} {\partial F_i} = \frac {\partial(y-p)^2} {\partial p} = 2(y - p) = 2 \ \text{signed error} $$

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

אופטימיזציה של עלים ומבנה בעזרת שלב השיטה של ניוטון

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

זהו שלב בירידה הדרגתית:

$$ x_{i+1} = x_i - \frac {df}{dx}(x_i) = x_i - f'(x_i) $$

ואת השיטה של Newton:

$$ x_{i+1} = x_i - \frac {\frac {df}{dx} (x_i)} {\frac {d^2f}{d^2x} (x_i)} = x_i - \frac{f'(x_i)}{f''(x_i)}$$

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

  1. לאחר שעץ מאומנים, מחילים שלב של ניוטון על כל עלה ומשנים את הערך שלו. אין שינוי במבנה העץ, רק ערכי העלים משתנים.
  2. במהלך הצמיחה של עץ, התנאים נבחרים לפי ניקוד שכולל רכיב בנוסחת ניוטון. המבנה של העץ מושפע.
קוד YDF
ב-YDF:
  • YDF מחיל תמיד שלב ניוטון על העלה (אפשרות 1).
  • אפשר להפעיל את אפשרות 2 עם use_hessian_gain=True.