Presentation is loading. Please wait.

Presentation is loading. Please wait.

למידת מכונה Machine Learning.

Similar presentations


Presentation on theme: "למידת מכונה Machine Learning."— Presentation transcript:

1 למידת מכונה Machine Learning

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

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

4 Supervised Learning

5 דוגמא 1– זיהוי פנים הסוכן "יראה" הרבה דוגמאות לתמונות עם התג, שהוא שם האדם הסוכן ילמד מהם איך לתאר את האדם בד"כ יש גם דוגמאות שליליות הסוכן ידע לומר על כל תמונה חדשה, אם היא תמונה של האדם או לא. AT&T Laboratories, Cambridge UK

6 Supervised Learning (למידה מפוקחת) מה נתון?
נתון אוסף נתונים הקרויים דוגמאות (examples ) כל דוגמא מיוצגת ע"י וקטור של תכונות (features,attributes) לכל דוגמה נתון תג (label) מתוך קבוצת תגים אפשריים דוגמא: נניח שיש לנו נתונים עבור לווים מבנקים כל לווה הוא דוגמא ( מיוצגת ע"י וקטור) בעלת המבנה (שכר, מצב משפחתי, שנות לימוד...) ועם תיוג "בזמן" או "באיחור" ( (7000, נשוי, 12...) , בזמן) ( (4000, רווק, 14...) , באיחור) ( (16000, נשוי, 16...) , בזמן) ...

7 Supervised Learning (למידה מפוקחת) מה המטרה?
מטרה: בהינתן דוגמא חדשה, ולא מתויגת, רוצים לתייג אותה, בעזרת שימוש בדוגמאות שיש לנו. איך? עלינו להפיק פונקציה (מודל) שמתאימה לאוסף הנתונים (דוגמאות + תיוג) נשתמש בפונקציה (מודל) לתיוג הדוגמא החדשה. דוגמה: נתונים אטריבוטים של לקוח המעוניין בהלוואה. על סמך נתונים על 1,000 לווים קודמים השמורים במערכת, יש להחליט האם לאשר את ההלוואה

8 הגדרה פורמלית של Supervised Learning
נתונים מספר דוגמאות הסט של דוגמאות נקרא training set (סט אימון) נסמן אטריבוטים של דוגמה מספר iעל ידי ווקטור xi נניח m אטריבוטים. אזי xi=(xi1, xi2, …, xim) נסמן תג של דוגמה מספר iעל ידי yi סט אימון עם n דוגמאות: {(x1, y1), (x2, y2), …, (xn, yn)} קיים קשר בין אטריבוטים לתגים: yi=f(xi) אך הפונקציה f לא ידועה לנו

9 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)

10 סוגים של Supervised Learning
לפי תחום של תגים yi אם yi נלקחים מקבוצה סופית של קטגוריות (כגון "הלוואה הוחזרה" או "הלוואה לא הוחזרה"), אזי בעיית למידה היא בעיית Classification (סיווג) אם yi הם מספרים (כגון טמפרטורת אויר), אזי בעיית למידה היא בעיית Regression (רגרסיה) דוגמה של בעיית רגרסיה: נתונה טמפרטורת אוויר (תג) עבור 100 הימים האחרונים. עבור ימים אלה נתונים גם לחץ אוויר, לחות וטמפרטורת אוויר של היום הקודם (אטריבוטים). אנו רוצים לקבל צפי על טמפרטורה שתהיה מחר

11 עיקרון Okham’s Razor Okham’s Razor (סכין של Okham)
יש צורך באיזון נכון בין עקביות של היפותזה לפשטותה אפשר לבנות היפותזה h מסובכת שתהיה עקבית עם סט אימון, אך לא תצליח לבצע צפי טוב על דוגמאות עתידיות בעיה זאת מכנים overfitting (תיאום יתר) נבין בעיית overfitting בעזרת דוגמה של רגרסיה:

12 רגרסיה - Regression

13 רגרסיה לינארית - Linear Regression
נניח שנתונים מחירי רכבים משומשים בשנים האחרונות x - אטריבוטים של הרכב y - מחיר h = h (x) למשל h=w1x+ w0 איך נמצא את הוקטור w ? נגדיר loss function (פונקציית הפסד) אנחנו רוצים שהיא תהיה קטנה ככל הניתן למשל: סכום מרחקי הנקודות מ h h = w1x+w0

