Loading AI tools
מונח בלמידת מכונה מוויקיפדיה, האנציקלופדיה החופשית
למידה מונחית או למידה מפוקחת (באנגלית: Supervised learning) היא טכניקה בענף למידת המכונה, המאפשרת לפתח מכונה או מערכת (בדרך כלל תוכנית מחשב) שלומדת לפתור בעיות על בסיס מאגר גדול של דוגמאות "פתורות". הלמידה עצמה נעשית באמצעות חיפוש היפותזה – פונקציה ממרחב הדוגמאות למרחב התיוגים – שמתארת את המידע בצורה המתאימה ביותר. אלגוריתם למידה אופטימלי הוא אלגוריתם שהפונקציה הנלמדת על ידיו תוכל לחזות נכונה את התשובה גם בעבור דוגמאות שטרם נראו על ידי המערכת.[1]
אלגוריתמי למידה מונחית מתחלקים לשתי מחלקות בהתאם למודל שהם לומדים:
לדוגמה, בהינתן מאגר נתונים שמכיל תמונות של חתולים ותמונות של חדי קרן, מודל דיסקרימינטיבי יוכל לקבל תמונה ולומר האם יש בה חתול או חד קרן, בעוד שמודל גנרטיבי ילמד את המאפיינים של חתול ואת המאפיינים של חד קרן, ונוכל להשתמש בו בשביל ליצור תמונה חדשה, שלא הופיעה במאגר, של חתול או של חד קרן.
תהליך הלמידה של המערכת נקרא "אימון". בשלב זה מציגים למערכת את הדוגמאות, והיא לומדת היפותזה שמתארת את הדוגמאות שראתה בצורה הטובה ביותר.
בלמידה מונחית, כל דוגמה שהמערכת לומדת על פיה היא זוג המורכב מאובייקט קלט ומערך הפלט הרצוי בעבור אותו הקלט.[1] לאוסף הדוגמאות קוראים בשם "סט האימון״, והוא מכיל דגימות שמגיעות מהתפלגות משותפת של מרחב האלמנטים ומרחב התיוגים. אימון אלגוריתם למידה מונחית דורש בדרך כלל סט אימון שמכיל דוגמאות רבות. מטרת הלמידה היא לנבא את התיוג של אלמנט חדש שנוצר מאותה ההתפלגות אם המודל שאנחנו מאמנים הוא דיסקרימינטיבי. בעבור מודל גנרטיבי מטרת הלמידה תהיה ללמוד את ההתפלגות שממנה נוצרו הדוגמאות. לדוגמה, אם הבעיה שאנחנו רוצים ללמוד היא סיווג של תמונות לפי האובייקט המופיע בהן, תורכב כל דוגמה בסט האימון מהקלט – התמונה, ולכל קלט יוצמד הפלט הרצוי – התיוג לפי האובייקט המופיע באותה התמונה.
בעבור סט אימון נתון ניתן לחשב לכל היפותזה את השגיאה האמפירית שלה, שמוגדרת להיות אחוז השגיאות של ההיפותזה על סט האימון. לכל היפותזה ניתן לחשב שגיאת הכללה – תוחלת של טעות תיוג על פני ההתפלגות המשותפת. השגיאה האמפירית מתייחסת לסיכוי של המודל לטעות על סט האימון, ושגיאת ההכללה מתייחסת לסיכוי לטעות על המידע כולו. מטרת הלמידה היא שההיפותזה הנלמדת תהיה בעלת שגיאת ההכללה קטנה ככל האפשר כדי שנוכל לסווג בצורה נכונה גם דוגמאות שטרם נראו על ידי המודל. באופן יחסי קל להשיג היפותזה שהשגיאה האמפירית שלה קטנה, אך רצוי להימנע מהיפותזה שהשגיאה האמפירית שלה קטנה ושגיאת ההכללה שלה גדולה.
אימון מודל כזה, תוך למידה מדוגמאות בצורה מונחית, מורכב ממספר שלבים. ראשית, על המפתח לקבוע את סוג הדוגמאות שתשמשנה את המערכת בשלב האימון, ולבחור את האלגוריתם המתאים לבעיה, בהתאם למטרה הרצויה של המערכת. לדוגמה, במקרה של מערכת שלומדת לזהות טקסט בכתב יד, הקלט יכול להיות תו בודד, מילה שלמה או משפט שלם בכתב יד.
לאחר מכן יבחר המפתח סט אימונים מתאים המכיל דוגמאות – זוגות של קלטים ופלטים רצויים, שאותם המערכת תלמד. לעיתים סט האימון מוכר בקהילה ומשמש בלמידה של מגוון בעיות, ולעיתים צריך לבנות את הסט במיוחד באמצעות שימוש במומחים אנושיים בתחום או באמצעות מדידות. לאחר בחירת סט האימון מעובדת כל דוגמה לפורמט שהמערכת יודעת לעבוד אתו. לאופן ייצוג הקלט יש השפעה על טיב הלמידה של המכונה, ועל הערכת הביצועים שלה לאחר הלמידה. בדרך כלל מייצרים מאובייקט הקלט וקטור מספרי שנקרא וקטור תכונות (אנ'), שמכיל ייצוג מספרי של תכונות שמתארות את האובייקט. בלמידה של תמונות נהוג לייצג כל תמונה כמטריצה שמכילה את ערכי ה-RGB של כל פיקסל.
לפני תחילת האימון נהוג להוציא מתוך סט האימון אחוז מסוים של דוגמאות ולשמור אותן בצד לצורך אימות מאוחר של המודל. שמירת הסטים מתבצעת כדי לאפשר בדיקה מבוקרת של התנהגות המודל אל מול דוגמאות שלא נראו בשלב האימון. במרבית המקרים יצרו מהדוגמאות שהוצאו שני סטים חדשים – סט ולידציה וסט בדיקה (לעיתים סט הולידציה מושמט). סט הולידציה נועד להעריך את ביצועי המערכת על דוגמאות שלא נראו בשלב האימון, תוך כדי השלב עצמו, ואילו סט הבדיקה נועד להערכת ביצועים בתום שלב האימון.[4]
שלב האימון עצמו תלוי בסוג האלגוריתם. ברשתות נוירונים מוכנסות הדוגמאות לאלגוריתם בזו אחר זו, בדרך כלל בקבוצות שמכילות מספר דוגמאות (batch). המערכת מבצעת חיזוי בעבור כל דוגמה באמצעות ההיפותזה שלמדה עד כה, ובאמצעות הערכת השגיאה על הקבוצה, מתקנת את ההיפותזה שלמדה באמצעות שימוש בשיטת אופטימיזציה למציאת מינימום כדוגמת Stochastic gradient descent ושינוי ההיפותזה בכיוון הגרדיאנט. לולא הייתה מגבלת זיכרון או מגבלה על כוח העיבוד היה תיקון ההיפותזה נעשה לאחר מעבר על כל הדוגמאות וחישוב השגיאה על כולן. אולם מכיוון שקיימות מגבלות כאלו מועבר המידע בקבוצות (batch). בעצי החלטה מתייחס שלב האימון לבניית העץ. הבנייה עצמה נעשית בצורה רקורסיבית, כאשר בכל שלב נבחרת התכונה שפיצול על פיה יגרום לכל תת-עץ להכיל דוגמאות בעלות סיווג כמה שיותר דומה. אימון של מודלים מתמטיים כדוגמת רגרסיה ליניארית יעשה באמצעות חיפוש של הפרמטרים שיתארו פונקציית קירוב של המידע בצורה הטובה ביותר.
לעיתים נדרש מפתח המערכת לקבוע פרמטרים חיצוניים שמשמשים לבקרה של המערכת. כדי למצוא את הפרמטרים הנכונים יאמן המפתח את המערכת עם מגוון פרמטרים, ויבחר את אלו שמסתכמים בביצועים הטובים ביותר. המפתח יוכל להעריך את הביצועים של המערכת באמצעות סט הבדיקה שכולל דוגמאות שנלקחו מסט האימון ונשמרו בצד מבעוד מועד.
בהינתן סט אימון המכיל דוגמאות כך ש- הוא וקטור התכונות של הדוגמה ה-i ו- הוא התיוג שלה, אלגוריתם למידה מחפש פונקציה , כאשר הוא מרחב הקלט (וקטורי התכונות של הקלט) ו- הוא מרחב הפלט (התיוגים). הפונקציה שייכת למרחב ההיפותזות , הכולל את הפונקציות האפשריות שעשויות לייצג את הבעיה בצורה הנכונה. לפעמים מייצגים את באמצעות פונקציית ניקוד כך ש- מחזירה בעבור הקלט את התיוג שנותן את הניקוד הגבוה ביותר. פורמלית – . את מרחב פונקציות הניקוד נסמן ב-.
אף על פי ש- ו- יכולים לייצג כל מרחב של פונקציות, אלגוריתמי למידה רבים משתמשים במודלים הסתברותיים שבהם הוא מודל הסתברות מותנית , למשל רגרסיה לוגיסטית, או ש- הוא מודל הסתברות משותפת , למשל סיווג בייסיאני נאיבי.
שתי גישות בסיסיות לבחירה של או של הן מזעור סיכונים אמפירי ומזעור סיכונים מבני.[5] מזעור סיכונים אמפירי מחפש את הפונקציה המתארת בצורה הטובה ביותר את נתוני האימון, בעוד שמזעור סיכונים מבני כולל ״פונקציית עונש״ השולטת על הטרייד-אוף בין ההטיה לבין השונות. בשני המקרים, ההנחה היא כי סט האימונים מורכב מזוגות של משתנים מקריים בלתי תלויים ובעלי התפלגות משותפת, .[2]
על מנת למדוד את מידת ההתאמה של פונקציה לנתוני האימון, נגדיר את פונקציית ההפסד שמודדת את המרחק בין התיוג שהמודל החזיר לבין התיוג האמיתי של הקלט. למשל, בעבור הדוגמה , אם האלגוריתם החזיר את הערך בעבור הדוגמה , פונקציית ההפסד מחשבת את ההבדל בין התיוג "האמיתי" של הדוגמה לזו שהתקבלה מאלגוריתם – .[6]
פונקציית השגיאה האמפירית של פונקציה מוגדרת להיות תוחלת ההפסד של על הפלטים של האלגוריתם. ניתן לאמוד את ערך השגיאה האמפירית על הדוגמאות בסט האימון באמצעות הנוסחה הבאה: . אלגוריתם למידה יקרא ממזער סיכונים אמפירי (ERM) אם הוא ממזער את השגיאה האמפירית .
מזעור סיכונים מבני משתמש בהוספת רגולריזציה לפונקציית ההפסד – , כאשר היא פונקציית ההפסד, היא הרגולריזציה ו- הוא פרמטר נלמד שמתאר את עוצמת ההשפעה של הרגולריזציה. הוספת הרגולריזציה מתאימה את הפונקציה הנלמדת לעיקרון התער של אוקאם, שמעדיף פונקציות פשוטות יותר על פני פונקציות מורכבות. רגולריזציה תורמת להקטנת שגיאת ההכללה באמצעות מניעת התאמת-יתר לנתונים.
בתום אימון המערכת נהוג להעריך את ביצועיה כדי לבדוק את טיב ההיפותזה שנלמדה. בדרך כלל משתמשים בהערכות סטטיסטיות מגוונות, אך תמיד נהוג להציג את אחוזי הדיוק של המודל על סט הבדיקה ואת ערך פונקציית ההפסד שלו. להערכה בעלת משמעות נהוג להשתמש במדדי ערך ניבוי חיובי (Precision) ורגישות (Recall), שמייצגים את כמות הדוגמאות שהן באמת חיוביות מתוך כל אלו שסווגו כחיוביות, ואת כמות הדוגמאות שסווגו כחיוביות מתוך כל הדוגמאות החיוביות בעולם. למשל, אם המודל לומד לחזות תוצאות של בדיקות קורונה על פי סימפטומים, ה-Precision מייצג את אחוז האנשים שהם באמת חיוביים לנגיף מתוך אלו שהמודל סיווג כחיוביים, וה-Recall מייצג את אחוז האנשים שהמודל אמר שהם חיוביים לנגיף, מתוך אלו שהם באמת חיוביים. שימוש נפוץ נעשה גם במדד משוקלל של שני אלו – מדד F1, שהוא ממוצע הרמוני של שני המדדים.[4][7]
ישנו מגוון רחב של אלגוריתמי למידה מונחית, ולכל אחד מהם יש יתרונות וחסרונות. כאשר נרצה לפתור בעיה מסוימת באמצעות אלגוריתם למידה, נצטרך לבחור את האלגוריתם המתאים ביותר לבעיה, תוך התייחסות למספר קריטריונים. נשים לב לכך שאין אלגוריתם למידה יחיד שעובד בצורה הטובה ביותר בעבור כל בעיות הלמידה המונחית (לפי משפט "אין ארוחות חינם" שאומר שלא קיים אלגוריתם המסוגל ללמוד כל פונקציה כאשר כמות הדוגמאות מוגבלת).[8]
כאשר עולה הצורך לבחור אלגוריתם ללמידה מונחית, המתכנת יוכל להשוות מספר אלגוריתמים, ולקבוע באופן נסיוני את האלגוריתם המתאים ביותר לצורך הספציפי. לאחר בחירת האלגוריתם, יצטרך המתכנת לכוונן את הפרמטרים השונים שלו בהתאם להתנהגות הרצויה – משימה שעשויה להיות מאתגרת. לעיתים קרובות יתקבל שיפור ביצועים גדול יותר בעקבות איסוף דוגמאות אימון נוספות ובחירת תכונות אינפורמטיביות יותר, מאשר השיפור שיתקבל לאחר ניסיון כוונון הפרמטרים של אלגוריתמי הלמידה.
כדי לבחור אלגוריתם למידה מונחית, יש להתייחס למספר סוגיות אפשריות.
הסוגיה הראשונה היא הטרייד-אוף בין ההטיה לבין השונות (אנ').[9] נניח שיש לנו מספר מאגרי מידע שניתן להשתמש בהם לאימון, כאשר כולם טובים באותה המידה. נאמר שלאלגוריתם למידה יש הטיה גבוהה בעבור קלט מסוים אם כאשר מאמנים אותו על כל אחד ממאגרי המידע הללו, הוא ייתן פלט שגוי באופן שיטתי בעבור . נאמר שלאלגוריתם למידה יש שונות גבוהה בעבור קלט מסוים אם כאשר מאמנים אותו על מאגרי מידע שונים, הפלט של האלגוריתם בעבור משתנה עם שינוי סט האימון. שגיאת החיזוי של מסווג נלמד תלויה הן בהטיה של אלגוריתם הלמידה והן בשונות שלו.[10]
ככלל, קיים טרייד-אוף בין הטיה לבין שונות. אלגוריתם למידה בעל הטיה נמוכה צריך להיות "גמיש" כדי שיתאים היטב לנתונים. אך אם אלגוריתם הלמידה יהיה גמיש יתר על המידה, הוא יתאים את עצמו לכל סט אימון בצורה שונה, ולכן נוכל לומר עליו שיש לו שונות גבוהה. אלגוריתמי למידה מונחית רבים מאפשרים לשלוט על הטרייד-אוף בין השונות לבין ההטיה – חלקם באופן אוטומטי, וחלקם בצורה ידנית באמצעות העברת פרמטר על ידי המשתמש.
סוגיה נוספת היא הקושי בלמידת פונקציות מורכבות בהינתן סט אימון בגודל סופי שלא מייצג את המידע כולו. פעמים רבות מאגרי המידע מכילים מידע מוגבל מכיוון שקשה לבנות סט גדול שמכיל דוגמאות מתויגות. הפונקציה האמיתית שמתארת את התפלגות הנתונים שאותה אנו רוצים ללמוד, יכולה להילמד במדויק רק אם האלגוריתם יקבל את כל הקלטים האפשריים בזמן האימון. הדבר אינו אפשרי, ולכן קיים טרייד-אוף בין מספר הדוגמאות שהאלגוריתם יראה בשלב האימון, לבין יכולת ההתאמה שלו לפוקנציה שמתארת את הנתונים במדויק. אם הפונקציה האמיתית היא פשוטה, אז אלגוריתם למידה "לא גמיש" עם הטיה גבוהה ושונות נמוכה יוכל ללמוד אותו גם אם יצפה בכמות קטנה של נתונים בשלב האימון. אך אם הפונקציה האמיתית היא פונקציה מורכבת (למשל פונקציות שכוללות אינטראקציות מורכבות בין מספר תכונות שונות של הקלט, או פונקציות שמתנהגות באופן שונה בחלקים שונים של מרחב הקלט), אלגוריתם הלמידה יצליח להתאים את עצמו אליה רק באמצעות למידה מכמות גדולה מאוד של נתוני אימון. כמו כן, כדי שאלגוריתם יוכל להתאים את עצמו לפונקציה מסובכת שכזו, הוא צריך להיות "גמיש", כלומר עם הטיה נמוכה ושונות גבוהה.
הסוגיה השלישית היא המימד של מרחב הקלט. בעיית הלמידה עשויה להפוך למאתגרת יותר ככל שהמימד של וקטורי התכונות גדל (ראו קללת המימד (אנ')), גם אם הפונקציה האמיתית שמייצגת את המידע תלויה רק במספר קטן מהתכונות הללו. הסיבה לכך היא שהממדים העודפים יכולים לבלבל את אלגוריתם הלמידה, להגדיל את מרחב הטעויות האפשריות שלו, וכתוצאה מכך להגדיל את השונות שלו. לפיכך, קלט בעל וקטורים ממימד גבוה דורש כוונון של המסווג כך שתהיה לו שונות נמוכה, והטיה גבוהה. בפועל, ניתן להתמודד עם הבעיה על ידי הסרה ידנית של תכונות לא רלוונטיות מנתוני הקלט. בנוסף, קיימים אלגוריתמים (למשל, אלגוריתם PCA) שיודעים להקטין את מימד הקלט באמצעות הסרת תכונות לא רלוונטיות מוקטור התכונות. במקרה הכללי, הורדת מימד עשויה לשפר את הדיוק של הפונקציה הנלמדת, אך מנגד היא גוזרת שימוש בפחות פיצ'רים ועשויה לגרום לקושי בתיאור המדויק של הקלט.[11]
נבחין כי לעיתים ייתכנו רעשים בערכי הפלט שמוזנים לאלגוריתם בזמן האימון (למשל עקב שגיאות מדידה). במקרים כאלו, נרצה שאלגוריתם הלמידה לא ילמד את הרעש, ולא ימצא פונקציה שתתאים בדיוק לדוגמאות האימון. ניסיון להתאים את הנתונים בצורה מדויקת עשוי להוביל להתאמת יתר. ניתן להגיע למצב של התאמת יתר גם כשאין רעש, אם הפונקציה שמנסים ללמוד מורכבת מדי בעבור המודל. בשני המקרים, הקטנה של השונות והגדלה של הטיית המודל עשויים להיטיב עם התוצאות.
ישנן מספר גישות למניעת התאמת יתר. הגישה הראשונה היא עצירה מוקדמת של אימון המודל, וגישה נוספת גורסת כי יש לאתר את דוגמאות האימון הרועשות לפני אימון האלגוריתם, ולהסיר אותן. ישנם מספר אלגוריתמים המזהים דוגמאות רועשות או חריגות לפני תחילת האימון, ויודעים להתעלם מהן.[12][13] למודלים ספציפיים יש שיטות ייעודיות שנועדו להתמודד עם התאמת יתר. למשל, ברשתות נוירונים שיטות נפוצות הן הוספת רגולריזציה, הוספת dropouts (אנ') ושימוש ב-Cross-validation (אנ').[14][15] בעצים נשתמש בגיזום - החלפת חלק מהצמתים בעץ בעלים שסיווגם נקבע על פי רוב הדוגמאות ששייכות לתת העץ שתחת אותו הצומת.
לעיתים המאגר הקיים מכיל דוגמאות רבות ששייכות למחלקה אחת ומעט דוגמאות ששייכות לאחרת, גם כאשר בעולם אין הטיה כזו. במקרה כזה, אלגוריתם סיווג יהיה מוטה באופן טבעי כלפי המחלקה שיש ממנה הרבה דוגמאות, ויהיה פחות מדויק בעבור דוגמאות ששייכות למחלקה השנייה. דוגמה לכך היא אימון של מערכת זיהוי פנים באמצעות מאגר שמכיל תמונות רבות של גברים לבנים, ומעט תמונות של אוכלוסיות שונות. במקרה שבדוגמה, האלגוריתם ידע להבחין בצורה טובה בסימנים המייחדים גבר לבן, אך יהיה פחות מדויק בעבור נשים אסיאתיות או בעבור כל קהל אחר שהאלגוריתם לא אומן על מספיק דגימות שנלקחו ממנו.
בשביל להתמודד עם הטיה מהסוג הזה כדאי לנסות לאמן את האלגוריתם על קבוצות שמכילות כמות זהה של אובייקטים מכל קבוצה, או אם הדבר אפשרי, לייצר דגימות נוספות מהסוג שקיים פחות במאגר.[16][17]
הטרוגניות של התכונות השונות בוקטור התכונות עשויה להשפיע על בחירת האלגוריתם. וקטורי תכונות מגוונים, שכוללים סוגים שונים של פיצ'רים, יגררו שימוש פשוט יותר באלגוריתמים מסוימים על פני אחרים. אלגוריתמי למידה מונחית רבים דורשים שתכונות הקלט תהיינה מספריות ומנורמלות לטווח אחיד (למשל ). בין האלגוריתמים הללו ניתן למנות את SVM, רגרסיה ליניארית, רגרסיה לוגיסטית, רשתות נוירונים ו-k-NN. אלגוריתמים המשתמשים בחישוב מרחק, כמו k-NN, רגישים במיוחד לנרמול הנתונים. אלגוריתמים אחרים, כמו עצי החלטה, לא מושפעים מהטרוגניות של הנתונים, ומטפלים במקרים כאלו בצורה טובה.
קיום של מידע מיותר בוקטורי התכונות של הקלט – למשל אם ישנן תכונות בעלות קורלציה גבוהה – יגרום לכך שאלגוריתמי למידה מסוימים (כגון רגרסיה ליניארית) יתפקדו בצורה לא מספיק טובה. לעיתים קרובות ניתן לפתור בעיות כאלו על ידי רגולריזציה (אנ').
במקרה של קיום של אינטראקציות מורכבות בין תכונות, אלגוריתמים כמו עצי החלטה ורשתות נוירונים יתאימו יותר לשימוש, מכיוון שהמימוש שלהם מתבסס על קיום אינטראקציות והם מתוכננים במיוחד בשביל לעמוד במשימות מהסוג המדובר. אם כל אחת מהתכונות היא עצמאית, אז אלגוריתמים המבוססים על פונקציות ליניאריות או אלגוריתמים המבוססים על פונקציות מרחק יתנו בדרך כלל ביצועים טובים.
אלגוריתמי למידה מונחית נמצאים בשימוש נרחב וישנם סוגים רבים של אלגוריתמים כאלו.
רשתות נוירונים הן משפחה ענפה של מודלים מתמטיים שפותחו בהשראת המבנה של רשתות נוירונים במוח, כדי ללמוד ביצוע של משימות שמוח אנושי מסוגל ללמוד בקלות, אך מחשב יתקשה בלמידה שלהן. רשתות נוירונים מאפשרות לנו לקרב פונקציות מסובכות בצורה טובה, ולכן הן בדרך כלל מצליחות למדל משימות מורכבות באופן מדויק יותר בהשוואה למודלים אחרים. דוגמאות לבעיות שרשתות נוירונים יכולות ללמוד הן למידת מודלים של שפה טבעית, זיהוי פנים, זיהוי כתב יד, זיהוי דיבור, עיבוד תמונה, ועוד.
משפחת אלגוריתמים שמסווגים דוגמה חדשה באמצעות השוואה שלה לדוגמאות הקרובות לה ביותר ממרחב האימון.
משפחה של אלגוריתמים שבונים עץ בינארי מלא שבכל צומת שלו נבדק תנאי, ובהתאם לתשובה על התנאים נקבע הסיווג של דוגמה בודדת.
ישנם אלגוריתמים רבים שנכללים בקטגוריית אלגוריתמי למידה מונחית, וביניהם רגרסיה ליניארית, רגרסיה מקומית ורגרסיה לוגיסטית, אלגוריתמים גנטיים, מכונת וקטורים תומכים (SVM) ועוד.
ישנן מספר דרכים שבהן ניתן להכליל את בעיית הלמידה המונחית הסטנדרטית:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.