התאמת יתר

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

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

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

 

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

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

 

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

תרגיל לאתגר

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

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