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

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

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

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

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

 

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

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

 

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

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

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

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

דוגמה לשימוש

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

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.

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

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

יתרונות

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

חסרונות

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