התאמת יתר

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

באיור 11, נניח שכל צורה גיאומטרית מייצגת את המיקום של עץ ביער מרובע. המשבצות הכחולות מסמנות את המיקומים של עצים בריאים, והעיגולים הכתומים מסמנים את המיקומים של עצים חולים.

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

 

מציירים בדמיון צורות – קווים, עקומות, אובליים… כל מה שרוצים – כדי להפריד בין העצים הבריאים לעצים החולים. לאחר מכן מרחיבים את השורה הבאה כדי לבדוק אפשרות אחת להפרדה.

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

או שכן? מודל מעולה באמת מסווג בהצלחה דוגמאות חדשות. באיור 13 מוצג מה קורה כשאותו מודל מניב תחזיות לגבי דוגמאות חדשות מקבוצת הבדיקות:

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

 

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

התאמה, התאמה יתר (overfitting) והתאמה לא מספיקה (underfitting)

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

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

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

 

הכללה היא ההפך מ-overfitting. כלומר, מודל שמתאים לנתונים כלליים מניב חיזויים טובים לגבי נתונים חדשים. המטרה היא ליצור מודל שאפשר להכליל אותו על נתונים חדשים.

זיהוי התאמת יתר (overfitting)

העקומות הבאות עוזרות לזהות התאמה יתר:

  • עקומות אובדן
  • עקומות הכללה

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

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

 

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

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

מה גורם להתאמת יתר (overfitting)?

באופן כללי, התאמה יתר נובעת מאחת משתי הבעיות הבאות:

  • קבוצת האימון לא מייצגת בצורה מספקת נתונים מהעולם האמיתי (או את קבוצת האימות או את קבוצת הבדיקה).
  • המודל מורכב מדי.

תנאים ליצירת הכללות

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

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

אפשר לבדוק את התנאים הקודמים באמצעות התרגילים הבאים.

תרגילים: בדיקת ההבנה

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

תרגיל לאתגר

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

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