Machine Learning 1 סוגים של למידה -דוגמאות ואינטואיציה ( Supervised Learning למידה מפוקחת) סוכן "רואה" תפוחים ירוקים ואדומים לכל תפוח אומרים לסוכן האם הוא אדום או ירוק הסוכן לומד מהו תפוח ירוק ומהו אדום נראה לסוכן תפוח חדש אדום הסוכן ידע אם זה תפוח ירוק או אדום ( Unsupervised Learning למידה בלתי מפוקחת) סוכן "רואה" הרבה תפוחים ירוקים ואדומים לא אומרים לסוכן מה צבע התפוחים הסוכן לומד שיש שתי קבוצות של פירות איך כל זה קורה? נלמד... 2 ירוק למידת מכונה :מה ומתי? למידת מכונה היא אוסף של טכניקות המאפשרות לסוכן לשפר ביצועים בעזרת הנתונים שעומדים לרשותו כדאי לתכנן סוכן חכם המשתמש בלמידה כאשר: 3 אנחנו לא יודעים מספיק על הסביבה ניווט במאדים ()http://www.sciencedirect.com/science/article/pii/0921889095000228 הסביבה משתנה במשך הזמן ניווט במבוך משתנה אנחנו מתקשים להסביר את הידע שלנו זיהוי דיבור ,ראייה (איננו יודעים איך העין רואה) הבעיה דורשת התאמה אישית הכרת טביעת אצבע של משתמש לפעמים תכנון סוכן חכם הוא מסובך מדי חישוב דירוג של דפי אינטרנט (דינמיות ,התאמה אישית)... 4 דוגמא –1זיהוי פנים הסוכן "יראה" הרבה דוגמאות לתמונות עם התג ,שהוא שם האדם הסוכן ילמד מהם איך לתאר את האדם בד"כ יש גם דוגמאות שליליות הסוכן ידע לומר על כל תמונה חדשה ,אם היא תמונה של האדם או לא. AT&T Laboratories, Cambridge UK 5 http://www.uk.research.att.com/facedatabase.html ( Supervised Learningלמידה מפוקחת) מה נתון? נתון אוסף נתונים הקרויים דוגמאות () examples כל דוגמא מיוצגת ע"י וקטור של תכונות ()features,attributes לכל דוגמה נתון תג ( )labelמתוך קבוצת תגים אפשריים דוגמא: נניח שיש לנו נתונים עבור לווים מבנקים כל לווה הוא דוגמא ( מיוצגת ע"י וקטור) בעלת המבנה (שכר ,מצב משפחתי ,שנות לימוד)... ועם תיוג "בזמן" או "באיחור" 6 ( ( ,7000נשוי , )...12 ,בזמן) ( ( ,4000רווק , )...14 ,באיחור) ( ( ,16000נשוי , )...16 ,בזמן) ... ( Supervised Learningלמידה מפוקחת) מה המטרה? מטרה :בהינתן דוגמא חדשה ,ולא מתויגת ,רוצים לתייג אותה, בעזרת שימוש בדוגמאות שיש לנו. איך? .1עלינו להפיק פונקציה (מודל) שמתאימה לאוסף הנתונים (דוגמאות +תיוג) .2נשתמש בפונקציה (מודל) לתיוג הדוגמא החדשה. דוגמה: נתונים אטריבוטים של לקוח המעוניין בהלוואה. על סמך נתונים על 1,000לווים קודמים השמורים במערכת ,יש להחליט האם לאשר את ההלוואה 7 הגדרה פורמלית של Supervised Learning נתונים מספר דוגמאות הסט של דוגמאות נקרא ( training setסט אימון) נסמן אטריבוטים של דוגמה מספר iעל ידי ווקטור xi נניח mאטריבוטים .אזי )xi=(xi1, xi2, …, xim נסמן תג של דוגמה מספר iעל ידי yi סט אימון עם nדוגמאות: }){(x1, y1), (x2, y2), …, (xn, yn קיים קשר בין אטריבוטים לתגיםyi=f(xi) : אך הפונקציה fלא ידועה לנו 8 Hypothesisו Hypothesis Space המטרה של Supervised Learningהיא לגלות קשר בין אטריבוטים לתגיםyi=f(xi) : כך שגם עבור דוגמה חדשה xיתאים החישוב ) ,y=f(xכלומר )f(x יהיה צפי טוב על התג האמתי של הדוגמה ( hypothesis היפותזה) היא השערה של fהאמתי נסמן היפותזה h ( hypothesis space מרחב היפותזות) – מרחב של פונקציות אפשריות עבור h כגון פונקציות לינאריות היפותזה נקראת ( consistentעקבית) אם היא מסכימה עם f על כל הדוגמאות של סט אימון ,כלומר אם )h(xi)=f(xi 9 סוגים של Supervised Learning מבדילים בין שני סוגי Supervised Learning לפי תחום של תגים yi אם yiנלקחים מקבוצה סופית של קטגוריות (כגון "הלוואה הוחזרה" או "הלוואה לא הוחזרה") ,אזי בעיית למידה היא בעיית ( Classificationסיווג) אם yiהם מספרים (כגון טמפרטורת אויר) ,אזי בעיית למידה היא בעיית ( Regressionרגרסיה) דוגמה של בעיית רגרסיה :נתונה טמפרטורת אוויר (תג) עבור 100 הימים האחרונים .עבור ימים אלה נתונים גם לחץ אוויר ,לחות וטמפרטורת אוויר של היום הקודם (אטריבוטים) .אנו רוצים לקבל צפי על טמפרטורה שתהיה מחר 10 עיקרון Okham’s Razor ( Okham’s Razor סכין של )Okham יש צורך באיזון נכון בין עקביות של היפותזה לפשטותה אפשר לבנות היפותזה hמסובכת שתהיה עקבית עם סט אימון ,אך לא תצליח לבצע צפי טוב על דוגמאות עתידיות בעיה זאת מכנים ( overfittingתיאום יתר) נבין בעיית overfittingבעזרת דוגמה של רגרסיה: 11 12 רגרסיה לינארית Linear Regression - נניח שנתונים מחירי רכבים משומשים בשנים האחרונות - xאטריבוטים של הרכב - yמחיר h = w1x+w0 )h = h (x למשל h=w1x+ w0 איך נמצא את הוקטור ? w נגדיר ( loss functionפונקציית הפסד) אנחנו רוצים שהיא תהיה קטנה ככל הניתן למשל :סכום מרחקי הנקודות מ h 13 העמקה נוספת נראה איך מבצעים רגרסיה בעזרת פונקציות לינאריות כלומר ,מרחב היפותזות הוא פונקציות בצורת: hw(x)=w0+w1x1+w2x2+…wmxm לצורך פשטות נתחיל מדוגמאות בתי אטריביוט אחד ההיפותזות יהיו בצורת hw(x)=w0+w1x אנחנו צריכים למצוא w0ו w1המתאימים ביותר לדוגמאות בסט האימון איך נגדיר "מתאימים ביותר"? נגדיר ( loss functionפונקציית הפסד) 14 היא תהיה המודד של התאמת hלסט אימון אנחנו רוצים שהיא תהיה קטנה ככל הניתן פונקציית הפסד פופולארית: פתרון אופטימלי עבור רגרסיה לינארית עבור מקרה של אטריביוט אחד אנחנו יכולים למצוא בדרך אנליטי w0ו w1כך שההפסד (כמו שהגדרנו) יהיה מינימלי Loss(hw) יכול להיות מינימלי רק בנקודות קיצוניות ,כלומר במקומות שנגזרות חלקיות עבור w0ו w1הם אפס: אלו הפתרונות: 15 מה עושים כשהמצב הוא יותר מסובך? פתרון אופטימלי שקיבלנו בשקופית הקודמת הינו נכון עבור היפותזות לינאריות ופונקציית הפסד מסוימת עבור מרחב היפותזות אחר או פונקציית הפסד אחרת ,לא תמיד נוכל לקבל פתרון באופן אנליטי אז משתמשים בסוג חיפוש לוקלי בשם :gradient descent הסברנו בכיתה כיצד זה עובד עבור רגרסיה לינארית עם פונקציית הפסד כמו מקודם ,נקבל: 16 רגרסיה לינארית עם מספר רב של אטריבוטים מרחב היפותזות: hw(x)=w0+w1x1+w2x2+…wmxm פונקציית הפסד: העדכונים עבור :gradient descent עדכון זה מתאים אפילו ל ,w0רק נוסיף אטריביוט עם מספר 0בעל ערך קבוע של ,1כלומר xj,0=1עבור כל הדוגמאות שימו לב שעכשיו אפשר לבטא היפותזות שלנו באופן קצר: hw(x)=w∙x אפשר לקבל פתרון גם באופן אנליטי 17 18 עצי החלטה עצי החלטה הם מרחב היפותזות עץ החלטה הוא היפותזה כדי להשתמש במרחב הזה ,צריכים שני אלגוריתמים אלגוריתם לבניית היפותזה -יצירת עץ החלטה אלגוריתם לסיווג בעזרת ההיפותזה שבנינו בניית עץ החלטה מתבצעת על סמך אוסף דוגמאות בהינתן העץ ,ניתן לסווג דוגמא חדשה ע"י טיול בעץ ומציאת העלה המתאים דוגמא :עץ ההחלטה בודק אם כדאי לשחק בחוץ השאלה הקשה היא :איך בונים את העץ? 19 נבנה עץ החלטה עבור לקוחות במסעדה... נתונים דוגמאות של לקוחות במסעדה עבור כל לקוח יש תג המתאר אם לקוח מחכה עד שמתפנה מקום קיימים נתונים עבור 12לקוחות .נמדדו 10אטריבוטים 2020 לשימושכם :מקרא לאטריבוטים... 21 – Alternateהאם יש מסעדה אחרת באזור – Barהאם יש אזור נוח לחכות בו - Fri/Satהאם יום שישי/מוצ"ש - Hungryהאם אני רעב – Patronsכמות האנשים במסעדה )(None, Some, Full – Priceטווח מחירים )($, $$, $$$ – Rainingהאם יורד גשם - Reservationהאם שמרנו מקום - Typeסוג - WaitEstimateזמן המתנה משוער )(0-10, 10-30, 30-60, >60 עץ החלטה עבור סט אימון בדוגמה עבור סט אימון בדוגמה ,אפשר לבנות את עץ ההחלטה הבא: 22 איך בונים עץ החלטה? בהתאם ל ,Okham’s Razorאנחנו רוצים לבנות עץ קטן ככל שניתן שיהיה עקבי עם הדוגמאות בסט אימון אין דרך ישירה לחשב מהו העץ הקטן ביותר משתמשים בחוק אצבע :כל פעם מוסיפים קדקוד עבור אטריבוט שיקרב אותנו להחלטה מהר ככל הניתן ( כלומר ,שכל הדוגמאות תחת כל ענף יהיו בעלי תג דומה) 23 בחירת האטריבוט הבא כל פעם מוסיפים קדקוד עבור אטריבוט שמקרב אותנו להחלטה ככל הניתן .דוגמה (הוסברה בכיתה): 24 סיווג לינארי דוגמה: עבור מספר מכונות (חלק מהן תקינות וחלק מהן שבורות) מדדו RPMו vibration אנו רוצים ללמוד כיצד להבדיל בין מכונה תקינה למכונה שבורה על סמך אטריבוטים אלו בסיווג לינארי ,אנו רוצים למצוא separator ( functionפונקציית הפרדה) בצורת w∙x=0 25 איך נבצע סיווג בעזרת פונקציית הפרדה? נניח שחישבנו wויש לנו פונקציית הפרדה w∙x=0 נתייג דוגמה חדשה xבאופן הבא: 26 הרחבה סיווג לינארי דוגמה: עבור מספר מכונות (חלק מהן תקינות וחלק מהן שבורות) מדדו RPMו vibration אנו רוצים ללמוד כיצד להבדיל בין מכונה תקינה למכונה שבורה על סמך אטריבוטים אלו בסיווג לינארי ,אנו רוצים למצוא separator ( functionפונקציית הפרדה) בצורת w∙x=0 תרגיל :מה הייתה פונקציית הפרדה בדוגמה? 27 רמז :יש להוסיף אטריבוט מלאכותי איך נבצע סיווג בעזרת פונקציית הפרדה? נניח שחישבנו wויש לנו פונקציית הפרדה w∙x=0 נתייג דוגמה חדשה xבאופן הבא: הוסבר בכיתה (בעזרת דוגמה עם אטריביוט אחד) מדוע זה נכון 28 פתרון של סיווג לינארי האם אפשר לחשב wבאופן אנליטי? לא... אנו רוצים להבטיח הפסד מינימלי זה יושג כשנגזרות חלקיות שוות ל 0 אבל הנגזרות של hwהם או 0או לא קיימות (כי היא יש בה קפיצות)! 29 חיפוש לוקלי עבור סיווג לינארי אם קיימת היפותזה עקבית ,אזי אפשר לחשב אותה בעזרת gradient descentעם עדכונים: j בדיוק כמו ברגרסיה! מדוע עדכון זה עובד? נתבונן בעדכון זה עבור דוגמה אחת: קיימות שלוש אפשרויות: 30 ) – y=hw(xאזי אין עדכון )( y>hw(xכלומר – )hw(x)=0 ,y=1אזי wiמשתנה בהתאם לסימן של ,xכי אנחנו צריכים להגדיל wxכדי שיהיה hw(x)=1 ) .y<hw(xתרגיל! מה יקרה אם לא תהיה היפותזה עקבית? אם לא קיימת היפותזה עקבית ,אזי העדכונים מתבדרים (כלומר ,לא מתכנסים לערכים מסוימים עבור )wi אבל אפשר לגרום לעדכונים להתכנס אם נבחר αבדרך נבונה: t ,α=O(1/t) הוא זמן ,כלומר מספר העדכון למשל אפשר לקחת )α=1000/(1000+t עוד פתרון הוא להשתמש בפונקציה לוגיסטית בתור היפותזה: במקום משתמשים ב: עבור xמסוים ,היפותזה זאת מספקת רמת ביטחון ש :f(x)=1 31 אם ,wx=0אזי hw(x)=0.5 אם ∞ ,wx=+אזי hw(x)=1 אם ∞ ,wx=-אזי hw(x)=0 עוד יתרון :קיימות נגזרות! K-Nearest Neighbors K-Nearest Neighbors הוא אלגוריתם פשוט מאד בהינתן דוגמה חדשה ,מוצאים kדוגמאות שדומות לה ביותר בסט אימון דוגמה )3-NN( K=3 )5-NN( K=5 מה זה "דומה ביותר"? משתמשים ב Minkovski Distance 32 אם יש שני וקטורים אז Minkovski Distanceהוא: הרבה משתמשים ב ( p=2מרחק אוקלידי) לפעמים יש צורך לנרמל אטריבוטים (הוסבר בכיתה) How To Perform Supervised Learning 33 איך נעריך את איכות הלמידה? נחלק את הנתונים העומדים לרשותנו לשתי קבוצות: סט אימון סט בדיקה לדוגמה :אפשר לבחור בדרך אקראית 80%של דוגמאות שתהיינה בסט אימון ושאר הדוגמאות תהיינה בסט בדיקה הסוכן יבנה את המודל בעזרת סט אימון נעריך את איכות הלמידה על בסיס סט בדיקה טכניקה זאת נקראת ( holdout cross-validationאימות עם מחבוא) 34 K-Fold Cross-Validation ל holdout cross-validationישנו חסרון :הוא לא משתמש בכל הדוגמאות העומדות לרשותנו (לבנית המודל) K-Fold Cross-Validation הוא תהליך חכם שבו כל דוגמה יכולה להיות גם בסט אימון וגם בסט בדיקה גם יחד: מחלקים דוגמאות ל Kקבוצות לדוגמה ,נניח שקיימות n=100דוגמאות ומשתמשים ב K=5 אזי יש 5קבוצות של n/K=20דוגמאות בכל קבוצה מבצעים Kשלבי למידה בכל שלב קבוצה אחת היא סט בדיקה .סט אימון מורכב משאר הקבוצות בונים מודל מסט האימון ,כלומר נבנים פה Kמודלים הסוכן שנבנה יחבר את המודלים באופן שנקבע לפי רוב (סיווג) ,ממוצע (רגרסיה) מקובל להשתמש ב 10=K 35 חשיבות ההפרדה בין סט אימון לסט בדיקה חשוב מאד לוודא שהסוכן לא יתאמן על אותם נתונים שבעזרתם תיקבע איכותו מה יכול לקרות אם הסוכן יתאמן על כל הנתונים? הוא יכול להשתמש ב !overfitting אז נחשוב שהסוכן הוא מצוין ,אבל באמת הוא לא יצליח עבור דוגמאות חדשות 36 מסווג בינארי – Binary Classifier פעמים רבות נרצה להבדיל בין שני תגים. זה נקרא סיווג בינארי בהרבה מקרים של סיווג עם יותר תגים מבצעים שילוב של מסווגים בינריים דוגמה :סיווג ספרות בכתב יד (הוסבר בכיתה) 37 מדידת הביצועים של המודל הבינרי נניח שיש שני תגיםB,A , נבחר את Aלהיות חיובית ()Positive הדוגמאות מסט הבדיקה מחלוקות כמו בטבלה: תג חזוי (ע"י המודל) )Negative (B )Positive (A True Positive False Negative )(TP )(FN )Positive (A False Positive True Negative )(FP )(TN )Negative (B 38 תגית ידועה הגדרותPrecision \ Recall\Accuracy : משמעות... הדוגמאות שסווגו כחיוביות באופן נכון Measure Formula Precision )TP / (TP + FP Recall )TP / (TP + FN הדוגמאות החיוביות שסווגו כחיוביות באופן נכון Accuracy (TP + TN) / (TP + TN + )FP + FN הדוגמאות שסווגו באופן נכון נקבל ערכים בין 0-1 לפעמים מקובל להמיר לאחוזים ,ע"י הכפלה ב 100 39 דוגמא Precision \ Recall \ Accuracy :1 תגית חזויה (ע"י המודל) Measure Negative )(B )Positive (A 0 80 )Positive (A 5 15 Negative )(B תגית ידועה Formula משמעות... Precision )TP / (TP + FP אחוז הדוגמאות שסווגו כחיוביות באופן נכון Recall )TP / (TP + FN אחוז הדוגמאות החיוביות שסווגו כחיוביות באופן נכון Accuracy (TP + TN) / (TP + TN + )FP + FN אחוז הדוגמאות שסווגו באופן נכון נניח שרוצים מודל שבודק אם מישהו חולה ונניח שיש בסט בדיקה 80חולים ו 20בריאים נניח שסיווגנו 80מהחולים כחולים ,וגם 15מהבריאים כחולים TP = 80, FP = 15, TN = 5, FN = 0 Precision = 80/95 = 0.84 Recall = 80/80 = 1 Accuracy = 85/100 = 0.85 40 דוגמא Precision \ Recall\Accuracy :2 תגית חזויה (ע"י המודל) Measure Negative )(B )Positive (A 60 20 )Positive (A 15 5 Negative )(B תגית ידועה Formula משמעות... Precision )TP / (TP + FP אחוז הדוגמאות שסווגו כחיוביות באופן נכון Recall )TP / (TP + FN אחוז הדוגמאות החיוביות שסווגו כחיוביות באופן נכון Accuracy (TP + TN) / (TP + TN + )FP + FN אחוז הדוגמאות שסווגו באופן נכון עכשיו נניח שסיווגנו 20מהחולים כחולים ,וגם 5מהבריאים כחולים TP = 20, FP = 5, TN = 15, FN = 60 Precision = 20/25 = 0.8 Recall = 20/80 = 0.25 Accuracy = 35/100 = 0.35 41 דוגמא Precision \ Recall\Accuracy :3 תגית חזויה (ע"י המודל) Measure Negative )(B )Positive (A 70 10 )Positive (A 0 20 Negative )(B תגית ידועה Formula משמעות... Precision )TP / (TP + FP אחוז הדוגמאות שסווגו כחיוביות באופן נכון Recall )TP / (TP + FN אחוז הדוגמאות החיוביות שסווגו כחיוביות באופן נכון Accuracy (TP + TN) / (TP + TN + )FP + FN אחוז הדוגמאות שסווגו באופן נכון עכשיו נניח שסיווגנו 10מהחולים כחולים ,ו 20מהבריאים כחולים TP = 10, FP = 20, TN = 0, FN = 70 Precision = 10/30 = 0.33 Recall = 10/80 = 0.12 Accuracy = 10/100 = 0.10 42 בחירת מדדים למה Accuracyאינו מספיק? נניח שיש לנו 95חולים ,ו 5בריאים. אם נסווג את כולם כחולים ,נקבל Accuracyשל 95% 43 האם זה טוב? תלוי... אם אפשר לתת לכולם תרופה ,והתרופה אינה פוגעת בבריאים ,זה מצוין. אם לעומת זאת התרופה מאד מסוכנת ואסור לתת אותה לבריאים, אבל זה בסדר אם חלק מהחולים לא מטופלים ,אז accuracyלא מדד טוב. דוגמא נוספת )תגית חזויה (ע"י המודל Positive (A) Negative (B) Positive (A) 500 100 Negative (B) 500 10,000 תגית ידועה Precision = 50% (500/1000) Recall = 83% (500/600) Accuracy = 95% (10500/11100) 44 נושאים נוספים יש עוד הרבה נקודות עדינות כאן כמויות הדוגמאות מכל סוג מדדים נוספים ... זה ילמד לעומק בקורס של כריית מידע (שנה ד) 45 סיכום על למידה מפוקחת רגרסיה: למדנו רגרסיה ליניארית סיווג: פונקציה ליניארית עץ החלטה K-Nearest Neighbors נשארו בחוץ כמה נושאים חשובים: איזו פונקציה ליניארית לבחור בשביל סיווג כשיש כמה פונקציות עקביות עם סט אימון? איך לתייג סטים בתמונה למטה? 46 Support Vector Machines
© Copyright 2024