למידה מונחית

דוגמה למערכת למידה מונחית. בשלב הראשון נאספות התצפיות. בשלב השני הן מחולקות למדגם אימון ומדגם בדיקה. אחר כך הלומד (אלגוריתם הלמידה) משתמש בדוגמאות המתויגות ממדגם האימון כדי ללמוד מודל חיזוי. באמצעות מדגם הבדיקה ניתן לבדוק את טיב המודל.
למידה מונחית או למידה מפוקחת (באנגלית: Supervised learning) היא טכניקה בענף למידת המכונה, המאפשרת לפתח מכונה או מערכת (בדרך כלל תוכנית מחשב) שלומדת לפתור בעיות על בסיס מאגר גדול של דוגמאות "פתורות". הלמידה עצמה נעשית באמצעות חיפוש היפותזה – פונקציה ממרחב הדוגמאות למרחב התיוגים – שמתארת את המידע בצורה המתאימה ביותר. אלגוריתם למידה אופטימלי הוא אלגוריתם שהפונקציה הנלמדת על ידיו תוכל לחזות נכונה את התשובה גם בעבור דוגמאות שטרם נראו על ידי המערכת.<ref name=":0"></ref>

== סוגים ==
בתמונה ניתן לראות דגימות מתוך מאגר הדוגמאות MNIST שמכיל עשרות אלפי ספרות הכתובות בכתב יד. מודל דיסקרימינטיבי יוכל לקבל תמונה של ספרה בכתב יד, ולומר מה הספרה שקיבל. לעומת זאת, [[מודל גנרטיבי ילמד את ההתפלגות של הספרות, ויוכל לייצר בעצמו ספרות חדשות שנראות כמו ספרות שאדם כתב, אך למעשה הן אינן מופיעות במאגר.]]
אלגוריתמי למידה מונחית מתחלקים לשתי מחלקות בהתאם למודל שהם לומדים:
* מתוכננים לסווג דוגמאות בצורה נכונה. המודלים צריכים ללמוד את הגבול בין המחלקות השונות שהדוגמאות יכולות להשתייך אליהן, על מנת לדעת לאיזו מחלקה לשייך אותן. חלקם מייצרים על-מישור (או מספר כאלו) במרחב, שמפריד את הדוגמאות ששייכות למחלקה אחת מאלו ששייכות לאחרת. במקרה כזה, תהליך הסיווג יכלול בדיקה של חצי המרחב שבו הדוגמה נמצאת, והתשובה תינתן לפי המחלקה שמזוהה עם חצי המרחב הזה.
*מודלים גנרטיביים הם מודלים שלומדים את התפלגות הקלט, ולכן ניתן להשתמש בהם בשביל לייצר דוגמאות חדשות שנוצרות מהתפלגות זהה לזו של דוגמאות האימון. כדי לייצר דגימה חדשה שנראית כמו דוגמה אמיתית ששייכת לאחת מהמחלקות, מודלים כאלו צריכים ללמוד את התפלגות הקלט ולייצר דגימה חדשה בהתבסס על ההתפלגות הנלמדת.<ref name=":1"></ref> אחד מהמודלים הגנרטיביים שנמצאים בשימוש הנרחב ביותר כיום הוא Generative adversarial network, אם כי רוב ה-GAN-ים משתמשים בטכניקות של למידה לא מונחית<small>.</small><ref></ref> מודל דיפוזיה הוא מודל נוסף שפותח בשנת 2015.

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

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

בלמידה מונחית, כל דוגמה שהמערכת לומדת על פיה היא זוג המורכב מאובייקט קלט ומערך הפלט הרצוי בעבור אותו הקלט.<ref name=":0" /> לאוסף הדוגמאות קוראים בשם "סט האימון״, והוא מכיל דגימות שמגיעות מהתפלגות משותפת של מרחב האלמנטים ומרחב התיוגים. אימון אלגוריתם למידה מונחית דורש בדרך כלל סט אימון שמכיל דוגמאות רבות. מטרת הלמידה היא לנבא את התיוג של אלמנט חדש שנוצר מאותה ההתפלגות אם המודל שאנחנו מאמנים הוא דיסקרימינטיבי. בעבור מודל גנרטיבי מטרת הלמידה תהיה ללמוד את ההתפלגות שממנה נוצרו הדוגמאות. לדוגמה, אם הבעיה שאנחנו רוצים ללמוד היא סיווג של תמונות לפי האובייקט המופיע בהן, תורכב כל דוגמה בסט האימון מהקלט – התמונה, ולכל קלט יוצמד הפלט הרצוי – התיוג לפי האובייקט המופיע באותה התמונה.

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

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

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

