אימון והסקה
2. ביצוע הסקה (inference) עבור קלט חדש, וסיווגו אל מול אחד הפלטים מהעבר (או קירוב מספרי – רגרסיה).
כך למשל, אם נרצה למשל לבנות רשת המבחינה בין גזעי כלבים שונים – נצטרך להזין לרשת נוירונים תמונות רבות של כלבים שונים ול’הסביר’ לרשת עבור כל כלב מאיזה גזע הוא. את המודל הנוצר נשמור בצד, וכעת נוכל להשתמש במודל זה כדי להסיק עבור תמונות חדשות של כלבים – לאיזה גזע הם משתייכים.
שימוש ב DL לטובת ניתוח נתונים
האם ניתן ללמוד דברים חדשים שלא ידענו באמצעות שימוש בלמידה עמוקה?
בפוסט קודם שלי לדוגמא, כתבתי על הערך של ייצוג ווקטורי של מילים לטובת זיהוי דמיון בין מילים לשימושים שונים בעולם ההבנת טקסט טבעי (NLP) ובאמצעות אלגוריתם Word2Vec. מעניין לחשוב על זה כך – ייצוג הוקטורי של המילים הוא תוצר לוואי של רשת נוירונים, ולא הפלט הקלאסי. עם זאת – תוצר הלוואי הזה הוא הדבר החשוב באמת.
ארכיטקטורה עמוקה פוגשת את מערכות הבחירות

תהליך ה fit ותוצאות ראשוניות
כל שנותר לנו לעשות כדי לאמן את המודל הוא ‘להעביר’ את הדאטה הגולמי דרך מבנה הנתונים הזה, תהליך הנקרא fitting.
נבצע 100 איטרציות (שוב, ניסוי וטעיה) ונמדוד את איכות המודל.
הדרך המקובלת היא לפצל את הדאטה לשני חלקים, לרוב לא שווים בגודלם – דאטה לאימון (train set) ודאטה לבדיקה (test set). את המודל נבנה על הדאטה לאימון, ונבדוק את דיוקו אל מול הדאטה לבדיקה.

(בצורה יותר פורמאלית, ערך זה הוא קוסינוס הזווית הכלואה בין שני הוקטורים – בפועל והתחזית)

