הבנת הבעיה

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

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

הצגת היעד

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

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

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

תרחיש לדוגמה של למידת מכונה

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

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

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

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

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

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

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

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

בדיקת ההבנה

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

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

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

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

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

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

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

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

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

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

עוצמת החיזוי

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

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

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

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

בדיקת ההבנה

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

להנחיות נוספות לניתוח והכנה של מערכי נתונים, הכנת נתונים והנדסת תכונות ללמידת מכונה.

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

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

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

בדיקת ההבנה

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

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

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

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

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

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