למידת מכונה היא ענף של בינה מלאכותית, המאפשרת למכונות לבצע ניתוח נתונים ולבצע תחזיות. עם זאת, אם מודל למידת המכונה אינו מדויק, הוא יכול לעשות שגיאות חיזוי, ושגיאות חיזוי אלו ידועות בדרך כלל כ- Bias and Variance. בלמידת מכונה, שגיאות אלו תמיד יהיו נוכחות מכיוון שתמיד יש הבדל קל בין תחזיות המודל לתחזיות בפועל. המטרה העיקרית של מנתחי ML/מדעי נתונים היא לצמצם שגיאות אלו כדי לקבל תוצאות מדויקות יותר. בנושא זה, אנו עומדים לדון בהטיה ושונות, פשרה בין הטיה לשונות, התאמת חסר והתאמה יתר. אבל לפני שנתחיל, בואו נבין תחילה מהן שגיאות בלמידת מכונה?
שגיאות בלמידת מכונה?
בלמידת מכונה, שגיאה היא מדד למידת הדיוק שבה אלגוריתם יכול לבצע תחזיות עבור מערך הנתונים שלא היה ידוע קודם לכן. על בסיס שגיאות אלו, נבחר מודל למידת המכונה שיכול לבצע את הביצועים הטובים ביותר במערך הנתונים המסוים. ישנם בעיקר שני סוגים של שגיאות בלמידת מכונה, שהם:
ללא קשר לאיזה אלגוריתם נעשה שימוש. הסיבה לשגיאות אלו היא משתנים לא ידועים שלא ניתן להפחית את ערכם.
מהי הטיה?
באופן כללי, מודל למידת מכונה מנתח את הנתונים, מוצא בהם דפוסים ומבצע תחזיות. בזמן האימון, המודל לומד את הדפוסים הללו במערך הנתונים ומיישם אותם לבדיקת נתונים לצורך חיזוי. בזמן ביצוע תחזיות, מתרחש הבדל בין ערכי חיזוי שנעשו על ידי המודל לבין ערכים בפועל/ערכים צפויים , והבדל זה ידוע בתור טעויות הטיה או שגיאות עקב הטיה . ניתן להגדיר זאת כחוסר יכולת של אלגוריתמי למידת מכונה כגון רגרסיה לינארית לתפוס את הקשר האמיתי בין נקודות הנתונים. כל אלגוריתם מתחיל בכמות מסוימת של הטיה מכיוון שהטיה מתרחשת מהנחות במודל, מה שהופך את פעולת המטרה לפשוטה ללמידה. לדגם יש או:
Java ממיין רשימה
בדרך כלל, לאלגוריתם ליניארי יש הטיה גבוהה, מכיוון שהוא גורם להם ללמוד מהר. ככל שהאלגוריתם פשוט יותר, כך סביר להניח שההטיה היא גבוהה יותר. בעוד שלאלגוריתם לא ליניארי יש לעתים קרובות הטיה נמוכה.
כמה דוגמאות לאלגוריתמים של למידת מכונה עם הטיה נמוכה הם עצי החלטה, k-Nearest Neighbors ומכונות וקטור תמיכה . יחד עם זאת, אלגוריתם עם הטיה גבוהה הוא רגרסיה לינארית, ניתוח מבחין ליניארי ורגרסיה לוגיסטית.
דרכים להפחית הטיה גבוהה:
הטיה גבוהה מתרחשת בעיקר בגלל מודל פשוט בהרבה. להלן כמה דרכים להפחית את ההטיה הגבוהה:
- הגדל את תכונות הקלט כאשר הדגם אינו מצויד.
- הקטן את טווח ההסדרה.
- השתמש במודלים מורכבים יותר, כגון הכללת כמה תכונות פולינומיות.
מהי שגיאת שונות?
השונות תציין את כמות השונות בתחזית אם נעשה שימוש בנתוני האימון השונים. במילים פשוטות, שונות אומר עד כמה משתנה אקראי שונה מהערך הצפוי שלו. באופן אידיאלי, מודל לא צריך להשתנות יותר מדי ממערך אימון אחד למשנהו, מה שאומר שהאלגוריתם צריך להיות טוב בהבנת המיפוי הנסתר בין משתני קלט ומשתני פלט. שגיאות שונות הן אחת מהן שונות נמוכה או שונות גבוהה.
שונות נמוכה פירושו שיש וריאציה קטנה בחיזוי פונקציית המטרה עם שינויים במערך נתוני האימון. באותו הזמן, שונות גבוהה מראה וריאציה גדולה בחיזוי של פונקציית המטרה עם שינויים במערך האימון.
מודל שמראה שונות גבוהה לומד הרבה ומתפקד היטב עם מערך האימון, ואינו מכליל היטב עם מערך הנתונים הבלתי נראה. כתוצאה מכך, מודל כזה נותן תוצאות טובות עם מערך ההדרכה, אך מציג שיעורי שגיאה גבוהים במערך הבדיקה.
מכיוון שעם שונות גבוהה, המודל לומד יותר מדי ממערך הנתונים, זה מוביל להתאמת יתר של המודל. לדגם עם שונות גבוהה יש את הבעיות הבאות:
- מודל שונות גבוהה מוביל להתאמת יתר.
- הגדל את מורכבות המודל.
בדרך כלל, לאלגוריתמים לא ליניאריים יש גמישות רבה כדי להתאים למודל, יש שונות גבוהה.
sql טבלאות מרובות בחר
כמה דוגמאות לאלגוריתמים של למידת מכונה עם שונות נמוכה הן, רגרסיה לינארית, רגרסיה לוגיסטית וניתוח מבחין ליניארי . יחד עם זאת, אלגוריתמים עם שונות גבוהה הם עץ ההחלטות, Support Vector Machine, והשכנים הקרובים ביותר ל-K.
דרכים להפחית שונות גבוהה:
- צמצם את תכונות הקלט או מספר הפרמטרים מכיוון שהדגם מצויד יתר על המידה.
- אל תשתמש במודל מורכב במיוחד.
- הגדל את נתוני האימון.
- הגדל את טווח הרגולציה.
שילובים שונים של הטיה-שונות
ישנם ארבעה שילובים אפשריים של הטיה ושונות, המיוצגים על ידי התרשים שלהלן:
השילוב של הטיה נמוכה ושונות נמוכה מציג מודל למידת מכונה אידיאלית. עם זאת, זה לא אפשרי מבחינה מעשית.
עם הטיה גבוהה ושונות גבוהה, התחזיות אינן עקביות וגם אינן מדויקות בממוצע.
כיצד לזהות שונות גבוהה או הטיה גבוהה?
ניתן לזהות שונות גבוהה אם למודל יש:
אלגוריתם knn
- טעות אימון נמוכה ושגיאת בדיקה גבוהה.
ניתן לזהות הטיה גבוהה אם לדגם יש:
- טעות אימון גבוהה ושגיאת הבדיקה כמעט דומה לשגיאת אימון.
חילוף הטיה-שונות
בזמן בניית מודל למידת המכונה, חשוב מאוד להקפיד על הטיה ושונות על מנת למנוע התאמה יתר והתאמת המודל. אם המודל פשוט מאוד עם פחות פרמטרים, ייתכן שיש לו שונות נמוכה והטיה גבוהה. בעוד שאם למודל יש מספר רב של פרמטרים, תהיה לו שונות גבוהה והטיה נמוכה. לכן, נדרש לאזן בין טעויות הטיה ושונות, והאיזון הזה בין שגיאת ההטיה לשגיאת השונות ידוע בשם החלפת הטיה-שונות.
עבור חיזוי מדויק של המודל, אלגוריתמים זקוקים לשונות נמוכה והטיה נמוכה. אבל זה לא אפשרי מכיוון שהטיה ושונות קשורים זה לזה:
- אם נקטין את השונות, זה יגדיל את ההטיה.
- אם נקטין את ההטיה, זה יגדיל את השונות.
שוויון הטיה-שונות הוא נושא מרכזי בלמידה מפוקחת. באופן אידיאלי, אנחנו צריכים מודל שלוכד במדויק את הסדירות בנתוני האימון ובו זמנית מכליל היטב עם מערך הנתונים הבלתי נראה. למרבה הצער, לא ניתן לעשות זאת בו-זמנית. מכיוון שאלגוריתם של שונות גבוהה עשוי לתפקד היטב עם נתוני אימון, אך הוא עלול להוביל להתאמת יתר לנתונים רועשים. ואילו אלגוריתם הטיה גבוהה מייצר מודל פשוט בהרבה שאולי אפילו לא תופס חוקיות חשובה בנתונים. לכן, אנחנו צריכים למצוא נקודה מתוקה בין הטיה לשונות כדי ליצור מודל אופטימלי.
לפיכך, ה פשרה בין הטיה לשונות עוסקת במציאת הנקודה המתוקה לעשות איזון בין טעויות הטיה ושונות.