לפני תחילת האימון נהוג להוציא מתוך סט האימון אחוז מסוים של דוגמאות ולשמור אותן בצד לצורך אימות מאוחר של המודל. שמירת הסטים מתבצעת כדי לאפשר בדיקה מבוקרת של התנהגות המודל אל מול דוגמאות שלא נראו בשלב האימון. במרבית המקרים יצרו מהדוגמאות שהוצאו שני סטים חדשים – סט ולידציה וסט בדיקה (לעיתים סט הולידציה מושמט). סט הולידציה נועד להעריך את ביצועי המערכת על דוגמאות שלא נראו בשלב האימון, תוך כדי השלב עצמו, ואילו סט הבדיקה נועד להערכת ביצועים בתום שלב האימון.<ref name=":2"></ref>

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

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

== הסבר מתמטי ==
בהינתן סט אימון המכיל <math>m</math> דוגמאות <math>\{(x_1, y_1), ..., (x_m,\; y_m)\}</math> כך ש-<math>x_i</math> הוא וקטור התכונות של הדוגמה ה-i ו-<math>y_i</math> הוא התיוג שלה, אלגוריתם למידה מחפש פונקציה <math>g: X \to Y</math>, כאשר <math>X</math> הוא מרחב הקלט (וקטורי התכונות של הקלט) ו-<math>Y</math> הוא מרחב הפלט (התיוגים). הפונקציה <math>g</math> שייכת למרחב ההיפותזות <math>G</math>, הכולל את הפונקציות האפשריות שעשויות לייצג את הבעיה בצורה הנכונה. לפעמים מייצגים את <math>g</math> באמצעות פונקציית ניקוד <math>f: X \times Y \to \mathbb{R}</math> כך ש-<math>g</math> מחזירה בעבור הקלט <math>x</math> את התיוג <math>y</math> שנותן את הניקוד הגבוה ביותר. פורמלית – <math>g(x) = \underset{y}{\arg\max} \; f(x,y)</math>. את מרחב פונקציות הניקוד נסמן ב-<math>F</math>.בהינתן סט אימון שמכיל את הנקודות האדומות, המטרה היא לאמן מודל שמקרב את הנקודות בצורה הטובה ביותר. שתי הפונקציות, הכחולה והירוקה, מתאימות לנקודות במדויק ולכן יכולות להיות מודל מתאים. ערך פונקציית ההפסד של שתי הפונקציות על נתוני האימון הוא אפס. הוספת רגולריזציה תגרום להעדפת המודל הירוק על פני הכחול. המודל הירוק כנראה מכליל טוב יותר על הנקודות כי הוא פחות ספציפי, ולכן שגיאת ההכללה תהיה קטנה יותר.אף על פי ש-<math>G</math> ו-<math>F</math> יכולים לייצג כל מרחב של פונקציות, אלגוריתמי למידה רבים משתמשים במודלים הסתברותיים שבהם <math>g</math> הוא מודל הסתברות מותנית <math>g(x) =P(y|x)</math>, למשל רגרסיה לוגיסטית, או ש-<math>f</math> הוא מודל הסתברות משותפת <math>f(x,y) = P(x,y)</math>, למשל סיווג בייסיאני נאיבי.

שתי גישות בסיסיות לבחירה של <math>f</math> או של <math>g</math> הן מזעור סיכונים אמפירי ומזעור סיכונים מבני.<ref></ref> מזעור סיכונים אמפירי מחפש את הפונקציה המתארת בצורה הטובה ביותר את נתוני האימון, בעוד שמזעור סיכונים מבני כולל ״פונקציית עונש״ השולטת על הטרייד-אוף בין ההטיה לבין השונות. בשני המקרים, ההנחה היא כי סט האימונים מורכב מזוגות של משתנים מקריים בלתי תלויים ובעלי התפלגות משותפת, <math>(x_i, \;y_i)</math>.<ref name=":1" />

על מנת למדוד את מידת ההתאמה של פונקציה לנתוני האימון, נגדיר את פונקציית ההפסד <math>L: Y \times Y \to
\mathbb{R}^+</math> שמודדת את המרחק בין התיוג שהמודל החזיר לבין התיוג האמיתי של הקלט. למשל, בעבור הדוגמה <math>(x_i,\;y_i)</math>, אם האלגוריתם החזיר את הערך <math>\hat{y}</math> בעבור הדוגמה <math>x_i</math>, פונקציית ההפסד מחשבת את ההבדל בין התיוג "האמיתי" של הדוגמה לזו שהתקבלה מאלגוריתם – <math>L(y_i,\hat{y})</math>.<ref></ref>

פונקציית השגיאה האמפירית <math>R(g)</math> של פונקציה <math>g</math> מוגדרת להיות תוחלת ההפסד של <math>g</math> על הפלטים של האלגוריתם. ניתן לאמוד את ערך השגיאה האמפירית על הדוגמאות בסט האימון באמצעות הנוסחה הבאה: <math>R_{emp}(g) = \frac{1}{m} \sum_{i=1}^m L(y_i, g(x_i))</math>. אלגוריתם למידה יקרא ממזער סיכונים אמפירי (ERM) אם הוא ממזער את השגיאה האמפירית <math>R_{emp}</math>.