14 העמקה נוספת נראה איך מבצעים רגרסיה בעזרת פונקציות לינאריות
כלומר, מרחב היפותזות הוא פונקציות בצורת: hw(x)=w0+w1x1+w2x2+…wmxm לצורך פשטות נתחיל מדוגמאות בתי אטריביוט אחד ההיפותזות יהיו בצורת hw(x)=w0+w1x אנחנו צריכים למצוא w0 ו w1 המתאימים ביותר לדוגמאות בסט האימון איך נגדיר "מתאימים ביותר"? נגדיר loss function (פונקציית הפסד) היא תהיה המודד של התאמת h לסט אימון אנחנו רוצים שהיא תהיה קטנה ככל הניתן פונקציית הפסד פופולארית:

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

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

17 רגרסיה לינארית עם מספר רב של אטריבוטים
מרחב היפותזות: hw(x)=w0+w1x1+w2x2+…wmxm פונקציית הפסד: העדכונים עבור gradient descent: עדכון זה מתאים אפילו ל w0, רק נוסיף אטריביוט עם מספר 0 בעל ערך קבוע של 1, כלומר xj,0=1 עבור כל הדוגמאות שימו לב שעכשיו אפשר לבטא היפותזות שלנו באופן קצר: hw(x)=w∙x אפשר לקבל פתרון גם באופן אנליטי

18 סיווג - Classification

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

20 נבנה עץ החלטה עבור לקוחות במסעדה...
נתונים דוגמאות של לקוחות במסעדה עבור כל לקוח יש תג המתאר אם לקוח מחכה עד שמתפנה מקום קיימים נתונים עבור 12 לקוחות. נמדדו 10 אטריבוטים 20

21 לשימושכם: מקרא לאטריבוטים...
Alternate – האם יש מסעדה אחרת באזור Bar – האם יש אזור נוח לחכות בו Fri/Sat - האם יום שישי/מוצ"ש Hungry - האם אני רעב Patrons – כמות האנשים במסעדה (None, Some, Full) Price – טווח מחירים ($, $$, $$$) Raining – האם יורד גשם Reservation - האם שמרנו מקום Type - סוג WaitEstimate- זמן המתנה משוער (0-10, 10-30, 30-60, >60)

22 עץ החלטה עבור סט אימון בדוגמה
עבור סט אימון בדוגמה, אפשר לבנות את עץ ההחלטה הבא:

23 איך בונים עץ החלטה? בהתאם ל Okham’s Razor, אנחנו רוצים לבנות עץ קטן ככל שניתן שיהיה עקבי עם הדוגמאות בסט אימון אין דרך ישירה לחשב מהו העץ הקטן ביותר משתמשים בחוק אצבע: כל פעם מוסיפים קדקוד עבור אטריבוט שיקרב אותנו להחלטה מהר ככל הניתן (כלומר, שכל הדוגמאות תחת כל ענף יהיו בעלי תג דומה)

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

25 סיווג לינארי דוגמה: עבור מספר מכונות (חלק מהן תקינות וחלק מהן שבורות) מדדו RPM ו vibration אנו רוצים ללמוד כיצד להבדיל בין מכונה תקינה למכונה שבורה על סמך אטריבוטים אלו בסיווג לינארי, אנו רוצים למצוא separator function (פונקציית הפרדה) בצורת 0w∙x=

26 איך נבצע סיווג בעזרת פונקציית הפרדה?
נניח שחישבנו w ויש לנו פונקציית הפרדה 0=w∙x נתייג דוגמה חדשה x באופן הבא:

27 הרחבה סיווג לינארי דוגמה:
עבור מספר מכונות (חלק מהן תקינות וחלק מהן שבורות) מדדו RPM ו vibration אנו רוצים ללמוד כיצד להבדיל בין מכונה תקינה למכונה שבורה על סמך אטריבוטים אלו בסיווג לינארי, אנו רוצים למצוא separator function (פונקציית הפרדה) בצורת 0w∙x= תרגיל: מה הייתה פונקציית הפרדה בדוגמה? רמז: יש להוסיף אטריבוט מלאכותי

