בדל מהן מכונות וקטור תמיכה? - Unite.AI
צור קשר
כיתת אמן בינה מלאכותית:

AI 101

מהן מכונות וקטור תמיכה?

mm
מְעוּדכָּן on

מהן מכונות וקטור תמיכה?

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

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

המטרה של תמיכה במכונות וקטוריות

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

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

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

חישוב היפר-מישור המפריד

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

Y = ax + b

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

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

W * X – ב

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

צילום: ZackWeinberg באמצעות Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

סיווג רב כיתתי

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

הפרדות לא ליניאריות

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

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

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

הקרנל מרמה את הנתונים בנתונים והופך אותם בצורה לא ליניארית. צילום: Shiyu Ju באמצעות Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

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

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