התאמת-יתר (Overfitting)
🆕 את הערך הזה אפשר לקרוא גם בגרסה לגיל 12 או בגרסה למנהלים.
הגדרה
התאמת-יתר (Overfitting) היא כשמודל "משנן" את נתוני האימון במקום ללמוד מהם עקרונות כלליים, ונכשל על מקרים חדשים.
💡 דוגמה
כמו תלמיד ששינן פתרונות של תרגילים מסוימים במקום להבין את השיטה, ונכשל ברגע שהמבחן מנוסח קצת אחרת.
מה זו התאמת-יתר, ולמה היא קורית
התאמת-יתר (Overfitting) היא בעיה נפוצה באימון מודלים: המודל "משנן" את נתוני האימון הספציפיים במקום ללמוד מהם עקרונות כלליים — ואז מצליח מצוין על נתונים שכבר ראה, אבל נכשל על מקרים חדשים שלא נתקל בהם.
הבעיה חמורה יותר ככל שהמודל "גדול" יותר (יש לו יותר פרמטרים) ביחס לכמות נתוני-האימון — מודל גדול-מדי יכול פשוט לזכור כל דוגמה בנפרד, במקום להכליל. ההפך הגמור נקרא "התאמת-חסר" (Underfitting): מודל פשוט-מדי שאפילו לא מצליח ללכוד את התבנית הבסיסית בנתוני-האימון עצמם, ולכן מבצע גרוע גם עליהם וגם על נתונים חדשים.
פשרת הטיה-שונות (Bias-Variance Tradeoff)
המסגרת התיאורטית שמאחורי שתי הבעיות נקראת "פשרת הטיה-שונות" (Bias-Variance Tradeoff). מודל עם הטיה גבוהה מדי (Underfitting) מפשט יתר-על-המידה ומפספס תבניות אמיתיות; מודל עם שונות גבוהה מדי (Overfitting) רגיש-יתר-על-המידה לרעש האקראי הספציפי בנתוני-האימון שלו.
המטרה המעשית היא איזון, לא הקצנה לאף אחד מהכיוונים — מודל שמכליל טוב דורש גם מספיק גמישות ללכוד תבניות אמיתיות, וגם מספיק ריסון כדי לא להסתמך על רעש.
ארבע טכניקות למניעה
כדי למנוע התאמת-יתר, מפתחי-מודלים משתמשים בכמה טכניקות משלימות: רגולריזציה (Regularization) — עונש מתמטי על מורכבות-יתר של המודל; Dropout — כיבוי אקראי של חלק מהנוירונים בכל סבב-אימון, שמכריח את המודל לא להסתמך יותר מדי על תבנית בודדת; אימות-הצלבה (Cross-validation) — בדיקה חוזרת על חלוקות-נתונים שונות; ועצירה-מוקדמת של האימון ברגע שהביצועים על נתוני-בדיקה מתחילים להיחלש, למרות שעל נתוני-האימון הם ממשיכים להשתפר.
Dropout תואר לראשונה במאמר משנת 2014 של ניטיש סריבסטבה, ג'פרי הינטון, אלכס קריז'בסקי, איליה סוצקבר ורוסלן סלחוטדינוב, שפורסם בכתב-העת המדעי Journal of Machine Learning Research (JMLR). הרעיון המרכזי: בכל סבב-אימון "מדגמים" בפועל רשת דקה יותר, אקראית, מתוך הרשת המלאה — כאילו מאמנים בו-זמנית מספר עצום של רשתות-משנה שונות, וממצעים ביניהן. החוקרים הדגימו שיפור מדיד בביצועים בזכות השיטה במשימות מתחומים שונים לגמרי — ראייה ממוחשבת, זיהוי-דיבור, סיווג-מסמכים וביולוגיה חישובית.
אנלוגיית התלמיד ששינן
אנלוגיה שימושית: תלמיד שמשנן בעל-פה את כל תשובות מבחני-העבר, בלי להבין את החומר עצמו — יצליח מצוין אם השאלות יחזרו על עצמן, אבל ייכשל בשאלה חדשה שדורשת הבנה אמיתית.
בדיוק מסיבה זו מפתחי-מודלים תמיד בודקים ביצועים על "קבוצת-בדיקה" נפרדת שהמודל מעולם לא ראה באימון — פער גדול בין ביצועי-האימון לביצועי-הבדיקה הוא הסימן הקלאסי לבעיה.
"התאמת-יתר שפירה": התופעה שעדיין לא הוסברה במלואה
מחקר עדכני יחסית מצא תופעה מפתיעה, "התאמת-יתר שפירה" (Benign Overfitting): רשתות-נוירונים ענקיות שיש בהן הרבה יותר פרמטרים מכמות-הדוגמאות, ולמרות זאת מכלילות היטב לנתונים חדשים — בניגוד לציפייה הקלאסית שמודל כזה פשוט ישנן את הנתונים.
התופעה עדיין לא הוסברה תיאורטית במלואה, ומאתגרת חלק מההנחות הקלאסיות שהיו מקובלות בתחום — אחת הסיבות שבגללן פשרת הטיה-שונות המסורתית, כפי שתוארה למעלה, נחשבת כיום תיאור חלקי בלבד של מה שקורה ברשתות-ענק מודרניות.
גרסה פשוטה של הערך, לגיל 12. כל מה שכתוב כאן מופיע גם בערך המלא.
תחשבו על תלמיד שמשנן בעל-פה את כל התשובות של מבחני-העבר, בלי להבין את החומר. אם במבחן יחזרו אותן שאלות, הוא יצליח מצוין. אבל אם תופיע שאלה חדשה, הוא ייכשל, כי הוא למד תשובות ולא חומר.
גם למודלים של בינה מלאכותית זה קורה, וזה נקרא התאמת-יתר (Overfitting). המודל "משנן" את הדוגמאות שעליהן התאמן, במקום ללמוד מהן את הכלל. על מה שכבר ראה הוא מצליח מצוין. על מקרים חדשים הוא נכשל.
מתי זה קורה יותר? כשהמודל גדול מדי ביחס לכמות הדוגמאות. יש לו כל כך הרבה "מקום", שהוא יכול פשוט לזכור כל דוגמה בנפרד. יש גם בעיה הפוכה: מודל פשוט מדי, שלא תופס אפילו את התבנית הבסיסית, ולכן טועה גם בדוגמאות שעליהן התאמן. המטרה היא איזון.
איך מגלים את זה? בדיוק כמו בבית-הספר: נותנים למודל מבחן עם דוגמאות שהוא מעולם לא ראה באימון. אם הוא מצוין בתרגול וחלש במבחן, זה הסימן. יש גם דרכים למנוע את זה. באחת מהן מכבים בכל סבב אימון, באקראי, חלק מהיחידות הקטנות שבתוך המודל, כך שהוא לא יכול לסמוך יותר מדי על תבנית אחת. זה קצת כמו קבוצת כדורגל שמתאמנת פעם בלי שחקן אחד ופעם בלי אחר: כולם לומדים לשחק, ואף אחד לא רק מחכה לכוכב. דרך אחרת היא לעצור את האימון ברגע שהציונים במבחן מתחילים לרדת, גם אם בתרגול הם עוד עולים.
ויש עוד חידה פתוחה: חוקרים מצאו רשתות ענקיות, עם הרבה יותר מספרים פנימיים מדוגמאות, שדווקא מצליחות היטב גם על מקרים חדשים. עדיין אין לזה הסבר מלא. אבל הבדיקה נשארת אותה בדיקה, גם למודלים וגם לכם: מה שמכריע הוא שאלה שעוד לא ראיתם.
מה המושג אומר לארגון ולעסק. כל עובדה כאן מופיעה גם בערך המלא.
התאמת-יתר היא מצב שבו מודל מצליח מצוין על הנתונים שעליהם נבנה ונכשל על מקרים חדשים, כי במקום ללמוד עקרונות הוא שינן את הדוגמאות. במונחים עסקיים: תוצאות מרשימות בהדגמה, שלא מחזיקות מעמד מול המציאות.
זה פוגש אתכם בכל פעם שמציגים לכם ביצועים של מודל, של ספק או של צוות פנימי שאימן או כוונן מודל על הנתונים שלכם. השאלה המכרעת היא על אילו נתונים נמדדו הביצועים. מדידה על נתוני האימון עצמם אינה מעידה על מה שיקרה במקרה חדש; המדידה הרלוונטית היא על קבוצת בדיקה נפרדת שהמודל מעולם לא ראה, והסימן הקלאסי לבעיה הוא פער גדול בין שני המספרים. הסיכון גדל כשהמודל גדול ביחס לכמות הנתונים, כי מודל כזה יכול פשוט לזכור כל דוגמה בנפרד. לכן כדאי לשים לב במיוחד כשמכווננים מודל על מאגר ארגוני קטן.
יש גם כשל הפוך, התאמת-חסר: מודל פשוט מדי, שמפספס את התבנית אפילו בנתוני האימון וגרוע בכל מקום. המטרה היא איזון בין מספיק גמישות ללכוד תבניות אמיתיות לבין מספיק ריסון כדי לא להיצמד לרעש האקראי שבנתונים. לשם כך יש כלים מקובלים: רגולריזציה, שמוסיפה עונש על מורכבות-יתר; Dropout, שמכבה באקראי חלק מהנוירונים בכל סבב אימון; אימות-הצלבה, בדיקה חוזרת על חלוקות שונות של הנתונים; ועצירה מוקדמת של האימון כשהביצועים על נתוני הבדיקה מתחילים לרדת. אין צורך להבין את המתמטיקה, אבל כדאי לשאול אם הם הופעלו.
וגבול אחד של הידע הקיים: מחקר עדכני יחסית מצא רשתות ענקיות, עם הרבה יותר פרמטרים מדוגמאות, שבכל זאת מכלילות היטב, תופעה שנקראת "התאמת-יתר שפירה" ועדיין לא הוסברה במלואה. המשמעות המעשית: לא "הוא גדול מדי ולכן ישנן" ולא "הוא גדול ולכן יכליל" מספיקים כהסבר. הבדיקה על נתונים חדשים היא שמכריעה.
שאלות שכדאי לשאול ספק, צוות או יועץ:
- על אילו נתונים נמדדו הביצועים שאתם מציגים, ואיך וידאתם שהמודל לא ראה אותם באימון?
- מה הפער בין הביצועים על נתוני האימון לביצועים על קבוצת הבדיקה?
- כמה דוגמאות היו באימון, ביחס לגודל המודל?
- אילו טכניקות למניעת התאמת-יתר הופעלו, ולפי מה הוחלט מתי לעצור את האימון?
- האם בדקתם גם את הכשל ההפוך, שהמודל פשוט מדי ומפספס את התבנית?
📬 הגיליון השבועי של Wiki-AI
פעם בשבוע, ביום ראשון: שלושת הדברים החשובים שקרו בעולם הבינה המלאכותית, בעברית פשוטה, וערכים חדשים באנציקלופדיה. לגיליונות
שאלות נפוצות ❓
מה ההבדל בין התאמת-יתר להתאמת-חסר?
התאמת-יתר היא מודל שמשנן את נתוני-האימון ונכשל על מקרים חדשים. התאמת-חסר היא ההפך — מודל פשוט-מדי שאפילו לא לוכד את התבנית הבסיסית בנתוני-האימון עצמם, ולכן מבצע גרוע גם עליהם וגם על נתונים חדשים.
מה זו רגולריזציה?
עונש מתמטי שמוסיפים לפונקציית-האימון על מורכבות-יתר של המודל, כדי להרתיע אותו מלהסתמך על תבניות אקראיות וספציפיות-מדי לנתוני-האימון.
מה עושה Dropout?
מכבה אקראית חלק מהנוירונים בכל סבב-אימון, כך שהמודל לא יכול להסתמך יותר מדי על תבנית או נוירון בודד. תואר לראשונה במאמר מ-2014 ב-Journal of Machine Learning Research, ושיפר ביצועים במשימות ראייה, דיבור, סיווג-מסמכים וביולוגיה חישובית.
מה זו "התאמת-יתר שפירה" ולמה היא מפתיעה חוקרים?
תופעה שבה רשתות-נוירונים ענקיות, עם הרבה יותר פרמטרים מכמות-הדוגמאות, עדיין מכלילות היטב לנתונים חדשים — בניגוד לציפייה הקלאסית שמודל כזה פשוט ישנן. התופעה עדיין לא הוסברה תיאורטית במלואה.