28 איך נבצע סיווג בעזרת פונקציית הפרדה?
נניח שחישבנו w ויש לנו פונקציית הפרדה 0=w∙x נתייג דוגמה חדשה x באופן הבא: הוסבר בכיתה (בעזרת דוגמה עם אטריביוט אחד) מדוע זה נכון

29 פתרון של סיווג לינארי האם אפשר לחשב w באופן אנליטי? לא...
אנו רוצים להבטיח הפסד מינימלי זה יושג כשנגזרות חלקיות שוות ל 0 אבל הנגזרות של hw הם או 0 או לא קיימות (כי היא יש בה קפיצות)!

30 חיפוש לוקלי עבור סיווג לינארי
אם קיימת היפותזה עקבית, אזי אפשר לחשב אותה בעזרת gradient descent עם עדכונים: בדיוק כמו ברגרסיה! מדוע עדכון זה עובד? נתבונן בעדכון זה עבור דוגמה אחת: קיימות שלוש אפשרויות: y=hw(x) – אזי אין עדכון y>hw(x) (כלומר y=1, hw(x)=0) – אזי wi משתנה בהתאם לסימן של x, כי אנחנו צריכים להגדיל wx כדי שיהיה hw(x)=1 y<hw(x). תרגיל! j

31 מה יקרה אם לא תהיה היפותזה עקבית?
אם לא קיימת היפותזה עקבית, אזי העדכונים מתבדרים (כלומר, לא מתכנסים לערכים מסוימים עבור wi) אבל אפשר לגרום לעדכונים להתכנס אם נבחר α בדרך נבונה: α=O(1/t), t הוא זמן, כלומר מספר העדכון למשל אפשר לקחת α=1000/(1000+t) עוד פתרון הוא להשתמש בפונקציה לוגיסטית בתור היפותזה: במקום משתמשים ב: עבור x מסוים, היפותזה זאת מספקת רמת ביטחון ש f(x)=1: אם wx=0, אזי hw(x)=0.5 אם wx=+∞, אזי hw(x)=1 אם wx=-∞, אזי hw(x)=0 עוד יתרון: קיימות נגזרות!

32 K-Nearest Neighbors K-Nearest Neighbors הוא אלגוריתם פשוט מאד
דוגמה K=3 (3-NN) K=5 (5-NN) מה זה "דומה ביותר"? משתמשים ב Minkovski Distance אם יש שני וקטורים אז Minkovski Distance הוא: הרבה משתמשים ב p=2 (מרחק אוקלידי) לפעמים יש צורך לנרמל אטריבוטים (הוסבר בכיתה)

33 איך מבצעים למידה מפוקחת
How To Perform Supervised Learning

34 איך נעריך את איכות הלמידה?
נחלק את הנתונים העומדים לרשותנו לשתי קבוצות: סט אימון סט בדיקה לדוגמה: אפשר לבחור בדרך אקראית 80% של דוגמאות שתהיינה בסט אימון ושאר הדוגמאות תהיינה בסט בדיקה הסוכן יבנה את המודל בעזרת סט אימון נעריך את איכות הלמידה על בסיס סט בדיקה טכניקה זאת נקראת holdout cross-validation (אימות עם מחבוא)

35 K-Fold Cross-Validation
ל holdout cross-validation ישנו חסרון: הוא לא משתמש בכל הדוגמאות העומדות לרשותנו (לבנית המודל) K-Fold Cross-Validationהוא תהליך חכם שבו כל דוגמה יכולה להיות גם בסט אימון וגם בסט בדיקה גם יחד: מחלקים דוגמאות ל K קבוצות לדוגמה, נניח שקיימות n=100 דוגמאות ומשתמשים ב K=5 אזי יש 5 קבוצות של n/K=20 דוגמאות בכל קבוצה מבצעים K שלבי למידה בכל שלב קבוצה אחת היא סט בדיקה. סט אימון מורכב משאר הקבוצות בונים מודל מסט האימון, כלומר נבנים פה K מודלים הסוכן שנבנה יחבר את המודלים באופן שנקבע לפי רוב (סיווג), ממוצע (רגרסיה) מקובל להשתמש ב K=10

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

