במאמר זה נסביר מהי למידת מכונה, נסקור את סוגי המודלים של למידת מכונה, נדון באימות ובדיקה, ניקוי נתונים, בהסתברויות לא מותנות והסתברויות מותנות ונחתום את המאמר עם משפט בייס המפורסם
פורסם: 10.10.19 צילום: shutterstock
סדרת מאמרים זו מבוססת על נסיוני כמדען נתונים (Data Scientist) המתמחה בתחום למידת המכונה (ML- Machine Learning) בעולמות המימון הכמותי, ניהול הסיכונים הפיננסיים והאקטואריה.
חלק מהאלגוריתמים של ML למדתי בתואר הראשון שלי בכלכלה (כגון: הטיה מול שונות, בעיות רגרסיה מול בעיות סיווג, חלוקת נתונים ל- Training set ו- Testing set, נרמול נתונים, רגרסיה לינארית, Ridge, Lasso ו- Elastic Net, יישומי אלגברה לינארית בתוכנת Excel וכו'), חלק בקורסים לתואר שני בכלכלה (כגון: Dimensionality Reduction, Principle Components Analysis, K-Mean Cluster Analysis, Hierarchical Cluster Analysis ו- Time Series וכו'), חלק בתואר השני שלי במימון (כגון: Decision Trees, Random Forest, Monte Carlo Simulation, Bootstrapping, Cubic-Spline, Nelson-Siegel-Svensson וכו'), חלק למדתי בלימודי התעודה באקטואריה (המסווג הנאיבי של בייס, Overfitting, ,Underfitting Convolution and Pooling, תכנות מדעי וסטטיסטי בשפת R וכו'), חלק למדתי בלימודי התעודה בניהול סיכונים פיננסיים ועל חלק אף נבחנתי במבחנים הבינלאומיים להסמכה בתחום ניהול הסיכונים הפיננסיים FRM (כגון: רגרסיה לוגיסטית, Logit, Probit,Linear Discriminant Analysis , K-Nearest Neighbor ו- Support Vector Machines וכו') ואת היתר למדתי עצמאית באינטרנט (כגון: Neural Networks, Ensemble, Bagging, Boosting, תכנות בשפת VBA וכו').
כמובן שההבנה העמוקה שלי באלגוריתמים של ML נשענת הן על הידע שלי בסטטיסטיקה (הכולל בין היתר: סוגי נתונים והצגתם באופן טבלאי וגרפי, מדדי מרכוז ומדדי פיזור, אחוזונים, מדדי קשר, התפלגות הנתונים, הסתברות פשוטה במרחב הסתברותי אחיד ובמרחב הסתברותי לא אחיד, הסתברות מותנית, נוסחת בייס, משתנים מקריים בדידים: ניסויי ברנולי, התפלגות בינומית, התפלגות פואסונית, התפלגות גיאומטרית, התפלגות היפרגיאומטרית, משתנים מקריים רציפים: התפלגות נורמלית, הסקה סטטיסטית, אמידה נקודתית, רווחי סמך, מבחני השערות וסטטיסטיקה א-פרמטרית) והן על הידע שלי בתורת הקבוצות (הכולל בין היתר: מערכות משוואות לינאריות, וקטורים, מטריצות ריבועיות, מטריצות אלמנטריות, מרחבים וקטורים, מרחבי מכפלה פנימית, אורתוגנליות, דטרמיננטות, ערכים עצמיים, וקטורים עצמיים, לכסון, תבניות ריבועיות, משוואות הפרשים, תכונות טופולוגיות של קבוצות במרחב אוקלידי, קבוצות קמורות, משפטי הפרדה, פונקציות קמורות וקעורות, תכונות ואפיונים, שנאת סיכון, אופטימיזציה של פונקציות עם ובלי אילוצים, משפט הפונקציות הסתומות, משפט המעטפת, משוואות דיפרנציאליות מסדרים שונים, מערכות של משוואות דיפרנציאליות ושיטות של אופטימיזציה דינאמית).
מטרתה של סדרת מאמרים זו היא להקנות לקורא הבנה מה עושים מדעני נתונים (Data Scientists) נתונים וכיצד הם יכולים לקדם את מטרות הארגון. מרבית אנשי המימון הכמותי, ניהול הסיכונים הפיננסיים והאקטואריה מכירים בכך שהם זקוקים לידע מסוים בתחום ה- ML על מנת לשרוד בעולם שבו מספר מקומות העבודה מושפע יותר ויותר מתחום זה. כיום, כל אנשי המימון הכמותי, ניהול הסיכונים הפיננסיים והאקטואריה צריכים לדעת לעשות שימוש בתוכנת Excel ולדעת לתכנת ברמה מסוימת ב- VBA. מחר כבר כל אנשי המימון הכמותי, ניהול הסיכונים הפיננסיים והאקטואריה יצטרכו לדעת לעבוד עם מאגרי נתונים גדולים (Big Data) תוך פיתוח ושימוש באלגוריתמים של ML על מנת לזהות כיוונים ומגמות בעולמי התוכן שלהם או במגוון תחומים לרוחב הארגון.
בסדרת מאמרים זו חסכתי מהקורא את השימוש בתורת הקבוצות (קרי, מטריצות ווקטורים), למרות שלעניות דעתי אלגברה לינארית חיונית ביותר על מנת להגיע להבנה עמוקה ולשליטה ברמה גבוהה ב- ML.
לסיכום, סדרת מאמרים זו מציגה את הכלים, המודלים והאלגוריתמים הפופולריים ביותר שבהם משתמשים כיום מדעני נתונים.
- מהי למידת מכונה (Machine Learning)?
למידת מכונה היא ענף של בינה מלאכותית (AI- Artificial Intelligence). הרעיון שעומד מאחורי למידת מכונה הוא שאנחנו נותנים לתוכנת מחשב מסוימת גישה להרבה מאוד נתונים ומאפשרים לה ללמוד על קשרים בין משתנים ולבצע תחזיות. חלק מהטכניקות של למידת מכונה קיימות כבר מאז שנות ה- 50 של המאה העשרים, אולם שיפורים טכנולוגיים במהירויות המחשב ובעלויות אחסון הנתונים הפכו כעת את למידת המכונה לכלי מעשי.
נשאלת השאלה באיזו תוכנה מבוצעת למידת המכונה? התשובה היא שישנן מספר אלטרנטיבות כגון: Python, R, MatLab, Spark ו- Julia. נעיר שהתוכנה שבאמצעותה מבוצעת למידת המכונה זקוקה הן ליכולת להתמודד עם מערכי נתונים אדירים והן לזמינות של חבילות המיישמות את האלגוריתמים. לפיכך, נכון לכתיבת שורות אלה תוכנת Python היא המנצחת הגדולה. נציין שחבילת Scikit-Learn של שפת התכנות Pythonמשמשת ללמידת מכונה.
בעוד שהסטטיסטיקה המסורתית עוסקת בתוחלות וסטיות תקן, הסתברויות והתפלגויות, מבחני השערות, רווחי סמך, רגרסיה לינארית וכו', הרי שהעולם החדש של סטטיסטיקה מתאפיין במאגרי נתונים ענקיים, בשיפורים פנטסטיים במהירויות עיבוד מחשב ובעלויות אחסון נתונים, ביצירת כלים לביצוע למידת מכונה, בפיתוח מודלי ניבוי א-לינאריים, למציאת דפוסים בנתונים בדרכים שלא היו אפשריות קודם לכן, בפיתוח אסטרטגיות החלטה מרובות שלבים וכמובן בטרמינולוגיה חדשה, כגון: features, labels, activation functions, target, bias, supervised/unsupervised learning וכו'.
- סוגי מודלים של למידת מכונה
בגדול, קיימים ארבעה סוגים של למידת מכונה. הסוג הראשון נקרא למידה ללא השגחה (Unsupervised Learning) והוא מתאפיין במציאת דפוסים. הסוג השני נקרא למידה בהשגחה (Supervised Learning) והוא מתאפיין בחיזוי ערך נומרי או בסיווג. הסוג השלישי נקרא למידה בהשגחה למחצה (Semi-Supervised Learning) והוא מתאפיין בכך שרק לחלק מהנתונים יש ערכים עבור target או סיווג של target. הסוג הרביעי נקרא למידה בחיזוקים (Reinforcement Learning) והוא מתאפיין בקבלת החלטות מרובות שלבים.
מאחר ושלושת הסוגים השונים לא אומרים לנו יותר מדי, הבה ונמנה מספר יישומים של למידת מכונה: קבלת החלטות בנושא מתן אשראי, סיווג והבנה טובה יותר של לקוחות, ניהול תיקי השקעות/הלוואות, קרנות השקעה פרטיות (Private Equity), תרגום שפה, זיהוי קולי, ביומטריה וכו'.
המסקנה היא שמודל הפולינום מסדר חמישי לא מכליל (generalize) בצורה טובה. שורש הטעות הריבועית הממוצעת (RMSE- Root Mean Square Error) של נתוני סט האימון נאמד ב- 12,902 דולר ארה"ב בעוד ששורש הטעות הריבועית הממוצעת של נתוני סט הבדיקה נאמד ב- 38,794 דולר ארה"ב. מכאן ניתן להסיק שמודל הפולינום מסדר חמישי מתאים יותר מדי (overfits) לנתוני סט האימון ועל כן הוא פחות מצליח בביצוע תחזיות (כפי שעולה מישומו על נתוני סט הבדיקה). התאמת יתר (overfitting) מתרחשת כאשר המודל נקבע על ידי יותר פרמטרים מאשר נתונים מצדיקים. עודף הפרמטרים מאפשר למודל ללמוד את הרעש הסטטיסטי כאילו הוא מייצג התנהגות אמיתית.
- אימות ובדיקה
הפרקטיקה המיטבית בלמידת מכונה מורכבת משלושה שלבים. השלב הראשון הינו חלוקת מאגר הנתונים לשלוש קבוצות: סט האימון, סט האימות וסט הבדיקה. השלב השני הינו פיתוח מודלים שונים באמצעות סט האימון והשוואה ביניהם באמצעות סט האימות (כלל האצבע המקובל הוא שיש להעלות את רמת המורכבות של המודל עד לרמה שבה המודל כבר לא מכליל בצורה טובה את סט האימות). השלב השלישי הוא שימוש בסט הבדיקה לצורך קבלת אינדיקציה סופית לרמת הדיוק של המודל שנבחר, תוך שימוש בנתוני מדגם אחר (out-of-sample).
- ניקוי נתונים (Data Cleaning)
ניקוי נתונים הינו כולל חמש פעולות:
- התמודדות עם רישומים לא עקביים.
- הסרת תצפיות לא רצויות.
- הסרת כפילויות.
- חקירת חריגים.
- התמודדות עם פריטים חסרים.
- הסתברויות לא מותנות לעומת הסתברויות מותנות
הטבלה לעיל מציגה את ניסיון חדלות הפירעון במהלך תקופה של 10 שנים של הלוואות שהיה להן דירוג מסוים בתחילת התקופה. לדוגמא, להלוואה עם דירוג אשראי של Baa היה סיכוי של 0.177% להגיע למצב של חדלות פירעון עד לסוף השנה הראשונה, סיכוי של 0.461% להגיע למצב של חדלות פירעון עד לסוף השנה השניה, וכך הלאה. למעשה ניתן לחשב מתוך הטבלה לעיל את ההסתברות של הלוואה להגיע למצב של חדלות פירעון במהלך שנה מסוימת. לדוגמא, ההסתברות שהלוואה עם דירוג התחלתי של Baa תגיע למצב של חדלות פירעון במהלך השנה השניה (קרי, באמצע השנה השניה, לא בתחילת השנה השניה ולא בסוף השנה השניה) היא 0.2840% (כלומר 0.461% פחות 0.177%).
הטבלה מראה שעבור הלוואות בדירוגים שבין Aaa ל- Baa, ההסתברות להגיע למצב של חדלות פירעון בשנה מסוימת נוטה להיות פונקציה עולה של הזמן (למשל, ההסתברויות שהלוואה בדירוג A תגיע לחדלות פירעון במהלך השנים 0-2, 2-4, 4-7 ו- 7-10 הן 0.165%, 0.371%, 0.761% ו- 0.927%, בהתאמה). זה נובע מכך שהלווה נחשב במועד העמדת ההלוואה לבעל כושר פירעון ואיתנות פיננסית גבוהים (creditworthy), וכלל שעובר הזמן עולה ההסתברות שכושר הפירעון שלו והאיתנות הפיננסית שלו ירדו. עבור הלווואה עם דירוג אשראי נמוך, ההסתברות לחדלות פירעון לעיתים קרובות היא פונקציה יורדת של הזמן (למשל, ההסתברויות שהלוואה בדירוג Caa או נמוך מכך תגיע לחדלות פירעון במהלך השנים 0-2, 2-4, 4-7 ו- 7-10 הן 18.670%, 12.304%, 11.158% ו- 8.126%, בהתאמה). הסיבה לכך היא שעבור הלוואה עם דירוג אשראי נמוך, השנה הבאה או השנתיים הבאות עשויות להיות קריטיות. ככל שהלווה שורד זמן רב יותר, כך ההסתברות שלו להיקלע לבעיית איתנות פיננסית הולכת ויורדת.
כעת נדגים את ההבדל בין הסתברויות לא מותנות להסתברויות מותנות. מהטבלה לעיל, עולה שההסתברות שהלוואה בדירוג Caa או נמוך מכך תגיע לחדלות פירעון במהלך השנה השלישית היא 6.773% (25.443% פחות 18.670%). אנו מתייחסים להסתברות הזו כהסתברות לא מותנית לחדלות פירעון (Unconditional Default Probability). זוהי ההסתברות להגיע למצב של חדלות פירעון במהלך השנה השלישית כפי שהיא נראית בזמן 0 (אם תרצו זוהי ריבית הספוט השנתית למח"מ של שלוש שנים מהיום). ההסתברות שהלוואה בדירוג Caa תשרוד עד לסוף השנה ה- 2 היא 81.33% (100% פחות 18.670%). ההסתברות שהלוואה בדירוג Caa תגיע למצב של חדלות פירעון במהלך השנה השלישית (באמצע השנה) בהינתן ש- או מותנה בכך שההלוואה האמורה לא הגיעה מוקדם יותר למצב של חדלות פירעון היא 8.33% (25.433% פחות 18.670% לחלק ל- 100% פחות 18.67%, או במילים אחרות 6.773% לחלק ל- 81.33%). זוהי ההסתברות המותנית והיא שווה להסתברות להגיע למצב של חדלות פירעון באמצע השנה השלישית (25.433% פחות 18.670%) לחלק להסתברות לשרוד במשך שנתיים (100% פחות 18.67%).
- משפט בייס (Bayes Theorem)
משפט בייס שימושי כאשר אנו רוצים אומדן לאי וודאות כמו גם רק ניבוי. על פי משפט בייס ההסתברות המותנית (קרי, לאחר אינפורמציה) לקרות מאורע X אם ידוע שמאורע Y כבר קרה שווה ליחס שבין מכפלת ההסתברות המותנית לקרות מאורע Y אם ידוע שמאורע X כבר קרה בהסתברות האפריורית (קרי, לפני אינפורמציה) לקרות מאורע Y לבין ההסתברות האפריורית לקרות מאורע X, כדלקמן:
- הטרמינולוגיה של למידת מכונה
Features (מאפיינים) – נניח ש- "גיל", "שכר" ו"מקצוע" הם דוגמאות למשתנים בדוגמא מסוימת. כשנרצה לנבא מהו השכר של עובד עם משתנים מסויימים – נקרא למשתנה השכר "label", בעוד שאת כל יתר המשתנים נכנה "features".
Target (יעד) – התוצאה הסופית שאותה אנו מנסים לנבא, הידועה גם כ- y. ה- target יכול להיות משתנה קטגוריאלי (חולה או לא חולה) או רציף (מחיר של בית).
Label (תווית) – התוצאה האמיתית הידועה של ה- target. בלמידת מכונה בהשגחה תוויות ה- target ידועות עבור סט האימון אבל לא עבור סט הבדיקה. נעיר שבעוד שבבעיות סיווג מקובל יותר להשתמש במונח label הרי שבבעיות ניבוי מקובל יותר להשתמש במונח target.
Bias (הטייה) – מה שאנו מכירים כקבוע הרגרסיה.
Supervised Learning (למידה בהשגחה) – אלגוריתמים אלו מאפשרים לנבא labels (תוויות) מתוך features (מאפיינים) על סמך דוגמאות קודמות. למשל, נוכל לנבא האם פציינט מסויים חולה (label) לפי פרמטרים רפואיים, כמו חום ולחץ דם (features) על סמך דוגמאות של חולים אחרים.
Unsupervised Learning (למידה ללא השגחה) – אלגוריתמים אלו מאפשרים בעיקר קיבוץ של נתונים שונים לקבוצות עם סגמנטים דומים. למשל, נוכל לקבץ צופי טלוויזיה לקטגוריות שונות כמו מדע בדיוני ורומנטיקה (נטפליקס ידועה כמי שעושה שימוש באלגוריתמים אלו לניתוח הרגלי הצפיה של לקוחותיה בכדי להציע להם סרטים וסדרות שרלוונטיים להם).
Semi-Supervised Learning (למידה בהשגחה למחצה) – אלגוריתמים אלו עושים שימוש גם ב- features (מאפיינים) ללא labels (תוויות) עבור סט האימון, כאשר על פי רוב האלגוריתמים הללו משתמשים בכמות קטנה של features (מאפיינים) labels (תוויות) ובכמות גדולה של features (מאפיינים) ללא labels (תוויות). למידה בהשגחה למחצה נופלת בין למידה ללא השגחה (למידה על סמך סט אימון המורכב מ- features ללא labels) לבין למידה בהשגחה (למידה על סמך סט אימון המורכב מ- features עם labels). חוקרים רבים בתחום למידת המכונה מצאו שכאשר משתמשים בכמות קטנה של features ללא labels ביחד עם כמות גדולה של features עם labels, רמת הדיוק של המודל משתפרת באופן ניכר.
Reinforcement Learning (למידה בחיזוקים) – אלגוריתמים אלו, בשונה מהשלושה הקודמים, אינם פועלים על סמך נתונים קודמים, אלא באמצעות "חיזוקים" לביצועים טובים (כמו ניצחון בשחמט), ו"עונשים" לביצועים גרועים. על האלגוריתם "להבין" איזה מהחלטותיו הביאה לביצועים הטובים ואלו לגרועים ולהשתפר בהתאם.
"מדען נתונים הוא אחד שגם טוב יותר בסטטיסטיקה ואקונומטריקה מכל בוגר מדעי המחשב או מהנדס תוכנה וגם טוב יותר בהנדסת תוכנה מכל סטטיסטיקאי או כלכלן", רועי פולניצר, אקטואר ומעריך שווי, 2019.
רועי הינו מדען נתונים (Data Scientist) העושה שימוש ב- Machine Learning לצורך פיתוח מודלים מתקדמים לניהול סיכונים (בדגש על אשראי קמעונאי) כגון מודלים מנבאי התנהגות לקוחות ו/או מודלי תחזיות בתחום ניהול הסיכונים, שיפור מודלים בתחום ניהול הסיכונים, ניתוח צרכים עסקיים בעולמות ניהול הסיכונים, אפיון פתרונות מתאימים באמצעות עבודה מול בסיס נתונים גדולים ויישום כלים אנליטיים מתקדמים בעולם הבינה המלאכותית, הערכת סיכוני מודל וניטור פעולות מתקנות, ניתוח ועיבוד גורמי סיכון עיקריים, וניתוח הבדלים בין חלופות ואיפיון גורמי סיכון.
ניסיונו של רועי בתחום ה- Data Analysis, כולל: עבודה עם מאגרי מידע גדולים Big Data תוך שימוש ב- Statistical Learning (כגון: סטטיסטיקה תיאורית, הסתברות, הסקה סטטיסטית, סטטיסטיקה א-פרמטרית, חלוקת נתונים, נרמול נתונים, Fitting ו- Bayes Theorem) ובאלגוריתמים מסוג Unsupervised Learning (כגון: k-means Clustering, Hierarchical Clustering, Density-based Clustering, Distribution-based Clustering ו- Principle Components Analysis) למציאת דפוסים וזיהוי מגמות ואנומליות בעולמות ניהול הסיכונים, ההשקעות, האקטואריה, הביטוח והפנסיה, פיתוח תשתית לצורך ניתוח נתונים, שילוב והטמעת כלים לצורך גישה ושליפה עצמאית של נתונים ממאגרי מידע, פיתוח דוחות, ממשקים ומסכים באמצעות כלי ויזואליזציה.
ניסיונו של רועי בתחום ה- Data Science, כולל: עבודה עם מסדי נתונים גדולים Big Data תוך שימוש באלגוריתמים מסוג Supervised Learning (כגון: Linear Regression, Ridge Regression, Lasso Regression, Elastic Net Regression, Logistic Regression, Maximum Likelihood Estimation, k-Nearest Neighbors, Decision Tree, Random Forest, Ensemble, Bagging, Boosting, Naïve Bayes Classifier, Linear Separation, Support Vector Machine, Non-Linear Separation, SVM Regression, Artificial Neural Network, Convolutional Neural Network ו- Recurrent Neural Network) לניבוי וסיווג בעולמות ניהול הסיכונים, ההשקעות, האקטואריה, הביטוח והפנסיה ובמודלים מסוג Reinforcement Learning (כגון: Q-learning, Monte Carlo Simulation, Temporal Difference Learning ו- n-Step Bootstrapping) לקבלת החלטות מרובות שלבים בעולמות ניהול הסיכונים, ההשקעות, האקטואריה, הביטוח והפנסיה, זיהוי אתגרים עסקיים שבהםDATA יכול להוות גורם מכריע בשיפור קבלת החלטות, איתור ואיסוף מקורות מידע, הגדרה ואיפיון של שימושי המידע, בניית מסד המידע, אפיון והגדרת הצגת המידע ותוצריו, פיתוח כלים, מודלים, תהליכים ומערכות בתחום האנליזה, תוך שימוש בכלי אנליזה מתקדמים (EXCEL, VBA ושפת R).
עוד בסטטוס:
מגזין "סטטוס" מופק ע"י:
Tags: אקטואריה הערכות שווי פיננסים