Machine Learning for dummies
מאת: ד"ר מוריה לוי

הספר Machine Learning for dummies הוא ספר בסדרת ספרים המלמדת יסודות של תחומי דעת שונים. הספר שהופק בחסות IBM, נכתב בשנת 2018 על ידי Judith Hurwitz, בבעלותה חברת ייעוץ בתחום, יחד עם אחד עובדיה- Daniel Kirsch. לטעמי, Hurwitz ו- Kirsch עשו עבודה מצוינת בהנגשת הידע הראשוני של תחום זה, גם להדיוטות, בדרך קלה ונעימה לקריאה ועם זו מלמדת ומחדשת.

 

הספר כמובן כולל הרבה יותר מהמתואר כאן, ומוצג באופן הדרגתי כמו בצל- כל פעם שכבה נוספת מעמיקה יותר.
לכל מי שרוצה להכיר את התחום- זהו ספר מומלץ ביותר- רוצו לקרוא.
IBM מאפשרת גישה חינמית בכתובת: https://www.ibm.com/downloads/cas/GB8ZMQZ3 . שווה!

 

להלן מפת הספר:

מהי למידת מכונה?

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

 

  א. הסקה סיבתית (reasoning)- מתן סיבתיות להחלטות/המלצות הבינה

  ב. עיבוד שפה טבעי (natural language processing- NLP)- פיצוח שפה טבעית בטקסט אט בקול

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

עד לפני הופעת למידת המכונה הייתה הבינה המלאכותית בעיקרה סיבתית (reasoning),

מבוססת חוקים עסקיים (business rules) (מ.ל.). אחד המאפיינים המשמעותיים של בינה מלאכותית

הינו היותו מבוסס על מודלים סטטיסטיים,

המסייעים גם להבין מאפיינים קיימים של הנתונים, אך גם לחזות על בסיס ניתוחים אלו (predictive analytics).

יכולות אלו מזכירות יכולות של תחום כריית הנתונים (data mining),

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

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

 

שלוש קטגוריות מרכזיות של למידת מכונה:

 

א. למידה מפוקחת (supervised learning)

  יש ידע מקדים לגבי מבנה הנתונים ותכניו

  • כאשר המאפיינים רציפים נשתמש באלגוריתמים של regression; בדידים- classification

 ב. למידה לא מפוקחת (unsupervised learning)

  • כמות גדולה של הנתונים לא מתויגת (למשל- שיח ברשת)
  • למידת המכונה מחפשת דפוסים בנתונים ומסווגת/מתייגת את התכנים, בהתאם להקשר
  • דוגמת שימוש: איסוף מידע על מחלה/ חיידק

 

ג. למידה מתגברת (reinforcement learning)

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

 

למידה עמוקה (deep learning) היא מתודה ספציפית של למידת מכונה, המשלבת לפחות 3 רמות של רשתות

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


                                                                                                                                                                     חזרה

נתונים

נתונים הם בסיס מרכזי בלמידת מכונה.
מקורות הנתונים מגוונים, במספר ממדים:

  •  פנים ארגוניים / חוץ ארגוניים
  •  מובנים (מערכות תפעוליות) / אינם מובנים (תוכן ברשתות חברתיות)
  •  מרובים (לדוגמה מסנסורים) / מורכבים (סרטי וידאו)

למידת מכונה מתבססת על נתוני עתק (big data), נתונים המתאפיינים בארבעת ה- V, כולם את חלקם:

  •  Volume- היקפים עצומים של נתונים
  •  Velocity- מהירות הנדרשת בהעברת הנתונים
  •  Variety- מקורות נתונים מגוונים ומתרחבים כל העת
  •  Veracity- אמיתות של נתונים המייצגים יחד מציאות

 

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

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

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

 

אתגרים:

  •  נתונים לא מדויקים
  •  נתונים לא מייצגים דיים
  •  נתונים לא מטויבים
  •  היקף נתונים מספק כדי לאפשר למידה
  •  נתונים שניתן לדעת/להבין את הקשרם (עץ בלי עלים בחורף- הקשר מצוין; בקיץ- חולה)
  •  סינון נתונים שנראים כרעש אך מעידים על שינוי מגמה
  •  שימוש בנתונים ספציפיים, המוביל להתאמת יתר (over fitting) של המודל
  •  הוספת מאגרי מידע ונתונים נוספים שיכולים אכן לתרום למודל
                                                                                                                                                            חזרה

 

אלגוריתמים

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

או מורכבים מאד, בהתאם לאופי המשימה ודרך מימושה.

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

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

