הבנת הבעיה

כדי להבין את הבעיה, יש לבצע את המשימות הבאות:

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

צריך לציין את היעד

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

בטבלה הבאה מצוין בבירור היעדים של אפליקציות היפותטיות:

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

ניקוי תרחיש לדוגמה ל-ML

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

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

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

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

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

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

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

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

בחינת ההבנה

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

למידת מכונה חזויה ונתונים

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

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

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

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

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

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

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

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

כוח חיזוי

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

לחלק מהתכונות תהיה יכולת חיזוי גבוהה יותר מאחרות. לדוגמה, במערך נתונים של מזג אוויר, תכונות כמו cloud_coverage, temperature ו-dew_point יהיו חיזוי טוב יותר לגשם מאשר moon_phase או day_of_week. בדוגמה של אפליקציית הווידאו, אפשר לשער שתכונות כמו video_description, length ו-views יכולות לשמש כחיזוי טוב יותר לסרטונים שהמשתמש ירצה לצפות בהם.

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

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

בחינת ההבנה

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

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

חיזויים לעומת פעולות

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

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

בחינת ההבנה

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

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

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

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

סביר להניח שהיוריסטיקה לא תשיג להם מספר מדויק מספיק. הם יכולים ליצור מערך נתונים עם העמודות הבאות: number_of_callcenter_phones, user_issue, time_to_resolve, call_time ו-time_on_hold.

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