דוד משיח

רשימה · למידת מכונה · מדידה

המדד מדד את המודל שלי, לא את הבעיה

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

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

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

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

המספר שנראה אמיתי

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

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

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

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

הבדיקה שכמעט אף אחד לא מריץ

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

שני דברים יצאו מזה, והם מצביעים לכיוונים הפוכים.

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

השני הוא הסיבה לרשימה הזו.

קריטריוןתחת היערתחת הרשת
אי־התאמה ממוצעת מרבית0.54, 0.540.14
ואסרשטיין פרוס0.39, 0.470.02
כיסוי גאומטרי0.28, 0.14-0.15
כיסוי כיווני0.19, 0.140.42

התוצאה הטובה ביותר שהייתה לי עברה מ־0.54, יציבה על פני שני תקציבים, ל־0.14 ולא ניתנת להבחנה סטטיסטית מאפס. השנייה בטיבה עברה מ־0.39 ו־0.47 ל־0.02, כלומר הפכה למטבע.

מה זה אומר בפועל

החזיקו את שני החצאים יחד, כי הניגוד ביניהם הוא כל הממצא.

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

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

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

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

למה אני כותב את זה כדבר בפני עצמו

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

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

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

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

הגרסה הכללית

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

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

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

המדד נבנה מאז מחדש ושמו שונה ל־MetaXFam-D, אחרי שהתברר כי 61.6 אחוזים מן התאים בגרסה ששימשה כאן היו כפילויות זה של זה — קריסת רסטריזציה על רשת של 48 על 48. הדבר מנפח ציונים בתוך ההתפלגות וציונים בפיצול אקראי, דרך שינון; המתאמים הבין־משפחתיים שלמעלה מושפעים הרבה פחות, ולא הרצתי אותם מחדש. הנתונים, הקוד וכל ציון לכל תת־קבוצה פתוחים: https://doi.org/10.5281/zenodo.21597150

מקורות

  1. Gretton, A., Borgwardt, K. M., Rasch, M. J., Schölkopf, B. and Smola, A. A Kernel Two-Sample Test. Journal of Machine Learning Research 13, 2012. אי־ההתאמה הממוצעת המרבית שהרשימה הזו בוחנת כמנבאת עבירוּת, בצורתה המקורית: מבחן דו־דגימתי בין התפלגויות, שאינו אותו דבר כמו ניבוי על השגיאה של מודל אחד.