Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

A Short Introduction To Boosting.Final V3.Ppt

1,142 views

Published on

Adaboost בעברית

Published in: Technology, Education
  • Be the first to comment

A Short Introduction To Boosting.Final V3.Ppt

  1. 1. גלעד דניאל 31/12/09 22:02
  2. 2. <ul><li>המטרה : להמר על הסוס המנצח . </li></ul><ul><li>למצוא מודל שבעזרתו נמצא את הסוס המנצח בכל מירוץ בעזרתו של מהמר מקצועי . </li></ul>31/12/09 22:02
  3. 3. <ul><li>ניתן לראות </li></ul><ul><ul><li>קשה למצוא מודל יחיד שינבא לנו את הסוס המנצח </li></ul></ul><ul><ul><li>קל לראות שאם נקבל מספר &quot; כללי אצבע &quot; ניתן לקבל מודל יותר טוב ממודל רנדולמלי </li></ul></ul><ul><ul><li>דוגמא לחוק : אם הסוס זכה יותר במירוצים משאר הסוסים . בחר בו . </li></ul></ul>31/12/09 22:02
  4. 4. <ul><li>שני בעיות לפני המהמר </li></ul><ul><ul><li>איך נבחר את אוסף המירוצים ונציג אותו למהמר כך שהוא יוכל לשלוף את &quot; כללי אצבע &quot; </li></ul></ul><ul><ul><li>איך ניתן ליצור מתוך אותם כללי אצבע מודל אחד שיהיה מדויק ובעל אחוז הצלחה גדול ( מהמודל הרנדומלי ) </li></ul></ul>31/12/09 22:02
  5. 5. <ul><li>כתיבת תוכנית מחשב שתיצור כללי אצבע גולמיים ( הכוונה היא מספיק חזקים מהרנדומלי ) </li></ul><ul><li>כתיבת פרצודורה על חלק מן דוגמאות </li></ul><ul><li>שליפת כללי אצבע (1) </li></ul><ul><li>אותם כללי אצבע נריץ על חלק נוסף מן הדוגמאות </li></ul><ul><li>שליפת כללי אצבע (2) </li></ul><ul><li>נחזור מספר T של פעמים . </li></ul>31/12/09 22:02
  6. 6. <ul><li>איך ניתן לבחור את הדוגמאות בכל סיבוב ? </li></ul><ul><ul><li>נתמקד בדוגמאות &quot; הקשות &quot; אותן דוגמאות שלא סווגו בסיבוב הקודם . </li></ul></ul><ul><li>איך ניתן לאחד את כל כללי האצבע למודל חיזוי אחד . </li></ul><ul><ul><li>ניקח את רוב ( משקל ) על כללי האצבע </li></ul></ul>31/12/09 22:02
  7. 7. <ul><li>Boosting – דרך כללית לקבל כללי אצבע ולהעביר אותם לחוק אחד &quot; חזק &quot; ומדויק . </li></ul><ul><li>מבחינה טכנית </li></ul><ul><ul><li>נניח שנקבל אלגוריתם למידה חלש שיכול למצוא מסווג ( כללי אצבע ) בצורה טובה יותר מאשר המודל הרנדומלי , דיוק של לפחות > 55% ( במקרה של שני סיווגים ) </li></ul></ul><ul><ul><li>אם נקבל מספיק מידע ( דוגמאות ) אלגוריתם boosting נטען כי יכול לייצר מסווג בודד עם אחוז דיוק גבוה מאד , נטען 99% </li></ul></ul>31/12/09 22:02
  8. 8. <ul><li>מבוסס על מחקרים על אלגוריתם PAC </li></ul><ul><ul><li>נשאלה שאלה האם אלגוריתם למידה &quot; חלש &quot; יותר יכול לעבור דחיפה ( boost ) כך שיעבוד קצת יותר טוב מהמודל הרנדומלי . האם גם ניתן לדחוף אותו למודל מוצלח מאד ומדויק מאד . </li></ul></ul><ul><ul><li>Schapire היה הראשון שכתב שאפשר להוכח שקיים אלגוריתם כזה בזמן פולינונאלי ( קריאה שלוש פעמים לאלגוריתם למידה ) </li></ul></ul><ul><ul><li>שנה לאחר מכן Freund – כתב גם אלגוריתם יותר יעיל אבל קשה למימוש ( boost by majority ) </li></ul></ul><ul><ul><li>המאמר שלנו משנת 1999 והמשך במאמר משנת 2001 </li></ul></ul>31/12/09 22:02
  9. 9. <ul><li>הסבר על BOOSTING </li></ul><ul><li>לתת פה גם BACKGORUND </li></ul><ul><li>Boosting is a machine learning meta-algorithm for performing supervised learning . Boosting is based on the question posed by Kearns [1] : can a set of weak learners create a single strong learner ? A weak learner is defined to be a classifier which is only slightly correlated with the true classification (it can label examples better than random guessing). In contrast, a strong learner is a classifier that is arbitrarily well correlated with the true classification. </li></ul>31/12/09 22:02
  10. 10. <ul><li>האלגוריתם adaboost </li></ul><ul><ul><li>דרכי מימוש </li></ul></ul><ul><ul><li>דרכים אחרות להבין מהו boosting </li></ul></ul><ul><ul><li>ניסויים ואפליקציות </li></ul></ul>31/12/09 22:02
  11. 11. <ul><li>Instead of sampling, re-weight </li></ul><ul><ul><li>Previous weak learner has only 50% accuracy over new distribution </li></ul></ul><ul><li>Can be used to learn weak classifiers </li></ul><ul><li>Final classification based on weighted vote of weak classifiers </li></ul>
  12. 12. <ul><li>הוצג בשנת 1995 </li></ul><ul><li>בעל התקדמות מול שיטות ה boost הישנות </li></ul><ul><li>כמה מושגי יסוד </li></ul><ul><ul><li>אלגוריתים למידה חלש < 50% שגיאה על כל סוג של התפלגות </li></ul></ul><ul><ul><li>מסווג חזק – בעל סף לינארי קומבינציה של אלגוריתי למידה חלשים </li></ul></ul><ul><ul><li>היפותזה חלשה . </li></ul></ul>31/12/09 22:02
  13. 13. <ul><li>Learner = Hypothesis = Classifier </li></ul><ul><li>Weak Learner: < 50% error over any distribution </li></ul><ul><li>Strong Classifier: thresholded linear combination of weak learner outputs </li></ul>
  14. 14. <ul><li>נקבל training set </li></ul><ul><li>תווית עבור כל </li></ul><ul><li>עבור t= 1,….,T </li></ul><ul><ul><li>נבנה את התפלגות על מרחב הדגימות ( 1,..,m ) </li></ul></ul><ul><ul><li>נמצא מסווג חלש ( כלל אצבע ) כך ש </li></ul></ul><ul><ul><ul><li>עם שגיאה קטנה על </li></ul></ul></ul><ul><li>נחזיר מסווג אחד Hfinal </li></ul>
  15. 16. <ul><li>בניה של Dt : </li></ul><ul><ul><li>D1(i) = 1 /m </li></ul></ul><ul><ul><li>עבור Dt ו Ht </li></ul></ul>31/12/09 22:02 > 0
  16. 17. <ul><li>Hfinal(x) </li></ul>31/12/09 22:02
  17. 18. 31/12/09 22:02
  18. 19. 31/12/09 22:02 <ul><li>Base Learner Job: </li></ul><ul><ul><li>Find a base Hypothesis: </li></ul></ul><ul><ul><li>Minimize the error: </li></ul></ul><ul><li>Choose  t </li></ul>
  19. 20. 31/12/09 22:02
  20. 21. 31/12/09 22:02
  21. 22. 31/12/09 22:02
  22. 23. 31/12/09 22:02
  23. 24. 31/12/09 22:02
  24. 25. 31/12/09 22:02 משפט אם אז H final ≤ לכל t : השגיאה של Hfinal Adaboost הוא אלגרויתם אדפטיבי , לא חייב לדעת מראה על γ או על T יכול להשתמש בעובדה ש
  25. 26. <ul><li>האם באמת מוריד את השגיאה בזמן הלמידה </li></ul><ul><li>השגיאה – </li></ul><ul><ul><li>כל ריצה של האלגוריתם בלולאה יתן שגיאה של </li></ul></ul><ul><ul><li>כלומר הוא המדד כמה שמצאנו טוב מאקראי </li></ul></ul><ul><ul><li>אם כל היפותיזה שלנו טובה מהרנדומלי כך ש </li></ul></ul><ul><ul><li>עבור השגיאה יורדת אקספנצאלית מהר יותר </li></ul></ul>31/12/09 22:02
  26. 27. <ul><li>Adaboost לעומת אלגוריתםמים אחרים לא מחייב ידיעה מראש של שהיא קשה להשגה . </li></ul><ul><li>Adaboost = Adaptive boosting </li></ul><ul><li>הערך של משוואת השגיאה והטעות הכללית ( שנציג בהמשך ) מוביל אותנו למסקנה ש adaboost הוא אכן אלגוריתם boosting , לוקח אלגוריתם למידה חלש והופך אותו לאגוריתם חזק עם שגיאה נמוכה כאשר מקבל מספיק מידע . </li></ul>31/12/09 22:02
  27. 28. 31/12/09 22:02
  28. 29. 31/12/09 22:02
  29. 30. 31/12/09 22:02
  30. 31. 31/12/09 22:02 <ul><li>bounded by: </li></ul><ul><ul><li>T= number of iterations </li></ul></ul><ul><ul><li>m=sample size </li></ul></ul><ul><ul><li>d= Vapnik-Chervonenkis dimension 2 </li></ul></ul><ul><ul><li>Pr [.]= empirical probability </li></ul></ul><ul><ul><li>Õ = Logarithmic and constant factors </li></ul></ul><ul><li>Overfitting in T! </li></ul>
  31. 32. 31/12/09 22:02 מספר הריצות של האלגוריתם השגיאה <ul><li>לפי תצפיות : </li></ul><ul><li>שגיאה על ה training error ימשיך לרדת עד 0 </li></ul><ul><li>השגיאה על ה TEST יעלה אם וכאשר Hfinal יהיה &quot; מורכב מדי &quot; </li></ul><ul><li>Occam’s razor </li></ul><ul><ul><ul><li>Overfitting – קשה לדעת מתי להפסיק לאמן </li></ul></ul></ul>
  32. 33. 31/12/09 22:02 השגיאה על ה TEST לא עלתה גם אחרי 1000 סיבובים ( C4.5 יוצר עץ החלטה – ב 1000 סיבובים יש בערך 2 מליון עלים ) השגיאה על ה TEST ממשיכה לרדת גם אחרי שהשגיאה של ה training הגיעה ל 0. Occam’s razor – טועה בכך שהמסווג הפשוט הוא טוב יותר
  33. 34. <ul><li>הרעיון : </li></ul><ul><ul><li>Training error קובע רק אם המסווגים טועים או צודקים </li></ul></ul><ul><ul><li>צריך גם להתייחס ל &quot; אמון &quot; של המסווג </li></ul></ul><ul><ul><li>Hfinal שלנו היה מנגנון הצבעה עם משקלים </li></ul></ul><ul><ul><li>נמדוד את האמון בעזרת margins </li></ul></ul><ul><ul><li>חוזק ההצבעה = חלק הצבעה טוב – חלק הצבעה טעות </li></ul></ul>31/12/09 22:02
  34. 35. 31/12/09 22:02 5 איטרציות עקומה מקווקות קטנה 100 איטרציות עקומה מקווקות 1000 איטרציות עקומה
  35. 36. <ul><li>משפט : margin גדול => תחום טוב יותר על השגיאה הכללית ( ללא תלות במספר הסיבובים ) </li></ul><ul><ul><li>רעיון : אם כל ה margin גדולים המסווג הסופי יכול להשתמש במספר קטן יותר של מסווגים חלשים ( דוגמא לבחירות האחרונות בארה &quot; ב ) </li></ul></ul><ul><li>Boosting נוטה להגדיל את ה margins של ה training examples ( כאשר עובד עם אלגוריתם למידה חלש ) </li></ul><ul><ul><li>הוכחה דומה להוכחת השגיאה </li></ul></ul><ul><li>לסיכום : מסווג Hfinal ממשיק להוסיף לעצמו כללי אצבע ה margins ברוב המקרים יגדלו . </li></ul><ul><ul><li>Hfinal שלנו מתקרב למסווג פשוט ומוריד את השגיאה על test error </li></ul></ul>31/12/09 22:02
  36. 37. 31/12/09 22:02 <ul><li>בהסתברות גבוהה </li></ul><ul><ul><li>m מספר הדוגמאות </li></ul></ul><ul><ul><li>d ה &quot; מורכבות &quot; של המסווגים החלשים </li></ul></ul><ul><ul><li>ההסברות ש margin קטן מאפס -> 0 אם </li></ul></ul><ul><ul><li>הוא יורד אקספוננצאלית מהר </li></ul></ul>Generalization error ≤
  37. 38. <ul><li>המרווח שקיבלנו לא תלוי ב T כלומר מספר ההרצות . </li></ul><ul><li>גם אחרי שהשגיאה הגיעה לאפס ה boosting ממשיך להגדיל את ה מרווחים מה שגורר ירידה בשגיאה הכללית </li></ul><ul><li>5 איטרציות עקומה מקווקות קטנה </li></ul><ul><li>100 איטרציות עקומה מקווקות </li></ul><ul><li>1000 איטרציות עקומה </li></ul>31/12/09 22:02
  38. 39. <ul><li>הרווחים ( margin ) ממראה על קשר בין boosting לבין Support-vector machine </li></ul><ul><li>הבדלים : </li></ul><ul><ul><li>המודל החישובי שונה – משוואה ריבועית ב SVM מול לינארי ב adaboost </li></ul></ul><ul><ul><li>SVM ו adaboost שניהם מוצאים מסווגים לינארים , הבעיה של overfitting נמנעת אם מגדילים את ה &quot; מרווח &quot; אבל נשארים עם הבעיה של מימדים רבים . </li></ul></ul><ul><ul><li>SVM משתמש ב KERENELS </li></ul></ul><ul><ul><li>Adaboost משתמש בחיפוש חמדני </li></ul></ul>31/12/09 22:02
  39. 40. <ul><li>נורמות שונות נותנות &quot; מרווחים &quot; שונים . </li></ul><ul><ul><li>ההבדל בין הנורמות במימדים גבוהים גורם להבדלים גדולים ב &quot; רווחים &quot;. </li></ul></ul><ul><ul><ul><li>ניתן להראות שאם לתוית Y מחושב לפי מרבית ההחלטות של האלגוריתם ???? </li></ul></ul></ul><ul><ul><li>המודל החישובי שונה – משוואה ריבועית ב SVM מול לינארי ב adaboost </li></ul></ul><ul><ul><li>SVM ו adaboost שניהם מוצאים מסווגים לינארים , הבעיה של overfitting נמנעת אם מגדילים את ה &quot; מרווח &quot; אבל נשארים עם הבעיה של מימדים רבים . </li></ul></ul><ul><ul><li>SVM משתמש ב KERENELS </li></ul></ul><ul><ul><li>Adaboost משתמש בחיפוש חמדני </li></ul></ul>31/12/09 22:02
  40. 41. <ul><li>ו adaboost שניהם מוצאים מסווגים לינארים , הבעיה של overfitting נמנעת אם מגדילים את ה &quot; מרווח &quot; אבל נשארים עם הבעיה של מימדים רבים . </li></ul><ul><li>SVM משתמש ב KERENELS </li></ul><ul><li>Adaboost משתמש בחיפוש חמדני </li></ul>31/12/09 22:02
  41. 42. <ul><li>מה קורה אם נרצה לעבוד עם y לא בינארי ? </li></ul><ul><ul><li>Adaboost.M1 – פתרון כללי כאשר האלגוריתם הלומד הוא מספיק מדוייק לתת תשובות נכונות , אבל נכשל כאשר הדיוק יורד מ 50% . </li></ul></ul><ul><ul><li>Adaboost.MH - יצירה של מספר בעיות בינאריות עבור כל דוגמא x וכל תווית y אפשרית </li></ul></ul><ul><ul><ul><li>נשאל &quot; האם עבור דוגמא x התווית היא y או אחת מהאחרות &quot; </li></ul></ul></ul>31/12/09 22:02
  42. 43. <ul><li>Adaboost.M2 Adaboost.MR – נבנה בעיה בינארית כל דוגמא x עם התווית הנכונה y ואם תווית y` בכל מקרה אחר . </li></ul><ul><ul><li>נשאל &quot; עבור דוגמא x האם התווית היא y או y’ </li></ul></ul><ul><ul><li>Error correcting – תיקון שגיאות יתאים לכל אלגורתמי הלמידה שנבחר בבסיס השערה החלשה שלנו . </li></ul></ul>31/12/09 22:02
  43. 44. <ul><li>היתרונות של adaboost </li></ul><ul><ul><li>קל , פשוט ומהיר לתכנות </li></ul></ul><ul><ul><li>אין פרמטרים רבים בכניסה ( חוץ ממספר T ) </li></ul></ul><ul><ul><li>אין צורך לדעת מראש על האלוגריתם הלומד החלש וניתן לשלב כל אלוגריתם למציאת ההשערה . </li></ul></ul><ul><ul><li>אין צורך ללמוד יותר את כל עולם הדוגמאות אלא למצוא אלגוריתם למידה חלש שרק צריך להיות טוב יותר מאלוגריתם רנדומלי . </li></ul></ul>31/12/09 22:02
  44. 45. <ul><li>חסרונות </li></ul><ul><ul><li>תלוי במידע ובאלוגריתם למידה החלש . </li></ul></ul><ul><ul><ul><li>מידע חלקי </li></ul></ul></ul><ul><ul><ul><li>מידע מרוכב </li></ul></ul></ul><ul><ul><ul><li>השערות חלשות </li></ul></ul></ul><ul><ul><li>פגיע לרעש </li></ul></ul>31/12/09 22:02
  45. 46. 31/12/09 22:02 השוואה בין ריצה של אלוגריתם C4.5 ( אלגוריתם ליצירת decision tree ) לעומת ריצה של שני אלגוריתמים עם boosting ציר y זה השגיאה של C4.5 ציר x בכל תרשים , השגיאה של אלגוריתם עם boosting
  46. 47. 31/12/09 22:02 Reuters newswire articles AP newswire headlines קטלוג טקסט - בדיקה האם אות משפט קיים או לא קיים
  47. 48. <ul><li>אחד מן היתרונות של adaboost היא הדרך לזהות outliers , אותן דוגמאות שסווגו עם תווית שונה ב training set או כאלה שהן לא חד משמעי או קשות לסיווג . </li></ul><ul><li>מכיוון שהאלגוריתם ב &quot; כח &quot; גורם לאלגוריתם הלמידה החלש לעבוד על אותן דוגמאות והן בעלות המשקל הגבוה ביותר . אותן דוגמאות בעלות &quot; רעש &quot; גבוה . </li></ul><ul><li>נוכל לזהות אותם ונוריד מהן את החשיבות אם הן באמת קשות לזיהוי ולהריץ אלוריתמים שמטפלים במקרים כאלה . </li></ul>31/12/09 22:02
  48. 49. 31/12/09 22:02 class, label1/weight1,label2/weight2 OCR: Outliers Rounds: 12 25 4
  49. 50. <ul><li>Boosting לוקח אלגוריתם למידה חלש והופך אותו לחזק </li></ul><ul><li>מוריד את השגיאה אסימפטוטית ( מתקרב לגבול 0) </li></ul><ul><li>מעלה את ה Margin של כל ההשערות </li></ul><ul><li>ב Adaboost אין צורך לדעת מראש מידע על האלגוריתם למידה החלש </li></ul><ul><li>הביצועים תלויים באלגוריתם למידה על ה training data </li></ul><ul><li>פגיע לרעש או דוגמאות אם הרבה outliers </li></ul>31/12/09 22:02
  50. 51. <ul><li>http://videolectures.net/mlss05us_schapire_b/ </li></ul><ul><li>videolectures.net </li></ul>31/12/09 22:02

×