למידת מכונה (Machine Learning) היא תחום בבינה מלאכותית ובמדעי המחשב. הוא קרוב לסטטיסטיקה ולאופטימיזציה. המטרה היא לפתח אלגוריתמים, תוכניות שמכוונות ללמוד מדוגמאות במקום לקבל כללים כתובים מראש. יש להבחין בינה לבין "למידה ממוחשבת" שבה המחשב רק עוזר בתהליך הלמידה של אדם.
ארתור סמואל הגדר זאת ב־1959 כיכולת של מחשבים ללמוד בלי תכנות ספציפי. טום מיטשל נתן הגדרה פורמלית יותר: מערכת לומדת אם הביצועים במשימה מסוימת משתפרים עם הזמן והניסיון.
מטרת למידת המכונה היא לטפל בנתונים אמיתיים ולבצע מידול, חיזוי או גילוי. יישומים ידועים הם:
- זיהוי תווים אופטי (OCR), לזהות אותיות בתמונה.
- זיהוי דיבור, למפות קול למילים.
- מערכות המלצה, להציע מוצרים לפי דפוסי שימוש של משתמשים אחרים.
יש גישות תאורטיות שונות בלמידת מכונה. ההבדלים נובעים מהנחות שונות על הסתברויות ועל איך נוצר המידע. שתי החלוקות המוכרות הן בייסיאנית מול קלאסית, ודיסקרימינטיבית מול גנרטיבית.
השלבים העיקריים בעיבוד בעיית סיווג הם: הסקה (ללמוד מודל מהדוגמאות) והחלטה (להשתמש במודל כדי לסווג דוגמאות חדשות). דרכי הפעולה העיקריות הן:
- מודלים גנרטיביים: למדנו עבור כל מחלקה את ההסתברות של התצפית (נראות) והסתברות תחילית (פריור), ואז מחשבים את ההסתברות שהדוגמה שייכת למחלקה באמצעות כלל בייס.
- מודלים דיסקרימינטיביים: לומדים ישירות את ההסתברות הפוסטריורית או פונקציה שמפרידה בין המחלקות.
- שימוש בפונקציה דיסקרמיננטית: בוחרים פונקציה שממפה כל דוגמה ישר למחלקה ללא הסתברויות.
מהתאוריה נולדו אלגוריתמים מעשיים: תאוריות כמו PAC ו־VC השפיעו על פיתוח Boosting ו‑SVM, והסקה בייסיאנית הובילה לרשתות בייסיאניות.
אלגוריתמים נחלקים לפי גישות פעולה ויעדים. קיימים סוגים רבים, וכל סוג מתאים לבעיות שונות.
יש עשרות אלגוריתמים. ניתן למיין אותם לפי תכונות כמו עצל לעומת חרוץ, מקומי לעומת גלובלי, ועוד.
אלגוריתם עצל לא מעבד את נתוני האימון עד שנשאל שאלה. דוגמה: שכן קרוב (k‑NN).
אלגוריתם חרוץ בונה מודל מראש ואז משתמש בו כדי לענות. דוגמה: אלגוריתם אשכולות (Clustering).
אלגוריתם מקומי פותר בעיה תוך התייחסות לאזור קטן של הנתונים. לדוגמה, רגרסיה מקומית משקללת נקודות קרובות יותר.
אלגוריתם גלובלי מנסה לבנות מודל תקף לכל מרחב הנתונים.
התחום מתקיים מאז שנות ה־50. הפרספטרון פותח ב־1957 ויצר תקווה מוקדמת. לביקורת של מארוין מינסקי היו השפעות והתקופה נכנסה ל"תרדמת" כשמומחי מערכות תפסו עדיפות. באמצע שנות ה־80 התחוללה תקומה: עצי החלטה ורשתות נוירונים עם אלגוריתם ה־backprop הביאו לקפיצת מדרגה. בשנות ה־90, עם האינטרנט, התקדמויות נוספות התרחשו; ב־1995 צץ אלגוריתם SVM. בעשור הראשון של המאה ה־21 צמחה למידה עמוקה (Deep Learning), כשהמאמר של הינטון מ־2006 תרם לשימוש ברשתות עמוקות.
הסביבה ההנדסית משתנה: במקום ריצה על מחשב יחיד יש כיום רשתות מחשבים ומאות אלפי מעבדים. גם מקורות הנתונים וההקשרים החברתיים, החוקיים והארגוניים משפיעים על מערכות לומדות. מערכות יכולות לכלול תתי־מערכות לומדות שמתקשרות אחת עם השנייה.
למידת מכונה היא שיטה שבה מחשב לומד מדוגמאות. כלומר, במקום לתת למחשב כללים מדויקים, נותנים לו דוגמאות והוא מנסה להבין מה הכלל.
מחשבים יכולים "ללמוד" כך שעם הזמן הם עושים עבודה טובה יותר.
הדברים שמכונות לומדות יכולים לעשות:
- לקרוא אותיות בתמונה (OCR). האותיות הן מה שהתוכנה מזהה.
- להבין דיבור כדי להפוך אותו למילים.
- להמליץ על מוצרים שאנשים אחרים אהבו.
יש דרכים שונות ללמד מחשב. חלקן מנסות להבין איך כל קבוצה נראית, וחלקן מנסות לבחור ישירות לאיזו קבוצה שייכת דוגמה.
מושג חשוב הוא הכללה. זה אומר שאם המחשב למד מדוגמאות, הוא צריך לדעת גם על דוגמאות חדשות.
אלגוריתם הוא סדרת צעדים למחשב. יש אלגוריתמים ש״ממתינים״ עד ששואלים אותם שאלה (לדוגמה שכן קרוב). ויש כאלה שבונים מודל מראש ואז עונים מהר.
"מקומי" אומר שהפתרון תקף קרוב לשאלה. "גלובלי" אומר שהוא נועד לעבוד בכל מקום.
הרעיון קיים מאז שנות ה־50. היו זמנים של התקדמות וזמנים של האטה. בשנות ה־80 חזרו להשתמש במודלים כמו עצי החלטה ורשתות נוירונים. בשנים האחרונות מדברים הרבה על למידה עמוקה.
כיום משתמשים בהרבה מחשבים יחד ובנתונים רבים. זה עוזר ללמוד מהר יותר ולפתור בעיות גדולות.
תגובות גולשים