התאמת יתר: מורכבות המודל

ביחידה הקודמת הוצג המודל הבא, שהסיווג שלו היה שגוי לגבי הרבה עצים בקבוצת הבדיקות:

איור 16. אותה תמונה כמו באיור 13. זהו צורה מורכבת שגורמת לקטגוריה שגויה של עצים רבים.
איור 16. המודל המורכב שמתנהג בצורה לא תקינה מהיחידה הקודמת.

המודל הקודם מכיל הרבה צורות מורכבות. האם מודל פשוט יותר יטפל טוב יותר בנתונים חדשים? נניח שתחליפו את המודל המורכב במודל פשוט מאוד – קו ישר.

איור 17. מודל קו ישר שמצליח להפריד בצורה מצוינת בין העצים החולים לעצים הבריאים.
איור 17. מודל פשוט הרבה יותר.

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

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

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

אתם מפתחים משוואה פיזיקלית. איזו מהנוסחאות הבאות תואמת יותר לסכין אוקאם?
נוסחה עם שלושה משתנים.
שלושה משתנים תואמים יותר לעיקרון אוקאם מאשר 12 משתנים.
נוסחה עם 12 משתנים.
12 משתנים נראים מסובכים מדי, לא? שתי נוסחאות הפיזיקה המפורסמות ביותר בכל הזמנים (F=ma ו-E=mc2) כוללות רק שלושה משתנים כל אחת.
אתם עובדים על פרויקט חדש של למידת מכונה, ועומדים לבחור את המאפיינים הראשונים. כמה תכונות כדאי לבחור?
בוחרים 1-3 תכונות שנראה שיש להן יכולת חיזוי חזקה.
מומלץ להתחיל את צינור עיבוד הנתונים עם מאפיין אחד או שניים בלבד. כך תוכלו לוודא שמודל ה-ML פועל כמצופה. בנוסף, כשיוצרים קו בסיס מכמה תכונות, מרגישים שנעשים צעדים קדימה.
בוחרים 4 עד 6 תכונות שנראה שיש להן יכולת חיזוי חזקה.
יכול להיות שבסופו של דבר תשתמשו בכל התכונות האלה, אבל עדיין עדיף להתחיל עם פחות. בדרך כלל, פחות תכונות מאפשרות פחות סיבוכים מיותרים.
כדאי לבחור כמה שיותר מאפיינים כדי שתוכלו להתחיל לראות לאילו מאפיינים יש את יכולת החיזוי החזקה ביותר.
כדאי להתחיל בקטן. כל תכונה חדשה מוסיפה מימד חדש למערך הנתונים של האימון. ככל שמספר המאפיינים גדל, נפח המרחב גדל במהירות כה רבה שהנתונים הזמינים לאימון הופכים להיות דלילים. ככל שהנתונים דלילים יותר, כך קשה יותר למודלים ללמוד את הקשר בין המאפיינים שחשובים בפועל לבין התווית. התופעה הזו נקראת 'קללת המאפיינים'.

רגולריזציה

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

  • התאמה טובה של הנתונים.
  • להתאים את הנתונים בצורה פשוטה ככל האפשר.

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

אובדן ומורכבות

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

$$\text{minimize(loss)}$$

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

$$\text{minimize(loss + complexity)}$$

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

מהי מורכבות?

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

תרגול: בדיקת האינטואיציה

עד עכשיו, התייחסנו באופן לא ברור למהות של מורכבות. לדעתכם, אילו מהרעיונות הבאים יכולים לשמש כמדדי מורכבות סבירים?
המורכבות היא פונקציה של המשקלים של המודל.
כן, זו אחת הדרכים למדוד את המורכבות של חלק מהמודלים. המדד הזה נקרא L1 regularization.
המורכבות היא פונקציה של ריבוע המשקלים של המודל.
כן, אפשר למדוד את המורכבות של חלק מהמודלים בדרך הזו. המדד הזה נקרא L2 regularization.
המורכבות היא פונקציה של ההטיות של כל התכונות במודל.
המדד 'הטיה' לא מודד מורכבות.