דוד משיח

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

סט האימון מזיז את השגיאה פי 390. שום דבר לא מנבא זאת.

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

תיקון, 30 באוגוסט 2026. המדד שלהלן נבנה מחדש מאז שנכתבה הרשימה הזו, ושמו שונה ל־MetaXFam-D. בגרסה שעליה חושבו התוצאות האלה, 61.6 אחוזים מן התאים היו כפילויות: המחוללים דוגמים פרמטרי צורה רציפים, ועל רשת של 48 על 48 ערכים רבים נוחתים על אותה תמונת פיקסלים בדיוק, כך שבמשפחות מסוימות היו רק שלוש גאומטריות שונות מתוך שש מאות. הדבר מנפח ציונים בתוך ההתפלגות וציונים בפיצול אקראי, דרך שינון. כל מה שלהלן הוא תוצאה בין־משפחתית, וסוג התוצאות הזה מושפע הרבה פחות לפי הבנייה מחדש — אבל מושפע פחות אינו אינו מושפע, ולא הרצתי את המספרים האלה מחדש על הנתונים החדשים.

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

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

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

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

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

המערך, ולמה הוא לקח כל כך הרבה זמן

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

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

רוב העבודה לא היה הניסוי. הוא היה להפוך את המאגר לישר מספיק כדי שלניסוי תהיה משמעות.

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

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

דברים מהסוג הזה הם רוב מה שבניית מדד היא.

הפיזור

ציון המקרה הגרוע על המשפחות שהוחזקו בחוץ, לפי הזוג שאומנתם עליו:

מטרההבחירה הטובהחציוןהבחירה הגרועה
C11, שתי משפחות-7.86-25.07-78.77
C22, שתי משפחות-7.80-80.62-275.76
C33, ארבע משפחות-3.28-99.51-1273.24

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

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

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

זו אינה תכונה של מודל אחד

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

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

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

אז המנוף אמיתי. וזה מה שהופך את החלק הבא לגרוע יותר.

תשע דרכים לבחור, ואף אחת לא עובדת

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

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

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

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

על הרכיב השלישי הוא היה שלילי. מינוס 0.12 ומינוס 0.10. כלל שעוזר לכם על שני צירים ומטעה אתכם באופן פעיל על השלישי אינו כלל.

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

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

המספר שאני חייב לפתוח בו

הסתכלו שוב על עמודת הבחירה הטובה בטבלה. כל אחד מהמספרים האלה שלילי.

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

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

מה זה לא מוכיח

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

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

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

החלק שאינו על מתכת

הוציאו את ההנדסה, ומה שנשאר הוא שאלה על היכן המנוף במערכת למידת מכונה באמת יושב.

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

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

הכול פתוח, והוא זז מאז. ה־DOI מוביל עכשיו ל־MetaXFam-D, המדד שנבנה מחדש: 18 משפחות של 172 תאים שנבדקו כשונים זה מזה, מאגר מורחב שמכסה 29, הפותר, המחוללים, וביקורת הכפילויות שמצאה את הפגם בנתונים שעליהם חושבו התוצאות האלה. 22 המשפחות עם 600 תאים כל אחת שתוארו למעלה הן הגרסה שהוחלפה: https://doi.org/10.5281/zenodo.21597150