בכל פרויקט טוב של מהנדסי תוכנה מוקדשת אנרגיה רבה לבדיקת האפליקציות. באופן דומה, מומלץ מאוד לבדוק את מודל ה-ML כדי לקבוע את הדיוק של התחזיות שלו.
קבוצות אימון, אימות ובדיקה
מומלץ לבדוק את המודל באמצעות קבוצה שונה של דוגמאות מזו ששימשה לאימון המודל. כפי שתראו בהמשך, בדיקה על דוגמאות שונות היא הוכחה חזקה יותר לכושר המודל מאשר בדיקה על אותה קבוצת דוגמאות.
מאיפה מגיעות הדוגמאות השונות האלה? באופן מסורתי בלמידת מכונה, מקבלים את הדוגמאות השונות האלה על ידי פיצול של מערך הנתונים המקורי. לכן, אפשר להניח שצריך לפצל את מערך הנתונים המקורי לשתי קבוצות משנה:
נניח שאתם מתאמנים על קבוצת האימון ומעריכים על קבוצת הבדיקה במספר סיבובים. בכל סיבוב, משתמשים בתוצאות של קבוצת הבדיקות כדי להנחות איך לעדכן את הפרמטרים העל-היפר ואת קבוצת המאפיינים. האם משהו לא בסדר בגישה הזו? בוחרים רק תשובה אחת.
ביצוע שלבים רבים של התהליך הזה עלול לגרום למודל להתאים באופן משתמע לפרטים המיוחדים של קבוצת הבדיקות.
כן! ככל שתשתמשו בתדירות גבוהה יותר באותה קבוצת בדיקות, כך סביר יותר שהמודל יתאים היטב לקבוצת הבדיקות.
כמו מורה שמלמדת 'לבחינה', המודל מתאים בטעות למערך הבדיקה, וכתוצאה מכך יכול להיות שיהיה קשה יותר להתאים את המודל לנתונים מהעולם האמיתי.
הגישה הזו בסדר. אחרי הכל, אתם מאומנים על קבוצת האימון ומעריכים על קבוצת בדיקה נפרדת.
למעשה, יש כאן בעיה עדינה. כדאי לחשוב מה יכול להשתבש בהדרגה.
הגישה הזו לא יעילה מבחינה חישובית. אל תשנו את ההיפארמטרים או את קבוצות המאפיינים אחרי כל סיבוב בדיקה.
בדיקות תכופות הן יקרות אבל חיוניות. עם זאת, בדיקות תכופות זולות בהרבה מאשר הדרכה נוספת. אופטימיזציה של הפרמטרים העל-היפר ושל קבוצת המאפיינים יכולה לשפר באופן משמעותי את איכות המודל, לכן תמיד כדאי להקצות זמן ומשאבים מחשוביים לעבודה עליהם.
חלוקת מערך הנתונים לשתי קבוצות היא רעיון טוב, אבל הגישה הטובה יותר היא לחלק את מערך הנתונים לשלוש קבוצות משנה.
בנוסף לקבוצת האימון ולקבוצת הבדיקות, קבוצת המשנה השלישית היא:
קבוצת אימות מבצעת את הבדיקה הראשונית של המודל במהלך האימון שלו.
משתמשים בקבוצת האימות כדי להעריך את התוצאות מקבוצת האימון.
אחרי שימוש חוזר בקבוצת האימות, אם נראה שהמודל מניב תחזיות טובות, אפשר להשתמש בקבוצת הבדיקה כדי לבדוק שוב את המודל.
התרשים הבא מציג את תהליך העבודה הזה.
'שינוי המודל' משמעותו שינוי כלשהו במודל – החל משינויים בשיעור הלמידה, הוספה או הסרה של מאפיינים ועד לתכנון מודל חדש לגמרי מאפס.
תהליך העבודה שמוצג באיור 10 הוא אופטימלי, אבל גם עם תהליך העבודה הזה, קבוצות הבדיקה וקבוצות האימות עדיין 'מתבלות' עם שימוש חוזר.
כלומר, ככל שמשתמשים יותר באותם נתונים כדי לקבל החלטות לגבי הגדרות של פרמטרים היפר-מרחביים או שיפורים אחרים במודל, כך פוחתת האמינות שהמודל יניב תחזיות טובות לגבי נתונים חדשים.
לכן, מומלץ לאסוף עוד נתונים כדי "לרענן" את קבוצת הבדיקות ואת קבוצת האימות. התחלה מחדש היא דרך מצוינת לאפס את הסטטוס.
תרגול: בדיקת האינטואיציה
שילבתם את כל הדוגמאות במערך הנתונים וחילקתם את הדוגמאות המעורבבות לקבוצות של אימון, אימות ובדיקה. עם זאת, ערך ההפסד בקבוצת הבדיקה נמוך בצורה מדהימה, ומעורר חשד לשגיאה. מה יכול להיות הגורם לבעיה?
רבות מהדוגמאות בקבוצת הבדיקה הן כפילויות של דוגמאות בקבוצת האימון.
כן. זו יכולה להיות בעיה במערך נתונים עם הרבה דוגמאות יתירות. מומלץ מאוד למחוק דוגמאות כפולות מקבוצת הבדיקות לפני הבדיקה.
תהליך ההדרכה והבדיקה הוא לא דטרמיניסטלי. לפעמים, במקרה, אובדן הניסוי נמוך מאוד. מריצים מחדש את הבדיקה כדי לאשר את התוצאה.
אמנם האובדן משתנה מעט בכל הרצה, אבל הוא לא אמור להשתנות כל כך הרבה עד שתחשבו שזכיתם בלוטו של למידת המכונה.
קבוצת הבדיקות פשוט הכילה דוגמאות שהמודל תפקד בהן טוב.
הדוגמאות חולקו באופן אקראי, כך שזה מאוד לא סביר.
בעיות נוספות עם קבוצות בדיקה
כפי שרואים בשאלה הקודמת, דוגמאות כפולות יכולות להשפיע על הערכת המודל.
אחרי שמחלקים מערך נתונים לקבוצות של אימון, אימות ובדיקה, צריך למחוק דוגמאות בקבוצת האימות או בקבוצת הבדיקה שהן כפילויות של דוגמאות בקבוצת האימון. הבדיקה היחידה הוגנת של מודל היא באמצעות דוגמאות חדשות, ולא כפולות.
לדוגמה, מודל שחוזה אם אימייל הוא ספאם, באמצעות שורת הנושא, גוף האימייל וכתובת האימייל של השולח כמאפיינים.
נניח שאתם מחלקים את הנתונים לקבוצות אימון ובדיקה, עם חלוקה של 80-20.
אחרי האימון, המודל הגיע לרמת דיוק של 99% גם בקבוצת האימון וגם בקבוצת הבדיקות. סביר להניח שציפיתם לדיוק נמוך יותר בקבוצת הבדיקות, ולכן אתם מעיינים שוב בנתונים ומגלים שרבות מהדוגמאות בקבוצת הבדיקות הן כפילויות של דוגמאות בקבוצת האימון. הבעיה היא שלא טיפלתם ברשאות כפולות של אותו אימייל ספאם ממסד הנתונים של הקלט לפני חלוקת הנתונים. אימנתם בטעות על חלק מנתוני הבדיקה.
לסיכום, קבוצת בדיקות או קבוצת אימות טובות עומדות בכל הקריטריונים הבאים:
גדולה מספיק כדי לספק תוצאות בדיקה בעלות מובהקות סטטיסטית.
מייצג את מערך הנתונים כולו. במילים אחרות, אל תבחרו קבוצת בדיקה עם מאפיינים שונים מקבוצת האימון.
מייצג את הנתונים מהעולם האמיתי שהמודל ייחשף אליהם כחלק מהמטרה העסקית שלו.
אפס דוגמאות כפולות בקבוצת האימון.
תרגילים: בדיקת ההבנה
בהינתן מערך נתונים יחיד עם מספר קבוע של דוגמאות, איזו מההצהרות הבאות נכונה?
כל דוגמה שמשמשת לבדיקת המודל היא דוגמה אחת פחות שמשמשת לאימון המודל.
חלוקת דוגמאות לקבוצות אימון/בדיקה/אימות היא משחק של סכום אפס.
זהו המאזן המרכזי.
מספר הדוגמאות בקבוצת הבדיקה חייב להיות גדול ממספר הדוגמאות בקבוצת האימות.
בתיאוריה, קבוצת האימות וקבוצת הבדיקות צריכות להכיל את אותו מספר דוגמאות או כמעט אותו מספר.
מספר הדוגמאות בקבוצת הבדיקה חייב להיות גדול ממספר הדוגמאות בקבוצת האימות או בקבוצת האימון.
בדרך כלל, מספר הדוגמאות בקבוצת האימון גדול ממספר הדוגמאות בקבוצת האימות או בקבוצת הבדיקה. עם זאת, אין דרישות אחוזים לגבי הקבוצות השונות.
נניח שקבוצת הבדיקות מכילה מספיק דוגמאות לביצוע בדיקה בעלת מובהקות סטטיסטית. בנוסף, בדיקה מול קבוצת הבדיקה מניבה אובדן נמוך. עם זאת, הביצועים של המודל היו גרועים בעולם האמיתי. מה עליך לעשות?
בודקים מה ההבדל בין מערך הנתונים המקורי לבין הנתונים מהעולם האמיתי.
כן. גם מערכי הנתונים הטובים ביותר הם רק תמונת מצב של נתונים מהעולם האמיתי. האמת המוחלטת שמתבססת עליהם נוטה להשתנות עם הזמן. למרות שקבוצת הבדיקות התאימה לקבוצת האימון בצורה טובה מספיק כדי להצביע על איכות מודל טובה, סביר להניח שמערך הנתונים לא תואם מספיק לנתונים מהעולם האמיתי.
יכול להיות שתצטרכו לאמן מחדש ולבדוק מחדש עם מערך נתונים חדש.
בודקים שוב באותה קבוצת בדיקות. יכול להיות שתוצאות הבדיקה היו חריגה.
יכול להיות שהבדיקה מחדש תניב תוצאות שונות במקצת, אבל סביר להניח שהשיטה הזו לא תהיה מועילה במיוחד.
כמה דוגמאות צריך לכלול בקבוצת הבדיקות?
מספיק דוגמאות כדי לקבל בדיקה בעלת מובהקות סטטיסטית.
כן. כמה דוגמאות יש? תצטרכו להתנסות.
לפחות 15% ממערך הנתונים המקורי.
יכול להיות ש-15% מהדוגמאות יהיו מספיקות ויכול להיות שלא.
[null,null,["עדכון אחרון: 2025-01-03 (שעון UTC)."],[[["Machine learning models should be tested against a separate dataset, called the test set, to ensure accurate predictions on unseen data."],["It's recommended to split the dataset into three subsets: training, validation, and test sets, with the validation set used for initial testing during training and the test set used for final evaluation."],["The validation and test sets can \"wear out\" with repeated use, requiring fresh data to maintain reliable evaluation results."],["A good test set is statistically significant, representative of the dataset and real-world data, and contains no duplicates from the training set."],["It's crucial to address discrepancies between the dataset used for training and testing and the real-world data the model will encounter to achieve satisfactory real-world performance."]]],[]]