מערכי נתונים: חלוקה של מערך הנתונים המקורי

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

קבוצות אימון, אימות ובדיקה

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

איור 8. עמודת נתונים אופקית שמחולקת לשני חלקים: כ-80% ממנה הם קבוצת האימון וכ-20% הם קבוצת הבדיקה.
איור 8. הפיצול לא מיטבי.

 

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

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

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

  • קבוצת אימות מבצעת את הבדיקה הראשונית של המודל במהלך האימון שלו.
איור 9. סרגל אופקי שמחולק לשלושה חלקים: 70% ממנו הם קבוצת האימון, 15% הם קבוצת האימות ו-15% הם קבוצת הבדיקה
איור 9. פיצול הרבה יותר טוב.

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

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

איור 10. תרשים תהליך עבודה שכולל את השלבים הבאים:
            1. אימון המודל בקבוצת האימון.
            2. הערכת המודל בקבוצת האימות.
            3. משנים את המודל בהתאם לתוצאות בקבוצת האימות.
            4. חוזרים על שלבים 1, 2 ו-3, ובסופו של דבר בוחרים את המודל שמניב את הביצועים הטובים ביותר בקבוצת האימות.
            5. מאשרים את התוצאות בקבוצת הבדיקה.
איור 10. תהליך עבודה טוב לפיתוח ובדיקה.

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

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

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

בעיות נוספות בקבוצות בדיקה

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

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

לסיכום, קבוצת בדיקות או קבוצת אימות טובות עומדות בכל הקריטריונים הבאים:

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

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

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