מכונת וקטורים תומכים (Support Vector Machine)

יסודות בינה מלאכותית

הגדרה

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

מה זה Support Vector Machine, ולמה הוא נחשב לפריצת-דרך

Support Vector Machine (SVM) הוא אלגוריתם למידת-מכונה קלאסי, המשמש בעיקר לסיווג נתונים לשתי קטגוריות (ומורחב גם לרגרסיה ולסיווג מרובה-קטגוריות). הרעיון המרכזי: מתוך כל האפשרויות האינסופיות לצייר קו (או משטח, במימדים גבוהים) שמפריד בין שתי הקבוצות, SVM בוחר דווקא את הקו שממקסם את המרחק ("השוליים", Margin) בינו לבין הדוגמאות הקרובות ביותר מכל קבוצה. הדוגמאות הקרובות האלה — אלה שקובעות בפועל היכן יעבור הגבול — נקראות "וקטורים תומכים" (Support Vectors), ומכאן שם השיטה. הבחירה במרווח הרחב ביותר, ולא סתם קו מפריד כלשהו, היא זו שהופכת את SVM לעמיד יחסית מול נתונים חדשים שלא נראו באימון.

השורשים הסובייטיים: וופניק וצ׳רבוננקיס, שנות ה-60

הרעיון הבסיסי של SVM — מציאת קו-ההפרדה בעל השוליים הרחבים-ביותר — פותח לראשונה על ידי החוקרים הסובייטים ולדימיר וופניק ואלכסיי צ׳רבוננקיס, בעבודה שהחלה בתחילת שנות ה-60 של המאה ה-20 ופורסמה ב-1964. הגרסה המקורית הזו התאימה רק למקרה ה"נקי": מצב שבו אפשר להפריד באופן מושלם, בלי אף טעות, בין שתי הקבוצות באמצעות קו ישר (מסווג לינארי עם "שוליים קשיחים", Hard Margin). וופניק המשיך לפתח בעשורים הבאים, יחד עם צ׳רבוננקיס, את התיאוריה הסטטיסטית שעליה מבוסס SVM — הידועה כתיאוריית VC — עוד לפני שההיבטים המעשיים והשימושיים-יותר של השיטה פותחו.

1992: ה"תחבולת" שפתחה דלת לנתונים לא-לינאריים

מגבלה מרכזית של הגרסה המקורית: היא עבדה טוב רק כשאפשר להפריד בין הקבוצות בקו ישר. ב-1992 פרסמו ברנרד בוזר, איזבל גיון וולדימיר וופניק עצמו מאמר בכנס COLT שפתר את הבעיה בעזרת מה שמכונה "תחבולת הקרנל" (Kernel Trick): שיטה מתמטית שמאפשרת למודל להתייחס לנתונים כאילו הם ממופים למרחב רב-מימדי הרבה יותר, שבו כן אפשר להפריד ביניהם בקו ישר — בלי לבצע בפועל את המיפוי היקר-חישובית הזה. בזכות תחבולת-הקרנל, SVM יכול לצייר גבולות-הפרדה מעוקלים ומורכבים בנתונים המקוריים, ולא רק קווים ישרים, מה שהרחיב דרמטית את טווח הבעיות שהוא יכול לפתור.

1995: השוליים הרכים שהפכו את SVM לשימושי בעולם האמיתי

רוב הנתונים האמיתיים אינם ניתנים להפרדה מושלמת — תמיד יש כמה חריגים או רעש. ב-1995 פרסמו קורינה קורטס וולדימיר וופניק, במאמר "Support-Vector Networks" בכתב-העת Machine Learning, את הגרסה שהפכה את SVM לכלי מעשי ונפוץ: "שוליים רכים" (Soft Margin) — מודל שמאפשר למספר קטן של דוגמאות לחצות את הגבול או לשבת בתוך אזור-השוליים, תוך קנס מתמטי על כל חריגה כזו. שילוב שני החידושים יחד — תחבולת-הקרנל של 1992 והשוליים-הרכים של 1995 — הוא זה שמוכר היום פשוט בשם SVM, ברוב הספריות והכלים הנפוצים.

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

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

היכן SVM עדיין בשימוש היום, מול הלמידה העמוקה

בעידן הלמידה העמוקה, SVM כבר לא ברירת-המחדל למשימות כמו זיהוי-תמונה או עיבוד-שפה-טבעית בקנה-מידה גדול, שבהן רשתות-נוירונים עמוקות מנצחות בדרך-כלל. עם זאת, SVM נשאר שימושי כשכמות נתוני-האימון מוגבלת, או כשמספר-התכונות גבוה יחסית למספר-הדוגמאות (כמו בביו-אינפורמטיקה, למשל סיווג דגימות-גנים) — מצבים שבהם רשת-נוירונים עמוקה נוטה להתאים-יתר. ספריות פופולריות כמו scikit-learn עדיין כוללות מימוש נגיש של SVM, והוא נשאר כלי-לימוד סטנדרטי להסביר את מושג ה"שוליים" (Margin) בקורסי למידת-מכונה.

שאלות נפוצות ❓

מה ההבדל בין SVM לרשת נוירונים?

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

מה זה "תחבולת הקרנל" (Kernel Trick)?

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

האם SVM עדיין רלוונטי בעידן הלמידה העמוקה?

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

מי המציא את SVM, ומתי?

הרעיון הבסיסי פותח על ידי ולדימיר וופניק ואלכסיי צ׳רבוננקיס ופורסם ב-1964; הגרסה הנפוצה היום נבנתה בשני שלבים מאוחרים יותר — תחבולת-הקרנל ב-1992 (בוזר, גיון ווופניק) והשוליים-הרכים ב-1995 (קורטס ווופניק).