מזעור סיכונים מבני משתמש בהוספת רגולריזציה לפונקציית ההפסד – <math>\min_f \sum_{i=1}^{n} L(f(x_i), y_i) + \lambda \cdot reg(f)</math>, כאשר <math>L</math> היא פונקציית ההפסד, <math>reg</math> היא הרגולריזציה ו-<math>\lambda</math> הוא פרמטר נלמד שמתאר את עוצמת ההשפעה של הרגולריזציה. הוספת הרגולריזציה מתאימה את הפונקציה הנלמדת לעיקרון התער של אוקאם, שמעדיף פונקציות פשוטות יותר על פני פונקציות מורכבות. רגולריזציה תורמת להקטנת שגיאת ההכללה באמצעות מניעת התאמת-יתר לנתונים.

== הערכת ביצועים ==

בתום אימון המערכת נהוג להעריך את ביצועיה כדי לבדוק את טיב ההיפותזה שנלמדה. בדרך כלל משתמשים בהערכות סטטיסטיות מגוונות, אך תמיד נהוג להציג את אחוזי הדיוק של המודל על סט הבדיקה ואת ערך פונקציית ההפסד שלו. להערכה בעלת משמעות נהוג להשתמש במדדי ערך ניבוי חיובי (Precision) ורגישות (Recall), שמייצגים את כמות הדוגמאות שהן באמת חיוביות מתוך כל אלו שסווגו כחיוביות, ואת כמות הדוגמאות שסווגו כחיוביות מתוך כל הדוגמאות החיוביות בעולם. למשל, אם המודל לומד לחזות תוצאות של בדיקות קורונה על פי סימפטומים, ה-Precision מייצג את אחוז האנשים שהם באמת חיוביים לנגיף מתוך אלו שהמודל סיווג כחיוביים, וה-Recall מייצג את אחוז האנשים שהמודל אמר שהם חיוביים לנגיף, מתוך אלו שהם באמת חיוביים. שימוש נפוץ נעשה גם במדד משוקלל של שני אלו – מדד F1, שהוא ממוצע הרמוני של שני המדדים.<ref name=":2" /><ref></ref>

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

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

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

=== הטרייד-אוף בין ההטיה (bias) לבין השונות (variance) ===
הסוגיה הראשונה היא הטרייד-אוף בין ההטיה לבין השונות .<ref></ref> נניח שיש לנו מספר מאגרי מידע שניתן להשתמש בהם לאימון, כאשר כולם טובים באותה המידה. נאמר שלאלגוריתם למידה יש הטיה גבוהה בעבור קלט מסוים <math>x</math> אם כאשר מאמנים אותו על כל אחד ממאגרי המידע הללו, הוא ייתן פלט שגוי באופן שיטתי בעבור <math>x</math>. נאמר שלאלגוריתם למידה יש שונות גבוהה בעבור קלט מסוים <math>x</math> אם כאשר מאמנים אותו על מאגרי מידע שונים, הפלט של האלגוריתם בעבור <math>x</math> משתנה עם שינוי סט האימון. שגיאת החיזוי של מסווג נלמד תלויה הן בהטיה של אלגוריתם הלמידה והן בשונות שלו.<ref></ref>

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

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

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

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

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

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

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

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

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

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

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

=== רשתות נוירונים ===

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

=== אלגוריתם שכן קרוב (k-NN) ===

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

=== עצי החלטה ===

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

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

== הכללות ==
ישנן מספר דרכים שבהן ניתן להכליל את בעיית הלמידה המונחית הסטנדרטית:
* למידה מונחית למחצה: בהגדרה זו, ערכי הפלט הרצויים ניתנים רק בעבור חלק מנתוני האימון. הנתונים הנותרים אינם מתויגים.<ref></ref>
* הנחיה חלשה: במצבים שבהם קשה למצוא נתונים מתוייגים כדי להשתמש בהם בתור סט-אימון, ניתן להשתמש בתיוגים שמגיעים ממקורות רועשים או לא מדויקים על מנת לאמן את המודל.
* למידה פעילה: במקום שכל דוגמאות האימון תינתנה לאלגוריתם בהתחלה, אלגוריתמי למידה פעילה אוספים באופן אינטראקטיבי דוגמאות חדשות, בדרך כלל על ידי ביצוע שאילתות למשתמש אנושי.
* חיזוי מובנה: כאשר ערך הפלט הרצוי של המודל הוא אובייקט מורכב, למשל עץ או גרף, השיטות הסטנדרטיות לא מספיקות ויש להרחיב אותן.
* למידה של דירוג: כאשר המודל נדרש ללמוד דירוג של קבוצת אובייקטים, נצטרך להרחיב את השיטות הסטנדרטיות. מודלים מהסוג הזה משמשים במקומות רבים וביניהם מנועי חיפוש.<ref></ref>

==ראו גם==
*למידה בלתי מונחית
*למידת PAC
*למידת חיזוק
*מטריצת בלבול

== הערות שוליים ==

קטגוריה:למידת מכונה