ענף בסטטיסטיקה ובמדעי המחשב, בו נחקרים אלגוריתמים וארכיטקטורות אשר מסוגלים ללמוד מתוך ניסיון מוויקיפדיה, האנציקלופדיה החופשית
למידת מכונה (באנגלית: Machine Learning; לעיתים מכונה גם למידה חישובית) היא תת-תחום במדעי המחשב ובבינה מלאכותית המשיק לתחומי הסטטיסטיקה והאופטימיזציה. התחום עוסק בפיתוח אלגוריתמים המיועדים לאפשר למחשב ללמוד מדוגמאות, ופועל במגוון משימות חישוביות בהן התכנות הקלאסי אינו אפשרי. אין לבלבל בין תחום זה, שבו המחשב הוא הלומד, ובין למידה ממוחשבת, שבה המחשב משמש כעזר למידה על ידי הרצת לומדה או בדרך אחרת.
למידת מכונה | |||||||||
![]() | |||||||||
תחומים | |||||||||
מדעי המחשב | סטטיסטיקה | ||||||||
כריית מידע | בינה מלאכותית | ||||||||
|
שני תחומים מקבילים ללמידת מכונה הם תחום כריית מידע (Data Mining) ותחום זיהוי תבניות (Pattern Recognition) שרבים מן הכלים והאלגוריתמים שפותחו בו משותפים לתחומים הללו.
ארתור סמואל הגדיר את למידת המכונה בשנת 1959 כ-"תחום מחקר המאפשר למחשבים את היכולת ללמוד מבלי להיות מתוכנתים באופן ספציפי".[1] טום מ. מיטשל סיפק הגדרה פורמלית יותר: "תוכנית מחשב תיקרא לומדת מניסיון E ביחס למחלקת משימות T ומדד ביצועים P, אם הביצועים של משימות ב-T, בהתאם למדד P, משתפרים עם הניסיון E".[2]
המטרה המרכזית של למידת המכונה היא טיפול ממוחשב בנתונים מן העולם האמיתי עבור בעיה מסוימת, כאשר לא ניתן לכתוב תוכנת מחשב עבורה[3] למשל, בעיית זיהוי שמומחה אנושי מסוגל לפתור, אך לא מסוגל לכתוב את הכללים לזיהוי בצורה מפורשת, או שהם משתנים עם הזמן ולא ניתנים לכתיבה מראש.
מטרת הלמידה יכולה להיות מידול, חיזוי או גילוי (דטקציה) של עובדות לגבי העולם האמיתי. לדוגמה: עבור זיהוי תווים אופטי ניתן להשתמש בלמידת מכונה כדי לגלות מהי האות הכתובה או המודפסת. מערכות זיהוי דיבור יכולות גם הן להשתמש בלמידת מכונה כדי ללמוד, בהינתן אותות קוליים כלשהם, מהי ההברה שיצרה אותם. דוגמה נוספת היא מערכות המלצה, מערכות המבוססות על נתונים המצביעים על קשר בין קבוצת משתמשים/אנשים אקראית לבין קבוצת פריטים שונים, ויודעת למשל להציע פריטים משלימים ללקוחות, בהתבסס על ניתוח נתונים שנלמדו מהעבר מקבוצת אנשים אחרת, שחיפשה פריטים בעלי מאפיינים דומים.
מספר גישות התפתחו עם השנים בתחום התאורטי של למידת מכונה. ההבדלים ביניהן מבוססים על ההנחות השונות לגבי עקרונות ההיסק המשמשים להכללה מתוך מידע מוגבל. הבדלים אילו מבוססים על הגדרות שונות להסתברות (גישה בייסיאנית לעומת גישה קלאסית) והנחות על הדרך בה נוצר המידע (דיסקרמינטיבי לעומת גנרטיבי). הגישות השונות כוללות את:
בעקבות הגישות התאורטיות צמחו מספר אלגוריתמים מעשיים. למשל, תאוריית PAC עוררה השראה לאלגוריתמי Boosting, תאוריית VC הובילה לאלגוריתם מכונת וקטורים תומכים (SVM) והסקה בייסיאנית הובילה לאלגוריתמי רשתות בייסיאניות.
ניתן לזהות שלוש גישות שונות לפתרון בעיות החלטה:
נהוג לחלק את אלגוריתמי למידת המכונה למספר סוגים:
למידת מכונה כוללת אוסף ידוע של כמה עשרות אלגוריתמים. ניתן לסווג אלגוריתמים אילו על פי מספר תבחינים.
אלגוריתם עצל לא מבצע חישוב עד שלא מתבקש לענות על שאלה. כאשר נשאלת שאלה האלגוריתם אוסף נתונים רלוונטיים, מבצע חישוב ונותן תשובה. דוגמה לאלגוריתם עצל הוא אלגוריתם שכן קרוב.
למולם האלגוריתמים החרוצים משתמשים בנתוני הלימוד על מנת לבנות מודל מתמטי אשר מהווה בסיס לפתרון הבעיה. כאשר האלגוריתם מתבקש לענות על שאלה הוא משתמש בנתוני השאלה על מנת לפתור את המודל. דוגמה לאלגוריתם חרוץ הוא אלגוריתם של אשכולות (Clusterization).
אלגוריתם מקומי הוא אלגוריתם שמחשב פתרון שתקף רק לסביבה שבה נשאלה השאלה. דוגמה לכך היא רגרסיה מקומית עם משקלות. אלגוריתם זה מחשב קו (או משטח) רגרסיה בהתאם לנקודות בסביבה נתונה. כל נקודה בתהליך הרגרסיה מקבלת משקל הפוך למרחקה מהמקום שבו מחושב המודל.
אלגוריתם גלובלי לעומתו מחשב מודל שאמור להיות תקף בכל מרחב הנתונים הרלוונטי.
להלן מספר אלגוריתמים ידועים:
התפתחות למידת המכונה היא חלק אינטגרלי מהתפתחות תחום הבינה המלאכותית. בתחילת הדרך עיקר המאמץ היה לחקות את התנהגות המוח האנושי. מודל הפרספטרון הומצא בשנת 1957 ויצר תקווה רבה בתחום בשנות ה-60. מגבלותיו של המודל לייצג פונקציות מורכבות הועלו על ידי מארוין מינסקי, דבר שהשפיע על חוקרים רבים באותה תקופה לעצור מלפתח את המודל במהלך השנים הבאות.
במהלך שנות ה-70 של המאה ה-20 תחום למידת המכונה נכנס לסוג של תרדמת כאשר מערכות מומחה היוו את מוקד העניין בתחום הבינה המלאכותית. באמצע שנות השמונים החלה תקומה חוזרת בתחום כאשר הומצאו עצי ההחלטה והופצו בתוכנה, ויתרונם היה ביכולת להציגם ובקלות הסברתם. בנוסף הם היו מגוונים ונתנו מענה למספר רב של בעיות. גם המודלים של רשתות נוירונים החלו להתפתח מחדש, כשתהליך ההתפשטות לאחור (back-propagation) היווה פריצת דרך בתחום. רשתות נוירונים עם שכבות נסתרות יכלו עתה להביע פונקציות רבות ואפשרו להתגבר על מגבלותיו של הפרספטרון. גם עצי ההחלטה וגם רשתות הנוירונים שימשו עתה באפליקציות פיננסיות כגון אישור הלוואות, זיהוי תרמיות וניהול תיקים, ובתעשייה הם שיפרו תהליכים רבים למשל בתחום האוטומציה בדואר.
בשנות התשעים עם כניסת האינטרנט ותחילתו של עידן התפוצצות המידע החלה התקדמות רבה בתחום למידת המכונה. בשנת 1995 פורסם לראשונה אלגוריתם מכונת וקטורים תומכים (SVM), ואומץ כאלגוריתם מוביל. תוכנות קוד פתוח שנכתבו לאלגוריתם הפכו אותו פופולרי לשימוש.
בשנים האחרונות חלו התפתחויות נוספות בתחום. רגרסיה לוגיסטית התגלתה מחדש ועוצבה לתת מענה לבעיות עם טווח רחב יותר. אלגוריתמים כמו "סיווג בייסיאני נאיבי", רשתות בייסיאניות, ומקסימום אנטרופיה הביאו לתוצאות מצוינות במגוון בעיות. בעקבותיהם פותחו אלגוריתמים משולבים, המשתמשים באנסמבל של מסווגים כגון אלגוריתם אדה בוסט, ויערות אקראיים, שגם הם הביאו לשיפור ניכר בתוצאות.
תת תחום נוסף שהפך פופולרי מהעשור הראשון של המאה ה-21 הוא תחום הלמידה העמוקה (Deep Learning),שמתבסס על רשתות נוירונים בעלות מספר רב של שכבות. השימוש הפופולרי במושג "deep belief nets" ובקיצור רשתות עמוקות נטבע במאמר המשפיע מ-2006 של הינטון, אוסינדרו וטה.[7]
מגמה המתפתחת בתחום למידת המכונה, היא הסביבה בה פועלות מכונות אלו. כאשר המונח "סביבה" מתייחס לארכיטקטורת המחשוב בה מתבצעת למידת המכונה. בעוד, בעבר למידת מכונה קלאסית, יוחסה לתוכנית בודדת הרצה בסביבת מחשב בודד, הרי שכיום, הארכיטקטורה מתרחבת לכדי רשתות מחשבים לומדות, תוך שימוש בעשרות אלפי מחשבים וניצול כוחם של עשרות אלפי מעבדים המשובצים בהם.
המונח "סביבה" מתייחס לא רק לארכיטקטורה, אלא גם למקורות איסוף הנתונים, שנע החל מקבוצת אנשים אקראית, דרך מנתח נתונים (דאטא-אנליסט), מקבל החלטה לו יש סוג מסוים של (סט) דרישות ממערכת לומדת זאת ועד למסגרת חברתית, פוליטית, חוקית, הסובבת סביב פריסת המערכת. מערכת לומדת, יכולה לכלול בסביבה שלה גם תתי מערכות לומדות המתקשרות עמה באמצעות רשת תקשורת ותוכנה ייעודית.[8]
דוגמאות ללמידת מכונה בישראל:
Seamless Wikipedia browsing. On steroids.