למידת מכונה (Machine Learning)
🆕 את הערך הזה אפשר לקרוא גם בגרסה לגיל 12 או בגרסה למנהלים.
הגדרה
למידת מכונה (Machine Learning) היא הגישה המרכזית ב-AI מודרני: המחשב לומד מדוגמאות, במקום שמתכנתים לו פתרון מפורש.
💡 דוגמה
במקום לכתוב למחשב כללים איך נראה חתול, מראים לו אלפי תמונות מתויגות של חתולים וכלבים, והוא לומד לבד להבדיל ביניהם.
מה זו למידת מכונה, ושלוש קטגוריות-הלמידה
למידת מכונה (Machine Learning) היא הגישה המרכזית לבניית בינה מלאכותית (AI) מודרנית: במקום שמתכנת יכתוב פתרון מפורש, כלל-אחר-כלל, למחשב איך לפתור בעיה, המחשב "לומד" את הפתרון בעצמו מתוך דוגמאות-נתונים — הוא מזהה דפוסים סטטיסטיים במידע, ומכליל מהם כדי לטפל גם במקרים חדשים שלא ראה קודם. ההגדרה הפורמלית המוכרת ביותר, שניסח חוקר-המחשב טום מיטשל ב-1997: תוכנית-מחשב "לומדת" ממשימה (T) וממדד-ביצועים (P), אם הביצועים שלה במשימה, כפי שנמדדים ב-P, משתפרים עם הצטברות-ניסיון (E). המונח עצמו טבע ארתור סמואל, חוקר ב-IBM, ב-1959, בהקשר של תכנית-מחשב ששיחקה דמקה ושיפרה את יכולתה במשחק ככל שצברה משחקים נוספים — אחד המימושים המעשיים הראשונים של הרעיון. אחד ספרי-הלימוד המרכזיים שמלמדים את התיאוריה הפורמלית הזו באוניברסיטאות ברחבי העולם, Understanding Machine Learning: From Theory to Algorithms (2014), נכתב בשותפות עם פרופסור שי שלו-שוורץ מהאוניברסיטה העברית בירושלים, המשמש כיום גם כמנהל-הטכנולוגיות-הראשי (CTO) של Mobileye.
למידת מכונה נחלקת לשלוש קטגוריות-על עיקריות, לפי סוג-הנתונים ואופן-הלמידה. "למידה מונחית" (Supervised Learning) — הנפוצה והוותיקה ביותר — מאמנת מודל על זוגות של קלט-ופלט-נכון-ידוע (למשל תמונות של חתולים וכלבים, כל אחת מתויגת מראש), והמודל לומד למפות קלט חדש לפלט נכון. "למידה בלתי-מונחית" (Unsupervised Learning) עובדת על נתונים לא-מתויגים כלל, ומחפשת מבנה או קבוצות-דמיון סמויות בתוך המידע בעצמה — למשל אשכול-לקוחות לפי דפוסי-קנייה, בלי שאף אחד הגדיר מראש אילו קבוצות "נכונות". "למידת חיזוק" (Reinforcement Learning) שונה מהותית: סוכן (Agent) פועל בסביבה, מקבל תגמול או עונש על פעולותיו, ולומד אסטרטגיה שממקסמת תגמול-מצטבר לאורך זמן — הגישה שמאחורי הישגים כמו AlphaGo, מערכת ה-AI של Google DeepMind שניצחה את לי סה-דול, אחד השחקנים המובילים בעולם במשחק גו, ב-2016.
תהליך האימון: חלוקת-נתונים והמלכודת של התאמת-יתר
התהליך הטכני של למידה מונחית — הענף הנפוץ ביותר בפועל — מתחיל בחלוקת מערך-נתונים לשלושה חלקים: מערך-אימון (Training Set) שהמודל לומד ממנו בפועל, מערך-אימות (Validation Set) שמשמש לכיוונון-הגדרות-האימון תוך-כדי-תהליך, ומערך-בדיקה (Test Set) שנשמר בצד ומשמש רק בסוף כדי להעריך ביצועים אמיתיים על נתונים שהמודל מעולם לא ראה. ההפרדה הזו קריטית כי מודל שמוערך על אותם נתונים שעליהם אומן עלול להיראות מוצלח באופן מטעה — הוא פשוט "שינן" את התשובות במקום ללמוד דפוס-כללי שמכליל היטב.
זו בדיוק הבעיה שנקראת "התאמת-יתר" (Overfitting) — אחת המלכודות הנפוצות ביותר בלמידת מכונה: מודל שמתאים את עצמו יתר-על-המידה למאפיינים ספציפיים, ולעיתים אקראיים, של מערך-האימון, במקום ללמוד את הדפוס-הכללי שבאמת מבחין בין המקרים. תוצאה טיפוסית: ביצועים מרשימים על מערך-האימון עצמו, אך ביצועים חלשים משמעותית על נתונים חדשים — כמו תלמיד ששינן פתרונות של תרגילים ספציפיים במקום להבין את השיטה שמאחוריהם, ונכשל ברגע שהמבחן משתמש בניסוח מעט שונה. הפתרון הנפוץ ביותר להתמודדות עם הבעיה, "ויסות" (Regularization), מוסיף לתהליך-האימון "עונש" מתמטי על מורכבות-יתר של המודל, מה שמכריח אותו להעדיף פתרונות פשוטים וכלליים-יותר על-פני פתרונות מסובכים שמתאימים בדיוק-מוגזם לנתוני-האימון הספציפיים.
רגרסיה מול סיווג, ושימושים בפועל
מבחינת אלגוריתמים בפועל, למידה מונחית מתחלקת לשני סוגי-בעיות עיקריים: "רגרסיה" (Regression) חוזה ערך-מספרי-רציף (למשל מחיר-דירה עתידי, בהתבסס על גודל ומיקום), ו"סיווג" (Classification) חוזה קטגוריה בין אפשרויות-קבועות (למשל "דואר-זבל" מול "לגיטימי"). אלגוריתמי-הלמידה עצמם מגוונים — עצי-החלטה (Decision Trees) שבונים סדרת-שאלות-מסתעפת דמוית-תרשים-זרימה, מכונות-וקטור-תומך (Support Vector Machines), ורשתות-נוירונים (Neural Networks) — הענף האחרון הוא זה שהפך דומיננטי במיוחד מאז 2012, ובגרסתו העמוקה-והמורכבת יותר (Deep Learning) עומד מאחורי כמעט כל הפריצות הטכנולוגיות המרשימות שהציבור הרחב מזהה כ-AI מודרני, כולל מודלי שפה גדולים.
השימושים המעשיים של למידת מכונה חוצים כמעט כל תעשייה כיום, לרוב בלי שהמשתמש-הקצה מודע לכך בכלל. סינון-דואר-זבל, שאלגוריתם-הסיווג שלו לומד להבחין בין הודעות לגיטימיות למזיקות מתוך מיליוני דוגמאות שסומנו ידנית לאורך שנים. מערכות-המלצה בשירותי-סטרימינג ומסחר-אלקטרוני, שלומדות דפוסי-העדפה מהתנהגות-משתמשים כדי להציע תוכן או מוצרים רלוונטיים. זיהוי-הונאות בעסקאות-אשראי, שמאתר דפוסי-קנייה חריגים בזמן-אמת. אבחון-רפואי מבוסס-תמונה, שמזהה סימני-מחלה בצילומי-רנטגן או סריקות-MRI ברמת-דיוק שמתחרה ולעיתים עולה על רופאים מומחים במשימות ממוקדות מסוימות.
איכות-הנתונים והטיה, ודוגמת AlphaGo
איכות הנתונים חשובה לפחות כמו איכות-האלגוריתם, ולעיתים יותר — עיקרון שמתומצת בביטוי "זבל-נכנס, זבל-יוצא" (Garbage In, Garbage Out): מודל שאומן על נתונים מוטים, לא-מייצגים, או פשוט שגויים, ילמד וישחזר את אותן בעיות בתשובותיו, ללא קשר לתחכום-האלגוריתם. הבעיה הזו רלוונטית ישירות להטיה אלגוריתמית (Bias) — כשמערכת לומדת ומנציחה דעות-קדומות שהיו קיימות בנתוני-האימון, לעיתים בלי כוונה מודעת מצד מי שבנה אותה. בגלל זה, חלק ניכר ומרכזי מהעבודה בפרויקט-למידת-מכונה אמיתי מוקדש לניקוי-נתונים, איזון-מערך-הנתונים, ובדיקת-ייצוגיות — לא רק לבחירת-האלגוריתם המתאים ביותר, כפי שנדמה לעיתים מבחוץ.
דוגמה מוכרת ומוחשית להישג של למידת-חיזוק: AlphaGo, מערכת ה-AI של Google DeepMind, ניצחה במרץ 2016 את לי סה-דול, שחקן-גו דרום-קוריאני מדורג-9-דן (הדרגה המקצועית הגבוהה ביותר), בתוצאה 4 משחקים מול 1 בסדרה בת חמישה משחקים בסיאול — האירוע נחשב לרוב לרגע-מפנה ציבורי משמעותי בתפיסת יכולות ה-AI, בין השאר משום שמשחק-גו נחשב מורכב-משמעותית ממשחק-שחמט (בזכות מספר-המהלכים-האפשריים העצום שלו), ורבים במחקר העריכו קודם לכן שניצחון-מחשב בו עדיין רחוק בשנים רבות. לי סה-דול, אגב, נותר שחקן-האדם היחיד שאי-פעם ניצח את AlphaGo באחד מ-74 המשחקים הרשמיים שלה.
המגבלה: קורלציה לא סיבתיות, והיפר-פרמטרים
חשוב לזכור את הגבול העקרוני: למידת מכונה מזהה קורלציות סטטיסטיות בנתונים, לא בהכרח קשרי-סיבתיות אמיתיים בעולם. מודל שלמד ש"מטריה בתמונה" מתואמת עם "יום גשום" לא באמת "מבין" שגשם גורם לאנשים לפתוח מטריות — הוא רק זיהה שני דברים שקורים יחד לעיתים קרובות. ההבחנה הזו קריטית מעשית: מודל עלול ללמוד קורלציה מקרית ולא-סיבתית (למשל, לזהות "רקע של בית-חולים" כסימן-מחלה, במקום את המחלה עצמה, אם רוב תמונות-האימון החולות צולמו במסגרת אשפוז), ולתפקד גרוע באופן מפתיע ברגע שהוא נחשף למקרים שבהם הקורלציה-המקרית הזו לא מתקיימת — פער בין "מה שהמודל למד בפועל" לבין "מה שהמתכננים חשבו שהוא למד" שמסביר חלק ניכר מהכשלים הבלתי-צפויים של מערכות למידת-מכונה בייצור אמיתי.
לצד המשקלים הפנימיים שהמודל לומד בעצמו מהנתונים, לכל אלגוריתם-למידה יש גם "היפר-פרמטרים" (Hyperparameters) — הגדרות שמתכנן-המערכת קובע מראש, לפני תחילת האימון, ולא נלמדות מהנתונים בעצמם (למשל, כמה שכבות תהיה לרשת-הנוירונים, או כמה "אגרסיבי" יהיה תהליך-הוויסות). מציאת ההיפר-פרמטרים הטובים ביותר למשימה נתונה, תהליך שנקרא "כיוונון-היפר-פרמטרים" (Hyperparameter Tuning), הוא לעיתים קרובות עבודה איטרטיבית ויקרה מבחינת-חישוב לא-פחות מהאימון עצמו, ולעיתים אף יותר — כי היא כרוכה בהרצת תהליך-האימון המלא שוב-ושוב תחת הגדרות שונות, כדי להשוות ביניהן ולבחור את הטובה ביותר על מערך-האימות.
התלות בנתונים מתויגים ודרכי-עקיפה
מגבלה מעשית מרכזית של רוב שיטות-הלמידה-המונחית היא תלותן בכמות גדולה יחסית של נתונים מתויגים-איכותית — משאב שיכול להיות יקר לאיסוף, במיוחד בתחומים שדורשים תיוג-מומחה (למשל תיוג-רפואי על ידי רופאים). זו הסיבה שהתפתחו טכניקות משלימות שמנסות לצמצם את התלות הזו: "למידה-למחצה-מונחית" (Semi-supervised Learning) משלבת כמות קטנה של נתונים-מתויגים עם כמות גדולה של נתונים לא-מתויגים; "למידת-העברה" (Transfer Learning) לוקחת מודל שכבר אומן על משימה-דומה-אחת, ומכווננת אותו למשימה החדשה עם הרבה פחות דוגמאות מאשר אימון-מאפס היה דורש — עקרון שעומד בבסיס כוונון עדין (Fine-tuning) של מודלים גדולים קיימים, ולא רק תחום נפרד ומבודד.
גרסה פשוטה של הערך, לגיל 12. כל מה שכתוב כאן מופיע גם בערך המלא.
למידת מכונה היא דרך לבנות תוכנה בלי לכתוב לה את כל הכללים. במקום שמתכנת יסביר למחשב, צעד אחר צעד, איך לפתור בעיה, נותנים לו הרבה דוגמאות. המחשב מחפש בהן דפוסים, ומנסה להשתמש בהם גם במקרים חדשים שלא ראה קודם.
השם "למידת מכונה" נטבע ב-1959, בהקשר של תוכנה ששיחקה דמקה ושיפרה את המשחק שלה ככל שצברה עוד משחקים. דוגמה אחרת: מראים למחשב הרבה תמונות של חתולים וכלבים, וליד כל תמונה כתוב מה יש בה. אחרי מספיק דוגמאות, הוא אמור לזהות גם חתול בתמונה חדשה.
איך יודעים אם הוא באמת למד? כאן זה ממש כמו בבית-ספר. אם המבחן כולל בדיוק את התרגילים שפתרתם בשיעורי-הבית, ציון גבוה לא מוכיח כלום, כי אפשר פשוט לשנן. לכן שומרים בצד חלק מהדוגמאות, והמחשב לא רואה אותן בזמן הלימוד. רק בסוף בודקים אותו עליהן. מחשב ששינן את הדוגמאות במקום ללמוד את הדפוס הכללי מצליח יפה על מה שכבר ראה, ונכשל על דברים חדשים. לזה קוראים "התאמת-יתר" (Overfitting).
ויש עוד מלכודת. המחשב מוצא דברים שקורים יחד, אבל הוא לא יודע מה גורם למה. אם בתמונות רבות של ימים גשומים יש מטריה, הוא עלול ללמוד ש"מטריה" פירושה "גשם", בלי לדעת שהגשם הוא הסיבה שפותחים מטריה. וגם: אם הדוגמאות שנתנו לו גרועות או לא מאוזנות, מה שהוא ילמד יהיה גרוע באותה מידה.
את כל זה אתם פוגשים כל יום: כך תיבת הדואר מזהה הודעות זבל, וכך שירותי סטרימינג מציעים לכם מה לראות.
מה המושג אומר לארגון ולעסק. כל עובדה כאן מופיעה גם בערך המלא.
למידת מכונה היא הדרך המרכזית שבה בונים היום מערכות AI: במקום שמישהו יכתוב את כללי-ההחלטה, המערכת מחלצת אותם בעצמה מדוגמאות. המשמעות העסקית פשוטה: המערכת לא תהיה טובה יותר מהנתונים שמהם למדה.
בארגון זה מופיע בשני סוגי שאלות עיקריים: חיזוי מספר (רגרסיה, למשל מחיר דירה לפי גודל ומיקום) וחיזוי קטגוריה (סיווג, למשל "דואר-זבל" מול "לגיטימי"). לצידם יש שימושים שבהם המערכת מחפשת קבוצות בעצמה, כמו פילוח לקוחות לפי דפוסי-קנייה בלי שמישהו הגדיר מראש את הקבוצות. בפועל אתם כבר פוגשים את זה בזיהוי הונאות בעסקאות אשראי, במערכות המלצה ובסינון דואר.
היתרון הוא הכללה: מערכת טובה מטפלת גם במקרים שלא ראתה. הגבולות נובעים מאותו מנגנון עצמו. ראשית, "זבל נכנס, זבל יוצא": נתונים מוטים או לא-מייצגים ישוחזרו בתשובות, כולל דעות-קדומות שהיו בנתונים, ולכן חלק ניכר מהעבודה בפרויקט אמיתי הולך לניקוי ואיזון של הנתונים, ולא רק לבחירת האלגוריתם. שנית, "התאמת-יתר": מודל ששינן את נתוני-האימון במקום ללמוד את הדפוס הכללי. אם בודקים אותו על אותם נתונים הוא ייראה מצוין, ועל נתונים חדשים הוא עלול לאכזב. שלישית, המודל מזהה קורלציות, לא סיבות. מודל רפואי עלול ללמוד לזהות "רקע של בית-חולים" במקום את המחלה עצמה, ולהיכשל ברגע שהקשר המקרי הזה נשבר. זה מסביר חלק ניכר מהכשלים הלא-צפויים של מערכות כאלה בשטח.
ויש גם שיקול משאבים: רוב שיטות הלמידה המונחית צריכות כמות גדולה של נתונים מתויגים, ותיוג בידי מומחים יכול להיות יקר. למידת-העברה, כלומר כוונון של מודל שכבר אומן על משימה דומה, מצמצמת את הכמות הנדרשת. וכוונון ההגדרות שקובעים לפני האימון עלול לדרוש משאבי-חישוב לא-פחות מהאימון עצמו.
שאלות שכדאי לשאול ספק, צוות או יועץ:
- על אילו נתונים נמדדו הביצועים שמוצגים לנו: על נתוני-האימון, או על מערך-בדיקה שנשמר בצד ולא נראה באימון?
- מי תייג את נתוני-האימון, ועד כמה הם מייצגים את הלקוחות והמקרים שלנו?
- איך בדקתם שהמודל לא למד קשר מקרי במקום את מה שאנחנו באמת רוצים לזהות?
- האם זו בעיית סיווג או חיזוי מספר, ומה המחיר העסקי של כל סוג טעות?
- אם אין לנו מספיק נתונים מתויגים, אפשר להתחיל ממודל קיים ולכוונן אותו?
📬 הגיליון השבועי של Wiki-AI
פעם בשבוע, ביום ראשון: שלושת הדברים החשובים שקרו בעולם הבינה המלאכותית, בעברית פשוטה, וערכים חדשים באנציקלופדיה. לגיליונות
| למידה מונחית | למידה בלתי-מונחית | למידת חיזוק | |
|---|---|---|---|
| סוג-נתונים | מתויגים (קלט + פלט-נכון) | לא-מתויגים | אינטראקציה עם סביבה + תגמול |
| מטרה | לחזות פלט לקלט חדש | לגלות מבנה או קבוצות סמויות | למקסם תגמול-מצטבר לאורך זמן |
| דוגמה | סינון דואר-זבל | אשכול-לקוחות | AlphaGo |
שאלות נפוצות ❓
מה ההבדל בין למידת מכונה ל-AI?
AI הוא המונח הרחב לכל מערכת שמדמה התנהגות-אינטליגנטית; למידת מכונה היא הגישה הספציפית והדומיננטית כיום להשיג את זה, לא כל AI חייב להיות מבוסס-למידת-מכונה.
מה זו "התאמת-יתר" ולמה זו בעיה?
כשמודל "משנן" את מערך-האימון במקום ללמוד דפוס-כללי — הוא נראה מוצלח על נתונים שכבר ראה, אבל מתפקד גרוע על נתונים חדשים.
כמה נתונים צריך כדי לאמן מודל למידת-מכונה?
תלוי מאוד במשימה ובשיטה — מאלפי דוגמאות ועד מיליונים; טכניקות כמו למידת-העברה מצמצמות משמעותית את הכמות הנדרשת בהשוואה לאימון-מאפס.
האם למידת מכונה "מבינה" מה שהיא לומדת?
לא במובן האנושי — היא מזהה קורלציות סטטיסטיות בנתונים, לא בהכרח קשרי-סיבה-ותוצאה אמיתיים, מה שעלול להוביל לטעויות מפתיעות במקרי-קצה.