למידה מונחית

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

למידה מונחית או למידה מפוקחת (Supervised learning) היא טכניקה בענף למידת המכונה, המאפשרת לפתח מכונה או מערכת (בדרך כלל תוכנית מחשב) שלומדת לפתור בעיות על בסיס מאגר גדול של דוגמאות "פתורות". הלמידה עצמה נעשית באמצעות חיפוש היפותזה - פונקציה ממרחב הדוגמאות למרחב התיוגים שמתארת את המידע בצורה הנכונה ביותר. אלגוריתם למידה אופטימלי הוא אלגוריתם שהפונקציה הנלמדת על ידיו תוכל לחזות נכונה את התשובה גם בעבור דוגמאות שטרם נראו על ידי המערכת.[1]

מודלים דיסקרימינטיביים ומודלים גנרטיביים[עריכת קוד מקור | עריכה]

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

אלגוריתמי למידה מונחית מתחלקים לשתי מחלקות בהתאם למודל שהם לומדים:

  • מודלים דיסקרימינטיביים (אנ') הם מודלים שמתוכננים לסווג דוגמאות בצורה נכונה, הם צריכים ללמוד את הגבול בין המחלקות השונות שהדוגמאות יכולות להשתייך אליהן, על מנת לדעת לאיזו מחלקה לשייך אותן. חלק מהמודלים הדיסקרימינטיביים מייצרים על-מישור (או מספר כאלו) במרחב, שמפריד את הדוגמאות ששייכות למחלקה אחת מאלו ששייכות לאחרת. במקרה כזה, תהליך הסיווג יכלול בדיקה של חצי המרחב שבו הדוגמה נמצאת, והתשובה תינתן לפי המחלקה שמזוהה עם חצי המרחב הזה.
  • מודלים גנרטיביים (אנ') הם מודלים שלומדים את התפלגות הקלט, ולכן ניתן להשתמש בהם בשביל לייצר דוגמאות חדשות שנוצרות מהתפלגות זהה לזו של דוגמאות האימון. בכדי לייצר דגימה חדשה שנראית כמו דוגמה אמיתית ששייכת לאחת מהמחלקות, מודלים כאלו צריכים ללמוד את התפלגות הקלט ולייצר דגימה חדשה בהתבסס על ההתפלגות הנלמדת.[2] אחד מהמודלים הגנרטיביים שנמצאים בשימוש הנרחב ביותר כיום הוא Generative adversarial network, אם כי רוב ה-GAN-ים משתמשים בטכניקות של למידה לא מונחית.[3]

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

אימון המערכת[עריכת קוד מקור | עריכה]

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

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

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

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

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

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

שלב האימון עצמו תלוי בסוג האלגוריתם. ברשתות נוירונים, הדוגמאות מוכנסות לאלגוריתם בזו אחר זו, בדרך כלל בקבוצות שמכילות מספר דוגמאות (batch). המערכת מבצעת חיזוי בעבור כל דוגמה באמצעות ההיפותזה שלמדה עד כה, ובאמצעות הערכת השגיאה על הקבוצה, מתקנת את ההיפותזה שלמדה באמצעות שימוש בשיטת אופטימיזציה למציאת מינימום כדוגמת Stochastic gradient descent ושינוי ההיפותזה בכיוון הגדריאנט. לולא הייתה מגבלת זיכרון או מגבלה על כוח העיבוד, תיקון ההיפותזה היה נעשה לאחר מעבר על כל הדוגמאות וחישוב השגיאה על כולן, אך מכיוון שקיימות מגבלות כאלו, המידע מועבר בקבוצות (batch). בעצי החלטה, שלב האימון מתייחס לשלב בניית העץ. הבניה עצמה נעשית בצורה רקורסיבית, כאשר בכל שלב נבחרת התכונה שפיצול על פיה יגרום לכל תת-עץ להכיל דוגמאות בעלות סיווג כמה שיותר דומה. אימון של מודלים מתמטיים כדוגמת רגרסיה ליניארית יעשה באמצעות חיפוש של הפרמטרים שיתארו פונקציית קירוב של המידע בצורה הטובה ביותר.

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

הסבר מתמטי[עריכת קוד מקור | עריכה]

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

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

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

שתי גישות בסיסיות לבחירה של או של הן מזעור סיכונים אמפירי ומזעור סיכונים מבני.[5] מזעור סיכונים אמפירי מחפש את הפונקציה המתארת בצורה הטובה ביותר את נתוני האימון, בעוד שמזעור סיכונים מבני כולל ״פונקציית עונש״ השולטת על הטרייד-אוף בין ההטיה לבין השונות. בשני המקרים, ההנחה היא כי סט האימונים מורכב מזוגות של משתנים מקריים בלתי תלויים ובעלי התפלגות משותפת, .[2]

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

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

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

הערכת ביצועים[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – מדדי הערכה למסווג דו-ערכי

בתום אימון המערכת נהוג להעריך את ביצועיה כדי לבדוק את טיב ההיפותזה שנלמדה. בדרך כלל משתמשים בהערכות סטטיסטיות מגוונות, אך תמיד נהוג להציג את אחוזי הדיוק של המודל על סט הבדיקה ואת ערך פונקציית ההפסד שלו. להערכה בעלת משמעות נהוג להשתמש במדדי ערך ניבוי חיובי (Precision) ורגישות (Recall), שמייצגים את כמות הדוגמאות שהן באמת חיוביות מתוך כל אלו שסווגו כחיוביות, ואת כמות הדוגמאות שסווגו כחיוביות מתוך כל הדוגמאות החיוביות בעולם. למשל, אם המודל לומד לחזות תוצאות של בדיקות קורונה על פי סימפטומים, ה-Precision מייצג את אחוז האנשים שהם באמת חיוביים לנגיף מתוך אלו שהמודל סיווג כחיוביים, וה-Recall מייצג את אחוז האנשים שהמודל אמר שהם חיוביים לנגיף, מתוך אלו שהם באמת חיוביים. שימוש נפוץ נעשה גם במדד משוקלל של שני אלו - מדד F1, שהוא ממוצע הרמוני של שני המדדים.[4][7]

בחירת האלגוריתם[עריכת קוד מקור | עריכה]

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

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

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

הטרייד-אוף בין ההטיה (bias) לבין השונות (variance)[עריכת קוד מקור | עריכה]

הסוגיה הראשונה היא הטרייד-אוף בין ההטיה לבין השונות (אנ').[9] נניח שיש לנו מספר מאגרי מידע שניתן להשתמש בהם לאימון, כאשר כולם טובים באותה המידה. נאמר שלאלגוריתם למידה יש הטיה גבוהה בעבור קלט מסוים אם כאשר מאמנים אותו על כל אחד ממאגרי המידע הללו, הוא יתן פלט שגוי באופן שיטתי בעבור . נאמר שלאלגוריתם למידה יש שונות גבוהה בעבור קלט מסוים אם כאשר מאמנים אותו על מאגרי מידע שונים, הפלט של האלגוריתם בעבור משתנה עם שינוי סט האימון. שגיאת החיזוי של מסווג נלמד תלויה הן בהטיה של אלגוריתם הלמידה והן בשונות שלו.[10]

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

למידת פונקציות מורכבות[עריכת קוד מקור | עריכה]

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

מימד מרחב הקלט[עריכת קוד מקור | עריכה]

הסוגיה השלישית היא המימד של מרחב הקלט. בעיית הלמידה עשויה להפוך למאתגרת יותר ככל שהמימד של וקטורי התכונות גדל (ראו קללת המימד (אנ')), גם אם הפונקציה האמיתית שמייצגת את המידע תלויה רק במספר קטן מהתכונות הללו. הסיבה לכך היא שהממדים העודפים יכולים לבלבל את אלגוריתם הלמידה, להגדיל את מרחב הטעויות האפשריות שלו, וכתוצאה מכך להגדיל את השונות שלו. לפיכך, קלט בעל וקטורים ממימד גבוה דורש כוונון של המסווג כך שתהיה לו שונות נמוכה, והטיה גבוהה. בפועל, ניתן להתמודד עם הבעיה על ידי הסרה ידנית של תכונות לא רלוונטיות מנתוני הקלט. בנוסף, קיימים אלגוריתמים (למשל, אלגוריתם PCA) שיודעים להקטין את מימד הקלט באמצעות הסרת תכונות לא רלוונטיות מוקטור התכונות. במקרה הכללי, הורדת מימד עשויה לשפר את הדיוק של הפונקציה הנלמדת, אך מנגד היא גוזרת שימוש בפחות פיצ'רים ועשויה לגרום לקושי בתיאור המדויק של הקלט.[11]

רעש בערכי הפלט[עריכת קוד מקור | עריכה]

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

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

ישנן מספר גישות למניעת התאמת יתר. הגישה הראשונה היא עצירה מוקדמת של אימון המודל, וגישה נוספת גורסת כי יש לאתר את דוגמאות האימון הרועשות לפני אימון האלגוריתם, ולהסיר אותן. כמו כן, ישנם מספר אלגוריתמים המזהים דוגמאות רועשות או חריגות לפני תחילת האימון, ויודעים להתעלם מהן.[12][13] למודלים ספציפיים יש שיטות ייעודיות שנועדו להתמודד עם התאמת יתר. למשל, ברשתות נוירונים שיטות נפוצות הן הוספת רגולריזציה, הוספת dropouts (אנ') ושימוש ב-Cross-validation (אנ').[14][15] בעצים נשתמש בגיזום - החלפת חלק מהצמתים בעץ בעלים שסיווגם נקבע על פי רוב הדוגמאות ששייכות לתת העץ שתחת אותו הצומת.

הטיה של מאגר הנתונים[עריכת קוד מקור | עריכה]

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

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

מבנה וקטורי התכונות של הנתונים[עריכת קוד מקור | עריכה]

הטרוגניות התכונות[עריכת קוד מקור | עריכה]

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

יתירות של תכונות[עריכת קוד מקור | עריכה]

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

קיום אינטראקציות בין תכונות[עריכת קוד מקור | עריכה]

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

אלגוריתמים מוכרים בתחום[עריכת קוד מקור | עריכה]

אלגוריתמי למידה מונחית נמצאים בשימוש נרחב וישנם סוגים רבים של אלגוריתמים כאלו.

רשתות נוירונים[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – רשת עצבית מלאכותית

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

אלגוריתם שכן קרוב (k-NN)[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – אלגוריתם שכן קרוב

משפחת אלגוריתמים שמסווגים דוגמה חדשה באמצעות השוואה שלה לדוגמאות הקרובות לה ביותר ממרחב האימון.

עצי החלטה[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – עץ החלטה

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

אלגוריתמים נוספים[עריכת קוד מקור | עריכה]

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

הכללות[עריכת קוד מקור | עריכה]

ישנן מספר דרכים שבהן ניתן להכליל את בעיית הלמידה המונחית הסטנדרטית:

  • למידה מונחית למחצה: בהגדרה זו, ערכי הפלט הרצויים ניתנים רק בעבור חלק מנתוני האימון. הנתונים הנותרים אינם מתויגים.[18]
  • הנחיה חלשה: במצבים שבהם קשה למצוא נתונים מתוייגים כדי להשתמש בהם בתור סט-אימון, ניתן להשתמש בתיוגים שמגיעים ממקורות רועשים או לא מדויקים על מנת לאמן את המודל.
  • למידה פעילה: במקום שכל דוגמאות האימון תינתנה לאלגוריתם בהתחלה, אלגוריתמי למידה פעילה אוספים באופן אינטראקטיבי דוגמאות חדשות, בדרך כלל על ידי ביצוע שאילתות למשתמש אנושי.
  • חיזוי מובנה: כאשר ערך הפלט הרצוי של המודל הוא אובייקט מורכב, למשל עץ או גרף, השיטות הסטנדרטיות לא מספיקות ויש להרחיב אותן.
  • למידה של דירוג: כאשר המודל נדרש ללמוד דירוג של קבוצת אובייקטים, נצטרך להרחיב את השיטות הסטנדרטיות. מודלים מהסוג הזה משמשים במקומות רבים וביניהם מנועי חיפוש.[19]

ראו גם[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ 1 2 Zhi-Hua Zhou, A brief introduction to weakly supervised learning, 2017
  2. ^ 1 2 Bin LiuGeoffrey I. Webb, Generative and Discriminative Learning, Encyclopedia of Machine Learning, 2011
  3. ^ Goodfellow, Ian; Pouget-Abadie, Jean; Mirza, Mehdi; Xu, Bing; Warde-Farley, David; Ozair, Sherjil; Courville, Aaron; Bengio, Yoshua, Generative Adversarial Nets, 2014
  4. ^ 1 2 Haiying Wang, Huiru Zheng, Model Validation, Machine Learning, 2013
  5. ^ Vladimir Vapnik, The Nature of Statistical Learning Theory
  6. ^ Pádraig CunninghamMatthieu CordSarah Jane Delany, Supervised Learning, Machine Learning Techniques for Multimedia, 2008
  7. ^ Kwetishe Joro Danjuma, Performance Evaluation of Machine Learning Algorithms in Post-operative Life Expectancy in the Lung Cancer Patients
  8. ^ משפט "אין ארוחות חינם"
  9. ^ S. German, E. Bienenstock and R. Doursat, Neural networks and the bias/variance dilemma, 1992
  10. ^ G. James, Variance and bias for general loss functions, 2003
  11. ^ S.Velliangiri, S.Alagumuthukrishnan, S IwinThankumar joseph, A Review of Dimensionality Reduction Techniques for Efficient Computation
  12. ^ C. E. Brodley, M. A. Friedl, Identifying Mislabeled Training Data, Journal of Artificial Intelligence Research, 1999
  13. ^ M.R. Smith, T. Martinez, Improving classification accuracy by identifying and removing instances that should be misclassified, 2011
  14. ^ Jan LarsenClaus SvarerLars Nonboe AndersenLars Kai Hansen, Adaptive Regularization in Neural NetworkModeling, Neural Networks: Tricks of the Trade, 2012
  15. ^ Srivastava, Nitish and Hinton, Geoffrey and Krizhevsky, Alex and Sutskever, Ilya and Salakhutdinov, Ruslan, Dropout: a simple way to prevent neural networks from overfitting, 2014
  16. ^ Alex Woodie, Three Ways Biased Data Can Ruin Your ML Models, ‏18 ביולי 2018
  17. ^ Data Bias and What it Means for Your Machine Learning Models, ‏14 באפריל 2020
  18. ^ Mohamed Farouk Abdel Hady, Friedhelm Schwenker, Semi-supervised Learning, Handbook on Neural Information Processing, 2013
  19. ^ D. Sculley, Large Scale Learning to Rank