למידת מכונה היא אחת הטכנולוגיות הפופולריות ביותר לבניית מודלים חזויים עבור משימות רגרסיה וסיווג מורכבות שונות. מכונת הגברת שיפוע (GBM) נחשב לאחד מאלגוריתמי החיזוק החזקים ביותר.
שועל נגד זאב
למרות שיש כל כך הרבה אלגוריתמים המשמשים למידת מכונה, האלגוריתמים לשיפור הפכו למיינסטרים בקהילת למידת המכונה ברחבי העולם. טכניקת החיזוק עוקבת אחר הרעיון של למידת אנסמבל, ומכאן שהיא משלבת מספר מודלים פשוטים (לומדים חלשים או מעריכים בסיסיים) כדי ליצור את התפוקה הסופית. GBM משמשת גם כשיטת אנסמבל בלמידת מכונה אשר הופכת את הלומדים החלשים ללומדים חזקים. בנושא זה, 'GBM בלמידת מכונה' נדון באלגוריתמים של למידת מכונה מדורגת, אלגוריתמי חיזוק שונים בלמידת מכונה, ההיסטוריה של GBM, איך זה עובד, טרמינולוגיות שונות המשמשות ב- GBM וכו'. אבל לפני שמתחילים, ראשית, הבן את מושג החיזוק ואלגוריתמי חיזוק שונים בלמידת מכונה.
מה זה חיזוק בלימוד מכונה?
Boosting היא אחת מטכניקות המודל הפופולריות של אנסמבל הלמידה המשמשות לבניית מסווגים חזקים ממסווגים חלשים שונים. זה מתחיל בבניית מודל ראשי מתוך מערכי נתוני אימון זמינים ואז הוא מזהה את השגיאות הקיימות במודל הבסיס. לאחר זיהוי השגיאה, נבנה מודל משני, ובהמשך, מוצג מודל שלישי בתהליך זה. בדרך זו, התהליך הזה של הצגת מודלים נוספים נמשך עד שנקבל סט נתוני אימון מלא לפיו המודל מנבא נכון.
AdaBoost (Adaptive boosting) היה אלגוריתם החיזוק הראשון ששילב מסווגים חלשים שונים למסווג חזק אחד בהיסטוריה של למידת מכונה. הוא מתמקד בעיקר בפתרון משימות סיווג כגון סיווג בינארי.
שלבים בשיפור האלגוריתמים:
ישנם כמה שלבים חשובים להגברת האלגוריתם כדלקמן:
- שקול מערך נתונים בעל נקודות נתונים שונות ואתחל אותו.
- כעת, תנו משקל שווה לכל אחת מנקודות הנתונים.
- נניח משקל זה כקלט עבור הדגם.
- זהה את נקודות הנתונים המסווגות בצורה שגויה.
- הגדל את המשקל עבור נקודות הנתונים בשלב 4.
- אם אתה מקבל פלט מתאים, סיים את התהליך, אחרת בצע שוב את שלבים 2 ו-3.
דוגמא:
נניח, יש לנו שלושה מודלים שונים עם התחזיות שלהם והם פועלים בדרכים שונות לחלוטין. לדוגמה, מודל הרגרסיה הליניארית מציג קשר ליניארי בנתונים בעוד שמודל עץ ההחלטות מנסה ללכוד את האי-לינאריות בנתונים כפי שמוצג בתמונה למטה.
יתרה מכך, במקום להשתמש במודלים אלה בנפרד כדי לחזות את התוצאה אם נשתמש בהם בצורה של סדרה או שילוב, אז נקבל מודל המתקבל עם מידע נכון מכל המודלים הבסיסיים. במילים אחרות, במקום להשתמש בתחזית אינדיבידואלית של כל מודל, אם נשתמש בחיזוי ממוצע ממודלים אלו, נוכל ללכוד מידע נוסף מהנתונים. זה מכונה למידת אנסמבל והגברה מבוססת גם על שיטות אנסמבל בלמידת מכונה.
שיפור האלגוריתמים בלמידה חישובית
ישנם בעיקר 4 אלגוריתמים מגבירים בלמידת מכונה. אלה הם כדלקמן:
מה זה GBM בלמידת מכונה?
Machine Boosting Gradient (GBM) היא אחת השיטות הפופולריות ביותר של אנסמבל למידה קדימה בלמידת מכונה. זוהי טכניקה רבת עוצמה לבניית מודלים חזויים למשימות רגרסיה וסיווג.
GBM עוזרת לנו לקבל מודל חיזוי בצורה של אנסמבל של מודלים חיזויים חלשים כמו עצי החלטה. בכל פעם שעץ החלטות מתפקד כלומד חלש אז האלגוריתם המתקבל נקרא עצים בעלי שיפוע.
זה מאפשר לנו לשלב את התחזיות ממודלים שונים של לומד ולבנות מודל חיזוי סופי בעל חיזוי נכון.
אבל כאן עלולה להתעורר שאלה אחת אם אנחנו מיישמים את אותו אלגוריתם אז איך עצי החלטה מרובים יכולים לתת תחזיות טובות יותר מאשר עץ החלטה בודד? יתרה מכך, כיצד כל עץ החלטות לוכד מידע שונה מאותם נתונים?
לכן, התשובה לשאלות אלו היא שתת-קבוצה שונה של תכונות נלקחת על ידי הצמתים של כל עץ החלטות כדי לבחור את הפיצול הטוב ביותר. זה אומר שכל עץ מתנהג אחרת, ומכאן לוכד אותות שונים מאותם נתונים.
כיצד פועלת GBM?
בדרך כלל, רוב אלגוריתמי הלמידה המבוקרים מבוססים על מודל חיזוי יחיד כמו רגרסיה ליניארית, מודל רגרסיה עונשין, עצי החלטה וכו'. אבל ישנם כמה אלגוריתמים מפוקחים ב-ML התלויים בשילוב של מודלים שונים יחד דרך האנסמבל. במילים אחרות, כאשר דגמי בסיס מרובים תורמים את התחזיות שלהם, ממוצע של כל התחזיות מותאם על ידי אלגוריתמים מחזקים.
מכונות להגברת שיפוע מורכבות מ-3 אלמנטים כדלקמן:
- פונקציית הפסד
- לומדים חלשים
- דגם תוסף
בואו נבין את שלושת האלמנטים הללו בפירוט.
מחרוזת ל-Java בוליאני
1. פונקציית הפסד:
אמנם, ישנה משפחה גדולה של פונקציות אובדן בלמידת מכונה שבהן ניתן להשתמש בהתאם לסוג המשימות הנפתרות. השימוש בפונקציית ההפסד נאמד על ידי הדרישה של מאפיינים ספציפיים של ההתפלגות המותנית, כגון חוסן. בעת שימוש בפונקציית הפסד במשימה שלנו, עלינו לציין את פונקציית ההפסד ואת הפונקציה לחישוב השיפוע השלילי המתאים. ברגע שנקבל את שתי הפונקציות הללו, ניתן ליישם אותן במכונות להגברת שיפוע בקלות. עם זאת, ישנן מספר פונקציות אובדן שכבר הוצעו עבור אלגוריתמי GBM.
סיווג פונקציית ההפסד:
בהתבסס על סוג משתנה התגובה y, ניתן לסווג את פונקציית ההפסד לסוגים שונים באופן הבא:
- פונקציית אובדן גאוס L2
- פונקציית אובדן של Laplace L1
- פונקציית אובדן הובר, δ צוין
- פונקציית אובדן כמות, α צוין
- פונקציית אובדן בינומי
- פונקציית אובדן Adaboost
- פונקציות אובדן עבור מודלים הישרדות
- פונקציות הפסד סופרות נתונים
- פונקציות אובדן מותאמות אישית
2. לומד חלש:
לומדים חלשים הם המודלים הבסיסיים של הלומדים הלומדים משגיאות העבר ומסייעים בבניית עיצוב מודל חזוי חזק להגברת האלגוריתמים בלמידת מכונה. בדרך כלל, עצי החלטה עובדים כלומדים חלשים בחיזוק האלגוריתמים.
גראנדרה
Boosting מוגדר כמסגרת הפועלת ללא הרף לשיפור התפוקה ממודלים בסיסיים. יישומים רבים להגברת השיפוע מאפשרים לך 'לתחבר' כיתות שונות של לומדים חלשים העומדים לרשותך. לפיכך, עצי החלטה משמשים לרוב עבור לומדים חלשים (בסיס).
כיצד להכשיר לומדים חלשים:
למידת מכונה משתמשת במערכי נתונים של אימון כדי להכשיר את הלומדים הבסיסיים, ובהתבסס על החיזוי מהלומד הקודם, היא משפרת את הביצועים על ידי התמקדות בשורות של נתוני האימון שבהם בעץ הקודם היו השגיאות או השאריות הגדולות ביותר. לְמָשָׁל. עצים רדודים נחשבים לעצי החלטה חלשים מכיוון שהם מכילים כמה פיצולים. בדרך כלל, באלגוריתמים לחיזוק, עצים בעלי עד 6 פיצולים הם הנפוצים ביותר.
להלן רצף של אימון לומד החלש לשפר את ביצועיו כאשר כל עץ נמצא ברצף עם שאריות העץ הקודם. בנוסף, אנו מציגים כל עץ חדש כדי שיוכל ללמוד מהשגיאות של העץ הקודם. אלה הם כדלקמן:
- שקול מערך נתונים והתאים בו עץ החלטות.
F1(x)=y - התאימו לעץ ההחלטות הבא את השגיאות הגדולות ביותר של העץ הקודם.
h1(x)=y?F1(x) - הוסף את העץ החדש הזה לאלגוריתם על ידי הוספת שניהם בשלבים 1 ו-2.
F2(x)=F1(x)+h1(x) - שוב התאימו את עץ ההחלטות הבא עם השאריות של העץ הקודם.
h2(x)=y?F2(x) - חזור על אותו הדבר שעשינו בשלב 3.
F3(x)=F2(x)+h2(x)
המשך בתהליך זה עד שמנגנון כלשהו (כלומר אימות צולב) אומר לנו להפסיק. המודל הסופי כאן הוא מודל תוסף שלבי של עצים בודדים:
f(x)=B∑b=1fb(x)לפיכך, עצים נבנים בתאווה, תוך בחירת נקודות הפיצול הטובות ביותר על סמך ציוני טוהר כמו ג'יני או מזעור ההפסד.
3. דגם תוסף:
המודל האדיטיבי מוגדר כהוספת עצים למודל. למרות שלא כדאי להוסיף מספר עצים בו זמנית, יש להוסיף רק עץ בודד כדי שלא ישתנו עצים קיימים במודל. יתר על כן, אנו יכולים גם להעדיף את שיטת הירידה בשיפוע על ידי הוספת עצים כדי להפחית את האובדן.
בשנים האחרונות, נעשה שימוש בשיטת הירידה בשיפוע כדי למזער את מערך הפרמטרים כגון מקדם משוואת הרגרסיה והמשקל ברשת עצבית. לאחר חישוב שגיאה או הפסד, נעשה שימוש בפרמטר המשקל כדי למזער את השגיאה. אך לאחרונה, רוב מומחי ה-ML מעדיפים תת-מודלים חלשים של לומד או עצי החלטה כתחליף לפרמטרים אלו. שבו, עלינו להוסיף עץ במודל כדי להפחית את השגיאה ולשפר את הביצועים של המודל הזה. באופן זה, החיזוי מהעץ החדש שנוסף משולבת עם החיזוי מסדרת העצים הקיימת כדי לקבל חיזוי סופי. תהליך זה נמשך עד שההפסד מגיע לרמה מקובלת או שלא נדרש עוד שיפור.
קצב הביאוד ב-arduino
שיטה זו ידועה גם בשם ירידה בשיפוע פונקציונלי או ירידה בשיפוע עם פונקציות.
מכונה להגברת שיפוע קיצוני (XGBM)
XGBM היא הגרסה העדכנית ביותר של מכונות הגברת שיפוע שפועלת גם היא מאוד דומה ל-GBM. ב-XGBM, עצים מתווספים ברצף (אחד בכל פעם) הלומדים מהשגיאות של עצים קודמים ומשפרים אותם. אמנם, אלגוריתמי XGBM ו-GBM דומים במראה ובתחושה, אך עדיין יש כמה הבדלים ביניהם כדלקמן:
- XGBM משתמש בטכניקות רגוליזציה שונות כדי להפחית תת-התאמה או התאמה יתר של הדגם, מה שגם מגדיל את ביצועי הדגם יותר מאשר מכונות להגברת שיפוע.
- XGBM עוקב אחר עיבוד מקביל של כל צומת, בעוד ש-GBM לא, מה שהופך אותו למהיר יותר ממכונות להגברת שיפוע.
- XGBM עוזר לנו להיפטר מהזקיפה של ערכים חסרים מכיוון שכברירת מחדל המודל מטפל בזה. הוא לומד בעצמו אם הערכים הללו צריכים להיות בצומת הימני או השמאלי.
מכונות להגברת שיפוע אור (Light GBM)
Light GBM היא גרסה משודרגת יותר של מכונת הגברת Gradient בשל היעילות והמהירות המהירה שלה. שלא כמו GBM ו-XGBM, הוא יכול להתמודד עם כמות עצומה של נתונים ללא כל מורכבות. מצד שני, זה לא מתאים לאותן נקודות נתונים שמספרן קטן יותר.
במקום צמיחה ברמה, Light GBM מעדיף צמיחה של צמתים של העץ. יתרה מכך, ב-GBM קל, הצומת הראשוני מפוצל לשני צמתים משניים ובהמשך הוא בוחר צומת משני אחד לפיצול. פיצול זה של צומת משני תלוי באיזה בין שני צמתים יש הפסד גבוה יותר.
לפיכך, עקב פיצול עלים, אלגוריתם Light Gradient Boosting Machine (LGBM) מועדף תמיד על פני אחרים שבהם ניתנת כמות גדולה של נתונים.
CATBOOST
אלגוריתם ה-catboost משמש בעיקר לטיפול בתכונות הקטגוריות במערך נתונים. למרות שהאלגוריתמים GBM, XGBM ו-Light GBM מתאימים למערכות נתונים מספריים, Catboost נועד לטפל במשתנים קטגוריים לנתונים מספריים. לפיכך, אלגוריתם catboost מורכב משלב חיוני של עיבוד מוקדם להמרת תכונות קטגוריות למשתנים מספריים שאינם קיימים באף אלגוריתם אחר.
יתרונות האלגוריתמים לשיפור:
- אלגוריתמי חיזוק עוקבים אחר למידת אנסמבל המאפשרת למודל לתת תחזית מדויקת יותר שאי אפשר לנצח אותה.
- אלגוריתמי חיזוק הם הרבה יותר גמישים מאלגוריתמים אחרים שכן יכולים לייעל פונקציות אובדן שונות ומספקים מספר אפשרויות כוונון היפרפרמטר.
- זה לא דורש עיבוד מוקדם של נתונים מכיוון שהוא מתאים למשתנים מספריים וגם קטגוריים.
- זה לא דורש זקיפה של ערכים חסרים במערך הנתונים, הוא מטפל בנתונים חסרים באופן אוטומטי.
החסרונות של אלגוריתמי חיזוק:
להלן מספר חסרונות של אלגוריתמים לחיזוק:
- הגברת אלגוריתמים עלולה לגרום להתאמת יתר וכן להדגשת יתר של החריגים.
- אלגוריתם הגברת שיפוע מתמקד ללא הרף כדי למזער את השגיאות ודורש מספר עצים ולכן הוא יקר מבחינה חישובית.
- זהו אלגוריתם שגוזל זמן וממצה את הזיכרון.
- פחות פרשני באופיו, אם כי ניתן לטפל בזה בקלות בכלים שונים.
סיכום:
בדרך זו, למדנו אלגוריתמים מגבירים למידול חזוי בלמידת מכונה. כמו כן, דנו באלגוריתמים חשובים לחיזוק המשמשים ב-ML כגון GBM, XGBM, Light GBM ו-Catboost. בנוסף, ראינו מרכיבים שונים (פונקציית הפסד, לומד חלש ומודל תוסף) וכיצד GBM עובד איתם. כיצד אלגוריתמי חיזוק הם יתרון לפריסה בתרחישים בעולם האמיתי וכו'.