אכלו לי, שתו לי
אחד הנושאים המרכזיים במערכת הבחירות ה 21 היה נושא ‘שתיית הקולות’ של המפלגות המרכזיות את המנדטים של המפלגות הקטנות. האם נוכל להעזר במודל שלנו כדי לאשש טענה זו?
נניח שבמערכת הבחירות ה 20, הייתה קלפי שבה 100% מהקולות הלכו למפלגה ספציפית, מסקרן איזו תוצאה יחזה המודל עבור אותה קלפי למערכת הבחירות ה 21.
לדוגמא – אילו היתה קלפי בה 100% מהקולות במערכת הבחירות ה 20 היו למפלגת העבודה (המחנה הציוני דאז), אזי על-פי המודל רק 19% מהקולות היו נשארים במפלגת ‘אמת’, 11% קולות היו עוברים ל’מרצ’ ו 63% מהקולות היו עוברים למפלגת ‘פה’ (כחול לבן). מסתבר שיש דברים בגו.
אז אם יש לנו מודל שיודע לנבא כיצד מצביעי מפלגה מסויימת שינו את דעתם בין שתי מערכות הבחירות, למה שלא נבחן זאת על כל המפלגות?
לשם כך נייצר מטריצה ריבועית בגודל 26×26, בה כל הערכים הם 0, פרט לאלכסון שאותו נסמן כ 1 – בצורה זו, יצרנו מבנה נתונים של 26 קלפיות מדומות, שבכל אחת יש מפלגה אחת שקיבלה 100% מהקולות.
המטריצה אם כן, תראה כך:
בעזרת מטריצה זו נוכל לבדוק בדיוק את נושא ‘השתיה’ ע”י חיזוי תוצאות קלפיות בבחירות 21 באמצעות המודל שנבנה קודם.
נתאר זאת במפה הבאה (צמצמתי ל 13 המפלגות החשובות בכנסת ה 21):
כמה אנקדוטות מעניינות:
1. כאמור, מפלגת העבודה קיבלה את אמונם של 19% ממצביעיה המקוריים, 65% נדדו למפלגת כחול לבן.
2. את תואר המצביעים הנאמנים ביותר, מקבלת מפלגת יהדות התורה, עם 90% לויאליות.
3. 30% ממצביעי הבית היהודי התפוגגו אצל מפלגת הימין החדש (שכידוע לא עברה את אחוז החסימה)
4. מצביעי כולנו התפזרו להם אצל המון מפלגות, בינהן – שס, כחול לבן, הליכוד, רע”ם-בל”ד ויהדות התורה.
5. כ 25% ממצביעי ישראל ביתנו הצביעו לחד”ש-תע”ל בכנסת ה 21. מוזר מאוד! אשמח להסבר בתגובות.
6. מפלגת הליכוד, קיבלה את אמונם של 10% ממצביעי יש עתיד, אולם מפלגת כחול לבן (הנושאת את אותם אותיות) לא הצליחה להעביר מנדטים משמעותיים מהליכוד אליה.
ברור שרמה כזו של תובנות קשה יהיה להסיק באמצעות שיטות קלאסיות הנהוגות בכלי Business Inteligience הרגילים.
טביעת אצבע וקטורית של מפלגות
כאמור בפתיחה, אחד הסודות הפחות מדוברים בעולם ה DL, הוא תוצרי הלוואי של תהליך החיזוי – בין אם בשכבות הנסתרות, אבל גם בשכבה הסופית. במקרה שלנו למשל, ניתן לתאר את מספרים האופקיים לכל מפלגה במפה שלמעלה, כייצוג במרחב הוקטורי של אותה מפלגה – אני קורא לזה party embedding.
נתבנון שוב על המפה, ממקודם, אבל נתמקד לרגע בשתי מפלגות – מפלגת העבודה, ומפלגת כחול לבן:
מסתבר ששתי שורות אלו די קרובות אחת לשניה – הזווית הכלואה בין שני הווקטורים קרובה ל 0, וקוסינוס הזווית קרוב ל 1, (אם ננרמל את התוצאות לכל שורה ל 100% נראה זאת בבירור, אבל לא הפעם).
המשמעות הלוגית היא, שמצביעי שתי המפלגות בכנסת ה 21, הגיעו בגדול מאותן מפלגות ובאותם יחסית בכנסת ה 20.
ניתן לחשוב על הווקטור האופקי כטביעת האצבע של המפלגה – מפלגות הדומות אחת לשניה (בהיבט מצביעים, לאו דווקא אידיאולוגי כמובן) ייקבלו ייצוג דומה – כלומר ערכי ה cosine similarity יתקרבו לזוג כזה ל – 1.
עכשיו נחשב, את המרחק בין כל זוג מפלגות – אלו הצימודים הבולטים ביותר:
אין יותר ימין או שמאל?
זוכרים את הסלוגן? נבדוק…
ננסה לתאר את מפת המפלגות בכנסת ה 21 על גבי קנבס דו מימדי (בעקבות מגבלות המדיה כמובן) – כלומר עלינו לבצע המרה של הנתונים מוקטור באורך 26 תאים לווקטור עם שני תאים מבלי לאבד יותר מידי מידע.
ישנן שתי שיטות נפוצות לעשות זאת – אלגוריתם הפחתת מימדים: T-SNE, ואלגוריתם התמרת מימדים: PCA.
בחרתי דווקא שיטה אחרת – שימוש בגרף ממושקל, כאשר משקל כל קשת הוא כמרחק בין כל זוג מפלגות.
את הגרף נדפיס באמצעות הספריה networkx (את הקשתות צבעתי בלבן), המשתמשת באלגוריתם איטרטיבי המביא את הצמתים למרחק בו המערכת כולה מגיעה לשיווי משקל.
וקיבלנו את המפה דו מימדית להלן:
גרף זה אם כן, מייצג את המרחק בין כל זוג מפלגות – מעניין לראות כיצד המפלגות השונות הסתדרו להן במרחב – נראה שלמעלה הצטופפו מפלגות המזוהות יותר בשמאל ולמטה מפלגות הימין.
איך הייתם מגדירים את הציר האופקי? כיתבו בתגובות..
לסיכום
למידה עמוקה היא יותר מרק ביצוע תחזיות, קלסיפיקציות וכיוצ”ב – הכלים החדשים פותחים לנו עולמות חדשים של אפשרויות בתחומים משיקים, למשל בעולם ה Business Inteligience.
שימוש מושכל במידע המצטבר בשכבות הנסתרות או בתוצרי החיזוי, יכול לפתוח את עיננו לסודות מעניינים מאוד, אם רק נדע להפיק אותם.
האם חברות האנליטיקס וה BI ישנו את עורן כדי לספק שירותי דוחות חדשים מבוססי DL? אני מעריך שלא מיד, אבל בהחלט נראה שיש פה הזדמנות מעניינת לחדשנות.
הקוד כולו נמצא בלינק הבא.
Happy Deep Learning!
ניתוח יפה!
הייתי מנסה להתמקד בגרף הממושקל ולמצוא את המפלגה המרכזית ע”י למשל אלגוריתם
Page rank.
רעיון מעניין, אולי לפוסט הבא..
וואו ! סחטיין על היצירתיות והביצוע
בנוגע לישראל ביתנו/רע”מ תעל: האם ניתן לצמצם את הקלפיות הספציפיות בהן התרחש המעבר הזה? או שהשינוי הוא בהתפלגות אחידה על פני הקלפיות?
אני מניח שאפשר למצוא את הסיבה, אבל מפאת קוצר הזמן לא נכנסתי לזה… אתה מוזמן להרים את הכפפה
לגבי 25 אחוז ממצביעי ישראל ביתנו שהצביעו לחד״ש-תע״ל
אתה באמת רוצה לדעת?
אומרים שבסביבות מנדט של ליברמן בא מהדרוזים דרך מפקדי ארגזים
אם תוכל להנפיק עוד מידע על זה זה יהיה מדהים, אולי יהיה ערך נוסף למחקר שלך
דעתי שלי ישראל ביתנו באופן מסורתי נשענת על אלפי קולות שניתן להשיג בדילים מתחת לשולחן לרב בישובים ערביים. זה הסבר הגיוני איך ייתכן שקולות אלו עברו מקצה המפה הפוליטית למפלגות ערביות
לגבי הציר האופקי – “ל” בצד שמאל שובר את המודל :). למשל – מי משרת בצבא או תורם לכלכלת המדינה או מעורבות באופן כללי.
לגבי שימוש ברשת נוירונים. האם בדקת\השוות מה ה prediction במידה ומשתמשים ב random forest? נראה לי גם מודל שעשוי להתאים (ההבנה שלי מוגבלת, אז סליחה מראש אם השאלה לא במקום…)
לא ניסיתי מודלים אחרים.. אתה מוזמן
יישר כוחך. ניסוי פשוט ואלגנטי. אבל נראה לי שכדאי לבדוק שוב את הנתונים הגולמיים. הגרף על ירושלים מראה מעט מאד קולות ל-ג׳ כאשר בפועל הם קבלו בערך כמו מחל
זו קלפי ספציפית בירושלים, יכול להיות שזה היה בשכונה יותר חילונית
במגזר הערבי יש היו לאורך השנים גם הצבעות מפתיעות לש”ס. דילים אינטרסנטיים של שני הצדדים
לגבי הציר האופקי ב
Tsne
אין לו שום משמעות וגם לא אמורה להיות לו.
Tsne
רק מבטיח שנקודות קרובות במימד הגבוה יהיו קרובות במימד הנמוך, הוא *לא* מבטיח שנקודות רחוקות ישארו רחוקות.
האלגוריתם לא מחפש כיוונים ראשיים
כמו pca למשל
אלא “מקפל” את המרחב לדו מימד.
ולכן הציר האופקי בגרף שקיבלת (ובעצם גם הציר האנכי) חסרי משמעות
הם גם ישתנו בכל הרצה של האלגוריתם בסדר אחר על הנקודות דאטה