התאמת יתר של הרכב, התאמה סדירה ועצירה מוקדמת

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

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

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

איור 29. אובדן לעומת מספר עצי ההחלטה.

 

תרשימים של דיוק האימון ודיוק האימות לעומת מספר עצי ההחלטות. דיוק האימון עולה בהדרגה ככל שמספר עצי ההחלטה גדל, ומגיע לשיא של כמעט 1.0 עם 400 עצי החלטה. רמת הדיוק של האימות עולה ל-0.86 בעצים של 40 החלטות, ואז יורדת בהדרגה ל-0.83 בעצים של 400 החלטות.

איור 30. דיוק לעומת מספר עצי ההחלטה.

 

פרמטרים נפוצים של רגולריזציה לעצים עם שיפור שיפוע כוללים:

  • העומק המקסימלי של העץ.
  • שיעור הצמצום.
  • היחס בין המאפיינים שנבדקים בכל צומת.
  • מקדם L1 ו-L2 של האובדן.

חשוב לזכור שעצי החלטות בדרך כלל קטנים בהרבה ממודלים של יער אקראי. כברירת מחדל, עצי gradient boosted trees ב-TF-DF גדלים לעומק 6. מכיוון שהעצים שטחיים, למספר המינימלי של דוגמאות לכל עלה יש השפעה מועטה, ובדרך כלל לא מתבצעת התאמה שלו.

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

דוגמה לשימוש

בפרק הקודם אימנו יער אקראי על מערך נתונים קטן. בדוגמה הזו, פשוט נחליף את מודל יער האקראי במודל של עצים עם שיפור שיפוע (gradient boosted trees):

model = tfdf.keras.GradientBoostedTreesModel()

# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)

# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)

# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
   tf_train_dataset,
   validation_ratio=0.0,
   early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.

שימוש ומגבלות

לעצים עם שיפורים של שיפוע יש כמה יתרונות וחסרונות.

יתרונות

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

חסרונות

  • צריך לאמן את עצי ההחלטות ברצף, מה שעלול להאט את האימון באופן משמעותי. עם זאת, עצי ההחלטות קטנים יותר, כך שהאימון איטי יותר.
  • בדומה ליערות אקראיים, עצים עם שיפור שיפוע לא יכולים ללמוד ולעשות שימוש חוזר ביצגים פנימיים. כל עץ החלטות (וכל ענף של כל עץ החלטות) צריך ללמוד מחדש את התבנית של מערך הנתונים. במערכי נתונים מסוימים, במיוחד במערכי נתונים עם נתונים לא מובְנים (למשל, תמונות, טקסט), הבעיה הזו גורמת לכך ש-gradient boosted trees יניב תוצאות גרועות יותר מאשר שיטות אחרות.