תלות בנתונים

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

תלות בנתונים

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

סיכום הרצאת הסרטון

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

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

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

אמינות

כמה שאלות שכדאי לשאול על האמינות של נתוני הקלט:

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

ניהול גרסאות

כמה שאלות שכדאי לשאול לגבי ניהול הגרסאות:

  • האם המערכת שמחשבת את הנתונים האלה משתנה אי פעם? אם כן:
    • באיזו תדירות?
    • איך אפשר לדעת שהמערכת הזו משתנה?

לפעמים, הנתונים מגיעים מתהליך ב-upstream. אם התהליך משתנה באופן פתאומי, המודל שלכם עלול להיפגע.

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

הכרחי

השאלה הבאה עשויה להזכיר לכם לגבי התאמה:

  • האם התועלת של התכונה מצדיקה את העלות של הכללתה?

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

קשרים

חלק מהתכונות קשורות (חיובית או שלילית) לתכונות אחרות. שאל את עצמך את השאלה הבאה:

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

לולאות משוב

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

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

  • מודל א', שהוא מודל חיזוי פגום.
  • מודל ב'.

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