37 מסווג בינארי – Binary Classifier
פעמים רבות נרצה להבדיל בין שני תגים. זה נקרא סיווג בינארי בהרבה מקרים של סיווג עם יותר תגים מבצעים שילוב של מסווגים בינריים דוגמה: סיווג ספרות בכתב יד (הוסבר בכיתה)

38 מדידת הביצועים של המודל הבינרי
נניח שיש שני תגים, A,B נבחר את A להיות חיובית (Positive) הדוגמאות מסט הבדיקה מחלוקות כמו בטבלה: תג חזוי (ע"י המודל) Positive (A) Negative (B) תגית ידועה True Positive (TP) False Negative (FN) False Positive (FP) True Negative (TN)

39 הגדרות: Precision \ Recall\Accuracy
משמעות... Formula Measure הדוגמאות שסווגו כחיוביות באופן נכון TP / (TP + FP) Precision הדוגמאות החיוביות שסווגו כחיוביות באופן נכון TP / (TP + FN) Recall הדוגמאות שסווגו באופן נכון (TP + TN) / (TP + TN + FP + FN) Accuracy נקבל ערכים בין 0-1 לפעמים מקובל להמיר לאחוזים, ע"י הכפלה ב 100

40 דוגמא 1: Precision \ Recall \ Accuracy
משמעות... Formula Measure אחוז הדוגמאות שסווגו כחיוביות באופן נכון TP / (TP + FP) Precision אחוז הדוגמאות החיוביות שסווגו כחיוביות באופן נכון TP / (TP + FN) Recall אחוז הדוגמאות שסווגו באופן נכון (TP + TN) / (TP + TN + FP + FN) Accuracy תגית חזויה (ע"י המודל) Positive (A) Negative (B) תגית ידועה 80 15 5 נניח שרוצים מודל שבודק אם מישהו חולה ונניח שיש בסט בדיקה 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

41 דוגמא 2: Precision \ Recall\Accuracy
משמעות... Formula Measure אחוז הדוגמאות שסווגו כחיוביות באופן נכון TP / (TP + FP) Precision אחוז הדוגמאות החיוביות שסווגו כחיוביות באופן נכון TP / (TP + FN) Recall אחוז הדוגמאות שסווגו באופן נכון (TP + TN) / (TP + TN + FP + FN) Accuracy תגית חזויה (ע"י המודל) Positive (A) Negative (B) תגית ידועה 20 60 5 15 עכשיו נניח שסיווגנו 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

42 דוגמא 3: Precision \ Recall\Accuracy
משמעות... Formula Measure אחוז הדוגמאות שסווגו כחיוביות באופן נכון TP / (TP + FP) Precision אחוז הדוגמאות החיוביות שסווגו כחיוביות באופן נכון TP / (TP + FN) Recall אחוז הדוגמאות שסווגו באופן נכון (TP + TN) / (TP + TN + FP + FN) Accuracy תגית חזויה (ע"י המודל) Positive (A) Negative (B) תגית ידועה 10 70 20 עכשיו נניח שסיווגנו 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

43 בחירת מדדים למה Accuracy אינו מספיק?
נניח שיש לנו 95 חולים, ו 5 בריאים. אם נסווג את כולם כחולים, נקבל Accuracy של 95% האם זה טוב? תלוי... אם אפשר לתת לכולם תרופה, והתרופה אינה פוגעת בבריאים, זה מצוין. אם לעומת זאת התרופה מאד מסוכנת ואסור לתת אותה לבריאים, אבל זה בסדר אם חלק מהחולים לא מטופלים, אז accuracy לא מדד טוב.

44 דוגמא נוספת תגית חזויה (ע"י המודל) Positive (A) Negative (B)
תגית ידועה 500 100 10,000 Precision = 50% (500/1000) Recall = 83% (500/600) Accuracy = 95% (10500/11100)

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

46 סיכום על למידה מפוקחת רגרסיה: סיווג: נשארו בחוץ כמה נושאים חשובים:
למדנו רגרסיה ליניארית סיווג: פונקציה ליניארית עץ החלטה K-Nearest Neighbors נשארו בחוץ כמה נושאים חשובים: איזו פונקציה ליניארית לבחור בשביל סיווג כשיש כמה פונקציות עקביות עם סט אימון? איך לתייג סטים בתמונה למטה? Support Vector Machines


Download ppt "למידת מכונה Machine Learning."

Similar presentations


Ads by Google