A Short Introduction To Boosting.Final V3.Ppt

  • 877 views
Uploaded on

Adaboost בעברית

Adaboost בעברית

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
877
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
16
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Rough – קשה מחוספס גולמי

Transcript

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