וחשוב לדעת לבחור את המשפחות הנכונות לצורך,

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

 

     • באסיאניים (Bayesian): מסייעים לפצח איך נראה המודל,
       ללא תלות במה שנראה על פני השטח. שימושיים במיוחד במציאות של חסר בנתונים.

   

     • אשכולות (Clustering): הבנת אובייקטים על ידי שיוכם
       לאשכולות שונים בהתאם לטיבם. שימושיים כאשר אין תיוג.

 

     • עצי החלטה (Decision trees): אלגוריתמים המבנים תוצאות בדרך
       היררכית של עצים, כאשר לכל עלה בעץ מוצמדת סבירות באחוזים לציון סיכויי מימושו.
       שימושי כאשר למשל רוצים להחליט מה הסבירות של אוכלוסיות שונות לנהוג בדרך מסוימת.

   

      • צמצום ממדיות (Dimensionality reduction): אלגוריתמים המסייעים
        לצמצום עודף מידע, שאינו תורם למודל. שימושי למשל

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

 

     • מבוסס מופעים (instance based): התאמת נתונים חדשים בהתבסס על קרבה

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

 

     • רשתות נוירונים ולמידה מעמיקה (neural networks and deep learning):
       חיקוי פעולת המוח, ברמה אחת או מספר רמות של רשתות נתונים המקושרות ביניהם.

       בלמידה עמוקה- לפחות 3 רמות.

 

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

 

     • רגולציה (regularization) למניעת התאמת
       יתר: טכניקה לשינוי מודלים ומניעת בעיית התאמת יתר.

     

     • למידת מכונה מבוססת חוקים עסקיים (rule based):
       שימוש בחוקים עסקיים לתיאור התנהגות המכונה.

 

דוגמאות טיפוסיות:

 

      א. חיזוי מגמות (למשל שינוי העדפות לקוח, שימור לקוחות):

          classification statistical algorithms such as logistic regression and neural networks.

 

      ב. זיהוי פנים (למשל באיתור דמויות במצלמות אבטחה): deep learning algorithms and neural network algorithms

        . Image analytics לאינדוקס וחיפוש מול סדרת סרטים תוך סיווג לקטגוריות שונות של עצמים.

 

      ג. חיזוי שבר (למשל לתחזוקה מניעתית): regression algorithms- מתאים מאד בגלל היקף התכנים

         של הסנסורים השונים (IOT) וההתייחסות הרציפה אליהם ולזמן הנכון לתחזוקה.

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

 

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

    לרבות טכניקות ליניאריות ולמידה עמוקה מבוססת רשתות נוירונים. ההונאות השכיחות 20-80 תזוהינה

    בדרך כלל על ידי כלים ליניאריים, בעוד ליתר, יופעלו כלי למידת המכונה האחרים.

 

הערה: יש כיום כלים מוכנים המסייעים בבחירה (לפחות חלקית) של האלגוריתמים המתאימים לשימוש.

                                                                                                                                                                    חזרה

מודלים

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

 

אתגרים:

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

 

                                                                                                                                                                         חזרה

תהליך העבודה

תהליך העבודה בלמידת מכונה כולל:

 

א. גיבוש מודל

   

     א. זיהוי נתונים רלוונטיים בתוך ומחוץ לארגון, ובחירתם לשימוש

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

     ג. טיוב נתונים

     ד. בחירת אלגוריתמים

 

ב. אימון המכונה

 

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

 

ה. אופטימיזציה: אופטימיזציה של האלגוריתמים בשימוש בהתאם לביצועים

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

 

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

ד. חיזוי
   הפעלת המכונה על נתוני אמת ולמידה מהתוצאות המתקבלות.

ה. הערכה

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

 

                                                                                                                                                                  חזרה

התנעת פעילות למידה בארגון

התנעת פעילות למידת מכונה בארגון כוללת:

 

     א. הכשרת הצוות (לא ממליצים להסתמך רק על מומחים מבחוץ),

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

     ב. לימוד והבנה כיצד למידת מכונה יכולה לסייע בארגון, ברמה כללית (למידה מארגונים אחרים- מ.ל.)

     ג. מיקוד בבעיה עסקית לקידום

     ד. זיהוי מקורות מידע נסתרים היכולים לסייע

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

     ו. החלטה על צעדי המשך ודרך התרחבות ארגונית.

 

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

                                                                                                                                                                            חזרה

מגמות עתידיות

כותבי הספר מציגים, בעת כתיבתו בשנת 2018, 10 מגמות שמתחילות להתממש, ו/או נראה שכך יקרה בקרוב:

 

     א. שילוב של למידת מכונה ברוב האפליקציות המשמשות אותנו.

     ב. שימוש בנתונים שכבר עברו אימון כשירות שניתן לרכוש.

     ג. שילוב יתר מודלים בסביבות חיות, עם ממשק משתמש (כיום רוב המודלים משמשים offline).

     ד. שימוש הולך וגובר בלמידת מכונה כשירות שניתן לצרוך (מוכן).

     ה. הבשלת פתרונות עיבוד שפה טבעי (NLP).

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

        הנ״ל יהיה במספר מרכיבים, לרבות בכל הקשור בתצוגה ברורה וטובה של נתונים (data visualization).

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

   ח. אוטומציה של תהליכי בחירת האלגוריתמים ותהליכי אימון הנתונים.

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

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

                                                                                                                                                                              חזרה