Overfitting (התאמת יתר): כאשר המודל לומד מאפיינים אשר מופיעים רק במדגם ולא מייצגים את הפילוג האמיתי.
הערכת הביצועים / הציון של חזאי (יכולת הכללה):
הערכת המחיר המתקבל בעבור חזאי נתון על הפילוג האמיתי.
יכולת הביטוי (expressiveness) של מודל:
היכולת של מודל פרמטרי לייצג מגוון רחב של מודלים.
Hyper parameters:
הפרמטרים שמשפיעים על המודל או האלגוריתם, אך אינם חלק מהפרמטרים שעליהם אנו מבצעים את האופטימיזציה.
דוגמאות:
לרוב, ניתן לשערך אך את ביצועיו של חזאי מסויים על ידי שימוש בתוחלת אמפירית ומדגם נוסף.
לשם כך נפצל את המודל שני תתי מדגמים:
במידה ומספר הדגימות מוגבל, נפריש דוגמאות מסט האימון.
בקורס זה נציג שני פירוקים נפוצים של שגיאת החיזוי בבעיות supervised learning.
הערה: נשתמש בסימון ED בכדי לציין תוחלת על פני המדגמים האפשריים. (תוחלת ללא סימון E תהיה לפי x ו y).
מודל בעל יכולת ביטוי גבוהה:
מודל בעל יכולת ביטוי נמוכה:
הערה: לעיתים קרובות, לאחר קביעת ה- hyper-parmaeters, נאחד חזרה את ה- validation set וה- train set ונאמן מחדש את המודל על המדגם המאוחד (כל הדגימות מלבד ה test set).
מטרת איבר הרגולריזציה הינה להשתמש בידע מוקדם שיש לנו על אופי הבעיה לצורך בחירת המודל.
רגולריזציות נפוצות:
הערה: λ הוא hyper-parameter של האלגוריתם שאותו יש לקבוע בעזרת ה validation set.
גם לבעיה זו יש פתרון סגור והוא נתון על ידי:
θ∗=(X⊤X+λI)−1X⊤yאנו נראה את הפיתוח של פתרון זה בתרגיל 3.2.
(LASSO = Linear Absolute Shrinkage and Selection Opperator)
θ=θargminN1i∑(x(i)⊤θ−y(i))2+λ∥θ∥1לבעיה זו אין פתרון סגור ויש צורך להשתמש באלגוריתמים איטרטיביים כגון gradient descent.
סעיף 1:
הראו כי בעבור משתנה אקראי כל שהוא x וקבוע a ניתן לפרק את התוחלת של המרחק הריבועי בין a לבין a באופן הבא:
E[(x−a)2]==Var(x)E[(x−E[x])2]+(biasE[x]−a)2פתרון:
זהות זו היא הכללה של הקשר הבא למשתנים אקראיים:
נוכיח את הזהות על ידי הוספה והחסרה של E[x] בתוך הסוגריים:
E[(x−a)2]====E[((x−E[x])+(E[x]−a))2]E[(x−E[x])2]+2E[(x−E[x])(E[x]−a)]+E[(E[x]−a)2]E[(x−E[x])2]+2(=0E[x]−E[x])(E[x]−a)+E[(E[x]−a)2]E[(x−E[x])2]+(E[x]−a)2סעיף 2:
הראו כי בעבור אלגוריתם אשר מייצר חזאיים hD בהינתן מדגמים D, ניתן לפרק את התוחלת (על פני מדגמים וחיזויים שונים) של שגיאת ה-MSE באופן הבא:
ED[E[(hD(x)−y)2]]=E⎣⎢⎡VarianceED[(hD(x)−hˉ(x))2]+Bias2(hˉ(x)−h∗(x))2+Noise(h∗(x)−y)2⎦⎥⎤כאשר:
hˉ(x)=ED[hD(x)]ו-
h∗(x)=E[y∣x]הדרכה:
הראו ראשית כי ניתן לפרק את השגיאת ה MSE בעבור מדגם נתון באופן הבא:
E[(hD(x)−y)2]=E[(hD(x)−h∗(x))2]+E[(h∗(x)−y)2]לשם כך השתמשו בהחלקה על מנת להתנות את התחולת ב x ולקבל תוחלת לפי y. הפעילו את הזהות מסעיף 1 על התוחלת של y.
הראו כי ניתן לפרק את התוחלת הזו באופן הבא:
ED[E[(hD(x)−h∗(x))2]]=E[ED[(hD(x)−hˉ(x))2]+(hˉ(x)−h∗(x))2]לשם כך החליפו את סדר התוחלות והשתמשו בזהות מסעיף 1 על התוחלת לפי D.
פתרון:
נפעל על פי ההדרכה. נחליק על ידי התניה ב x ונפעיל את הזהות מסעיף 1 על התוחלת הפנימית (לפי y):
E[(hD(x)−y)2]=E[E[(hD(x)−y)2∣∣∣x]]=E[(hD(x)−E[y∣x])2+E[(E[y∣x]−y)2∣∣∣x]]נארגן מחדש את התוחלות:
=E[(hD(x)−E[y∣x])2]+E[E[(E[y∣x]−y)2∣∣∣x]]=E[(hD(x)−E[y∣x])2]+E[(E[y∣x]−y)2]נשתמש כעת בעובדה ש E[y∣x]=h∗(x) ונקבל:
=E[(hD(x)−h∗(x))2]+E[(h∗(x)−y)2]על פי ההדרכה נפרק את התוחלת הבאה על ידי החלפת סדר התוחלות ושימוש בזהות מסעיף 1 על התוחלת לפי D:
ED[E[(hD(x)−h∗(x))2]]=E[ED[(hD(x)−h∗(x))2]]=E[ED[(hD(x)−ED[hD(x)])2]+(ED[hD(x)]−h∗(x))2]נשתמש בסימון ED[hD(x)]=hˉ(x) ונקבל:
E[ED[(hD(x)−hˉ(x))2]+(hˉ(x)−h∗(x))2]נשתמש בפירוק הראשון על מנת לקבל:
ED[E[(hD(x)−y)2]]=ED[E[(hD(x)−h∗(x))2]+E[(h∗(x)−y)2]]מכיוון שהאיבר השני לא תלוי ב D נוכל להוציא אותו מהתוחלת על D:
=ED[E[(hD(x)−h∗(x))2]]+E[(h∗(x)−y)2]נציב את הפירוק מהשלב השני ונקבל:
=E[ED[(hD(x)−hˉ(x))2]+(hˉ(x)−h∗(x))2]+E[(h∗(x)−y)2]=E⎣⎢⎡VarianceED[(hD(x)−hˉ(x))2]+Bias2(hˉ(x)−h∗(x))2+Noise(h∗(x)−y)2⎦⎥⎤סעיף 3:
הניחו כי כאשר המדגם גדל, החזאים המתקבלים מהמודל מתכנסים (במובן הסתברותי) לחזאי ה"ממוצע": hD→hˉ.
מה תוכלו לומר על התלות בין איברי השגיאה לגודל המדגם?
(ניתן להניח ש- hˉ אינו תלוי בגודל המדגם)
סעיף 4:
על פי תוצאת הסעיף הקודם, כיצד לדעתכם עשוי להשפיע גודל המדגם על סדר המודל שאותו נרצה לבחור?
פתרון:
השינוי של רכיב ה variance יכול כמובן להשפיע על סדר המודל האופטימאלי.
כאשר הגרף של שגיאת ה variance ירד אנו מצפים כי נקודת המינימום של השגיאה הכוללת תזוז ימינה לכיוון מודלים מסדר גבוהה יותר.
הערה: ניתוח זה כמובן נשען על התנהגות טיפוסית של אלגוריתמי supervised learning ואין הכרח שההתנהגות המתוארת בתשובה זו אכן תהיה ההתנהגות במציאות.
תזכורת, בעיית ה LLS היא המקרה שבו אנו משתמשים ב
בעיית האופטימיזציה של LLS הינה:
θ∗=θargminN1∥Xθ−y∥22כאשר
y=[y(1),y(2),⋅,y(n)]⊤X=⎣⎢⎢⎢⎢⎡−−−x(1)x(2)⋮x(N)−−−⎦⎥⎥⎥⎥⎤כאשר נוסיף לבעיית האופטימיזציה איבר של רגולריזציית l2 נקבל:
θ∗=θargminN1∥Xθ−y∥22+λ∥θ∥22נגזור ונשווה ל-0. נשתמש בנזגרת המוכרת ∇x∥x∥22=∇xx⊤x=2x:
⇔⇔⇔∇θ(N1∥Xθ−y∥22+λ∥θ∥22)=0N2(X⊤Xθ−X⊤y)+2λθ=0(X⊤X+NλI)θ=X⊤yθ=(X⊤X+NλI)−1X⊤y2) נסתכל כעת על וריאציה של Ridge regression שבה אנו נותנים משקל שונה wi לרגולריזציה של כל פרמטר:
i=1∑Dwiθi2(כאן D הוא מספר הפרמטרים של המודל).
הדרכה: הגדירו את מטריצת המשקלים W=diag({wi}), רשמו את הבעיה בכתיב מטריצי ופתרו אותה בדומה לסעיף הקודם.
פתרון:
בעיית האופטימיזציה כעת תהיה
θ∗=θargminN1∥Xθ−y∥22+λi=1∑Dwiθi2נפעל על פי ההדרכה. נגדיר את המטריצה:
W=⎣⎢⎢⎢⎢⎡w10⋮00w2……⋱00⋮wD⎦⎥⎥⎥⎥⎤בעזרת מטריצה זו ניתן לרשום את בעיית האופטימיזציה באופן הבא:
θ∗=θargminN1∥Xθ−y∥22+λθ⊤Wθנגזור ונשווה ל-0:
⇔⇔⇔∇θ(N1∥Xθ−y∥22+λθ⊤Wθ)=0N2(X⊤Xθ−X⊤y)+2λWθ=0(X⊤X+NλW)θ=X⊤yθ=(X⊤X+NλW)−1X⊤yפתרון:
בעיית האופטימיזציה בתוספת רגולריזציית l2 תהיה:
θ∗=θargminf(θ)+λ∥θ∥22בעיית האופטימיזציה בתוספת רגולריזציית l1 תהיה:
θ∗=θargminf(θ)+λ∥θ∥1כאשר g(θ) היא פונקציית המטרה של בעיית האפטימזציה.
כאשר פונקציית הsign פועלת איבר איבר.
ברגולרזציית l2 האיבר המתקבל פרופורציוני לגודל של האיברים בוקטור הפרמטרים.
ברגולריזציית l1 האיבר המתקבל הוא קבוע (עד כדי סימן).
כפי שציינו בסעיף הקודם, רגולריזציית ה l2 תשפיע באופן מועט יחסית על האיברים הקטנים ולא תתאמץ להקטין אותם ובעיקר תפעל להקטין את האיברים הגדולים. מנגד, רגולריזציית ה l1 תמשיך ולנסות להקטין את האיברים כל עוד הם שונים מ-0 ולכן בפועל היא תטה לאפס יותר איברים.
הערה: בפועל בגלל שגודלו של איבר הרגולריזציה בגרדיאנט של l1 קבוע הוא יקטין את האיברים לערכים קרובים ל-0 ואז יתחיל להתנדנד סביב ה-0.
בשיטה זו נחלק את ה train set שלנו ל K קבוצות ונבצע את הערכת הביצויים K פעמים באופן הבא:
הביצועיים הכוללים יהיו הממוצע של התוצאות אשר התקבלו ב K החזרות.
גדולים אופיינים ל K הינם בין 5 ל10.
להלן סכימה של החלוקה של המדגם בעבור בחירה של K=5 :
במקרים מסויימים (בעיקר כשאר ה train set מאד קטן) אנו נבחר לקחת את K להיות שווה למספר האיברים שב train set. במקרה זה גודלה של כל קבוצה יהיה 1. מקרה זה מוכנה לרוב Leave-one-out cross validation.
נתון המדגם הבא:
D={{6,4},{1,2},{4,5},{5,2}}נחלק את המדגם ל train set ו test set:
Dtrain={{6,4},{1,2},{4,5}} Dtest={{5,2}}מודל מסדר 0 (פונקציה קבועה) הוא כמובן מקרה מנוון של מודל לינארי עם מאפיין יחיד של φ(x)=1. במקרה זה אנו מצפים כי המודל אשר ימזער את השגיאה הריבועית יהיה פשוט פונקציה קבועה אשר שווה ל y הממוצע על ה train set. נראה כי זה אכן הפתרון המתקבל מתוך הפתרון הסגור. בעבור מודל זה המטריצה X והוקטור y יהיו:
X=[1,1,1]⊤,y=[4,2,5]⊤הפרמטר האופטימאלי θ∗ יהיה:
θ∗=(X⊤X)−1X⊤y=N∑i=1Ny(i)=332שגיאת החיזוי תהיה במקרה זה ∣2−332∣=132.
מודל זה הינו מודל לינארי עם המאפיינים:
φ1(x)=1,φ2(x)=xהמטריצה X והוקטור y יהיו:
X=⎣⎢⎡111614⎦⎥⎤y=[4,2,5]⊤הפרמטרים האופטימאלים θ∗ יהיו:
θ∗=(X⊤X)−1X⊤y=[77,17]⊤/38שגיאת החיזוי תהיה במקרה זה ∣3877+3817⋅5−2∣=2.263.
על סמך שיגאת החיזוי על ה test set נראה שהמודל מסדר 0 עדיף.
2) מדוע לא נרצה לבחור את סדר המודל על סמך ההשוואה שעשינו על ה test set?
משלב זה והלאה נשכח שביצענו את הערכת הביצועים על ה test set וננסה לקבוע את סדר המודל על סמך validation set.
נקצה את הדגימה השלישית במדגם לטובת ה validation set:
Dtrain={{6,4},{1,2}} Dvalidataion={{4,5}} Dtest={{5,2}}נתאים שוב את שני המודלים על סמך ה train set החדש ונעריך את שגיאת החיזוי על ה validation set:
שגיאת החיזוי על ה validation set תהיה במקרה זה
∣3−5∣=2.
הפרמטרים האופטימאלים θ∗ יהיו:
θ∗=(X⊤X)−1X⊤y=[8,2]⊤/5שגיאת החיזוי על ה validation set תהיה במקרה זה
∣58+52⋅4−5∣=9/5.
במקרה זה אנו נחזור על החישוב של הסעיף הקודם 3 פעמים.
שגיאת חיזוי ממוצעת: 5/3
שגיאת חיזוי ממוצעת: 3.1
נחזור לבעיה מהתרגול הקודם של חיזוי זמן הנסיעה של מונית בנוי יורק בעזרת המדגם הבא:
passenger count | trip distance | payment type | fare amount | tip amount | pickup easting | pickup northing | dropoff easting | dropoff northing | duration | day of week | day of month | time of day | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2 | 2.76806 | 2 | 9.5 | 0 | 586.997 | 4512.98 | 588.155 | 4515.18 | 11.5167 | 3 | 13 | 12.8019 |
1 | 1 | 3.21868 | 2 | 10 | 0 | 587.152 | 4512.92 | 584.85 | 4512.63 | 12.6667 | 6 | 16 | 20.9614 |
2 | 1 | 2.57494 | 1 | 7 | 2.49 | 587.005 | 4513.36 | 585.434 | 4513.17 | 5.51667 | 0 | 31 | 20.4128 |
3 | 1 | 0.965604 | 1 | 7.5 | 1.65 | 586.649 | 4511.73 | 586.672 | 4512.55 | 9.88333 | 1 | 25 | 13.0314 |
4 | 1 | 2.46229 | 1 | 7.5 | 1.66 | 586.967 | 4511.89 | 585.262 | 4511.76 | 8.68333 | 2 | 5 | 7.70333 |
5 | 5 | 1.56106 | 1 | 7.5 | 2.2 | 585.926 | 4512.88 | 585.169 | 4511.54 | 9.43333 | 3 | 20 | 20.6672 |
6 | 1 | 2.57494 | 1 | 8 | 1 | 586.731 | 4515.08 | 588.71 | 4514.21 | 7.95 | 5 | 8 | 23.8419 |
7 | 1 | 0.80467 | 2 | 5 | 0 | 585.345 | 4509.71 | 585.844 | 4509.55 | 4.95 | 5 | 29 | 15.8314 |
8 | 1 | 3.6532 | 1 | 10 | 1.1 | 585.422 | 4509.48 | 583.671 | 4507.74 | 11.0667 | 5 | 8 | 2.09833 |
9 | 6 | 1.62543 | 1 | 5.5 | 1.36 | 587.875 | 4514.93 | 587.701 | 4513.71 | 4.21667 | 3 | 13 | 21.7831 |
מודל זה כולל:
זאת אומרת שאנו צופים שנדע לחזות את זמן הנסיעה (על נסיעות שלא ראינו לפי) בדיוק של ±5.16 דקות.
ננסה כעת להתאים מודל שהוא פולינום של קורדינטאת ההתחלה וקאורדינטת הסיום:
כעת נאחד חזרה את ה validation set וה test set ונאמן מחדש את המודל וזה יהיה המודל הסופי בו נשתמש. נעריך את ביצועי המודל הסופי בעזרת ה test set.
חישוב זה נותן תוצאה של:
RMSEtrain=4.79 min RMSEtest=4.81 minקיבלנו שיפור של כמעט 10% לעומת המודל שממנו התחלנו.
ניתן לחילופין לקבע את סדר המודל להיות 9 והשתמש באיבר רגולריזציה על מנת למזער את ה overfitting.
שימוש ב Ridge regression (רגולריזציית l2) נותן את הביצועיים הבאים:
RMSEtrain=4.82 min RMSEtest=4.85 minאשר מאד קרובים לביצועים שקיבלנו בעבור מודל מסדר 6 ואינו דורש לחזור על האימון מספר פעמים.