רגע, לא הבנתי – פרק 2

למה בכל זאת חשוב שנבין מה קורה בתוך האלגוריתם

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

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

כך לדוגמא, אפילו על טעות קטנה וטיפשית, אפשר לבזבז שעות על גבי שעות. דמיינו שקיבלתם משימה להכין מודל שינבא רמת הכנסה, ובין הפרמטרים נמצאים מספר הרשעות ושנות השכלה. אך אבוי, העתקתם את הקובץ באופן לא נכון, והשמות של המשתנים הוחלפו. במודל הפשוט, נוכל להבחין ישירות שבאופן תמוה רמת ההכנסה צפויה לעלות עם מספר ההרשעות. כמה נורות אדומות ידלקו, וכנראה שדי מהר נמצא את הגיבוי ששמרנו בצד, ונתקן את המודל. אבל במודל מורכב, הנורות ידלקו הרבה יותר מאוחר. המודל אמנם יציג תוצאות לא טובות כאשר נבחן אותו, אבל לא נוכל למצוא בקלות את הבעיה. לא נוכל לזהות באופן מיידי שיש בעיה עם משתנה מסוים, אלא נתחיל לגשש באפלה. בעיה זו תמשיך להתעצם ככל שיש יותר משתנים והמודל עצמו הוא מורכב יותר.

אפשר כמובן לא להתרשם, ולטעון שאולי זה קצת מעיק, אבל בהחלט לא הרסני – זו בעיה של המפתח, שיתמודד. כל זה נכון בסביבה סטרילית שבה המטרה של המודל פשוטה, כנראה שבסוף נגיע לפתרון של בעיות כמו שתיארתי. אבל כאשר המטרה לאו דווקא ברורה או כאשר הנתונים סבוכים וענקיים – סביר שבלי כלי דיבוג טובים, טעויות רעות בהחלט יוכלו להסתנן למודל.

דוגמא מפורסמת לכך היא הזיהוי השגוי והמעליב של אנשים שחורים על ידי גוגל. בשנת 2015 גילה מהנדס תוכנה בשם ג'קי אלסין, שתמונות שהוא העלה לGoogle Photos מסווגות אותו ואת חבר שלו כגורילות. אין ספק שגוגל רואה בכך תקלה חמורה מאוד, אך עד היום, גוגל לא הצליחה ל"דבג", ולפתור את הבעיה.

זיהוי של שחורים בתור גורילות

אבל כמובן שזה לא נגמר פה. גם אם נבטיח שכל הנתונים נכונים, המטרה מוגדרת היטב והמדדים הבסיסיים מראים על דיוק גבוה, עדיין מודלים מורכבים יכולים להיות בעייתיים ואפילו מסוכנים.

מקרה מעניין ומלמד היה הניסיון לזהות את החומרה של דלקת ריאות בעזרת רשתות נוירונים. הנתונים היו נהדרים, כמיליון חולים שאושפזו בעקבות דלקת ריאות, כ-1000 מדדים רפואיים ושאלת מחקר ברורה – "האם החולה שלפנינו אכן דורש אשפוז?". מצד אחד, אם יש סכנה להתפתחות של דלקת ריאות חמורה, כדאי מאוד לאשפז את החולה על מנת שיהיה בהשגחה צמודה. מצד שני אם אין סכנה אמיתית, ממש לא כדאי לסכן את החולה בזיהומים – הרי, לבית חולים אתה נכנס בריא ויוצא חולה – וגם אין רצון להקשות על החולה ועל משפחתו ולבזבז כסף לבית החולים.

מדדי הדיוק הניבו תוצאות יפות מאוד, והמודל היה צריך להיות מיושם בבית חולים. במקביל צוות חוקרים אחר ניסה לנתח את התופעה על ידי אלגוריתם אחר ופשוט, המתבסס על מציאת כללים סטטיסטיים בין הפיצ'רים. להפתעתם הרבה, היה כלל אחד מוזר מאוד שבלט: יש אסטמה > סכנה נמוכה להחמרה בדלקת ריאות.

רגע, מה קורה פה? איך זה יכול להיות? זה לא אמור להיות הפוך? אז כן בערך. התברר שכאשר מגיע חולה אסטמה עם דלקת ריאות, יש פרוטוקול מסודר, הרופאים יודעים בדיוק מה לעשות ועושים את זה. זה כמובן לא אומר שהסכנה נמוכה באופן כללי, אלא שכאשר נלקחים לחשבון כל הפרטים, יודעים לטפל בה. ולכן ניתוח נאיבי של הנתונים לימד באופן שגוי כי לחולה אסטמה יש סכנה נמוכה להחמרה בדלקת ריאות.    

עכשיו תארו לעצמכם שמודל רשתות הנוירונים היה מיושם. סביר מאוד להניח שאותו הקשר הסטטיסטי בין אסטמה לסיכון נמוך ימצא. ההבדל העיקרי יהיה שלא יהיה אפשר לזהות אותו, כי הוא יבלע במורכבות של המודל. חולי אסטמה שיבואו עם דלקת ריאות יבחנו, והאלגוריתם ככל הנראה יחליט שהסכנה נמוכה, הם יקבלו אנטיביוטיקה וישוחררו לביתם… זה לא טוב בכלל.

אז אולי הפתרון הוא שנגדיר חריגה במודל, ונחליט שלמי שיש אסטמה, למרות שהמודל מכריע שהוא בסיכון נמוך, נתייחס אליו בתור סיכון גבוה. גישה זו לא ריאלית, כי אם נחריג כל כלל סטטיסטי שנמצא, לא ישאר שום דבר מהמודל. ובכל מקרה, הסכנה הגדולה היא דווקא מדפוסים שנמצאים מתחת לפני השטח שהאלגוריתם הצליח לחשוף. כלומר, יחסית קל לחשוף ולהבין שיש בעיה בכלל של האסטמה, ואפילו מישהו ללא השכלה רפואית יכול להבין שאולי יש פה בעיה. אבל הדפוסים העמוקים שהאלגוריתם מוצא יכולים להיות מסוכנים בדיוק באותה מידה, ואותם לא נוכל לחשוף בכלל.

בפוסט שיתפרסם בהמשך בסדרה זו ניגע באתגר נוסף, שממשיך לעורר שיח וצובר תאוצה – אפלייה והטיה באלגוריתמים, ונתחיל לדבר על מה אפשר לעשות.

רגע, לא הבנתי – פרק 1

על פער ההבנה – הנקודה שבה אנחנו מבינים … שאנחנו לא מבינים

[קישור לפרק 2 בסדרה]

ילדים קטנים שואלים שאלות על כל דבר…  שאלות יומיומיות כמו "למה יתושים מזמזמים?" אבל גם שאלות תיאולוגיות עמוקות כמו "לאן הולכים אחרי שמתים?". זהו גיל שבו אנחנו צמאים לידע על איך העולם מתנהל. גם כאשר התדירות יורדת אנחנו ממשיכים בתהליך זה כל החיים. אנחנו צוברים מבנים ותרשימי זרימה דמיוניים על חוקים, סיבות ותוצאות.

שיטות החיזוי המסורתיות לא הלכו רחוק מאוד מזה. לבעיה נתונה, הוצג מודל פשוט שבו יש משתנים מסבירים (פיצ'רים, "סיבות") ומשתנה מוסבר (תוצאה). במשך מאות שנים המדע היה צריך להתמודד עם בעיות בעזרת ניסויים מבוקרים או שיטות סטטיטיות זהירות אחרות. המודל אמר כמה X משפיע על Y. כל זה היה בימים היפים והתמימים, אבל היום אנחנו חיים בעולם אחר לגמרי.

בעת האחרונה, מודלים חדשים ומתוחכמים הרבה יותר מביאים המון ברכה לאנושות, תחומים שבהם לא הצלחנו להגיע להישגים משמעותיים, כמו לדוגמא ראייה ממוחשבת, היום מוגדרים כ"פתורים" על ידי מדעני מחשב. אין הכוונה כמובן שנגמר מה לעשות בתחום, אבל ככל הנראה העבודה המחקרית מתחילה להראות תפוקה שולית פוחתת ביחס למהפכה הגדולה של שימוש ברשתות נוירונים בתחום זה. ראייה נוספת לכך היא שבמשימות מסוימות, כמו זיהוי פרצופים, כנראה שהמכונות כבר עקפו אותנו בסיבוב.

מודלים מודרניים כמו רשתות נוירונים (למידה עמוקה) מסוגלים לתפוס קשרים מסובכים ונסתרים מעיננו. הדרך בה הם עושים את זה היא לחפש קשרים בין הפיצ'רים ובין התגובה: האלגוריתם לא עוצר בחיפוש קשרים לינאריים כמו "אם נגדיל את ההשכלה בשנת לימוד, השכר יעלה ב2000 שקל", אלא ינסה למצוא קשרים מסובכים יותר כמו "אם נגדיל את ממוצע בגרות*גיל*גוון צבע עור*גובה אזי המשכורת תעלה ב1000 שקל" או "אם הגובה שלך הוא מעל 175 ס"מ וגם נולדת בתל אביב אבל לא היית במינוס בבנק בשנה האחרונה – אזי המשכורת שלך תעלה ב500 שקל". למעשה, אפילו הדוגמאות הללו הן הרבה הרבה יותר פשוטות מאשר הכללים שרשתות הנוירונים באמת לומדות.

כך למעשה, אנשים שעוסקים בלמידת מכונה למחייתם יכולים להעביר את חייהם המקצועיים בלבנות מערכות שאת תוצאותיה הם לא מבינים. אותו הילד הסקרן שגדל והתבגר, למד שיש מגבלות להבנה. נדגיש, האמירה ש"אנחנו לא יודעים מה רשתות ניורונים עושה" היא פשטנית למדי. אנחנו כן יודעים איך הרשת נבנת, אנחנו הרי כותבים קוד שבונה רשתות כאלו. אלא שיכולתו של המודל להיות גמיש ולהתאים את עצמו לדפוס מורכב, לא תמיד מאפשרת לנו לעקוב אחרי התוצאות שלו.

AMAZING Domino Rally Trick Screen Link! - YouTube
אלגוריתם מורכב הוא כמו דומינו ראלי ענק, אנחנו רואים שקורה משהו, אבל אנחנו מתקשים להסבירו. מקור: Youtube

נסו לחשוב על דומינו ראלי, משחק הילדים שבו בונים מסלול שבו כל אבן דומינו מפילה את האבן העוקבת. די נחמד לעקוב אחרי מסלול כזה שיוצר צורות מרהיבות. עכשיו חשבו על דומינו ראלי שמתחיל ב1000 מקומות, וכולל פיצולים, איחודים, מבויים סתומים, גשרים ומנהרות. כמו כן, הרשת שנוצרת ממסלולי הדומינו מתפרשת על שטח בגודל של מגרש כדורגל. האם תצליחו לעקוב? האם תבינו את המודל?

אותו פער הבנה הוא תוצאה בלתי נמנעת של חיכוך בין שני רצונות עקרוניים. מצד אחד, הרצון לספק תשובות טובות ככל האפשר לכל שאלה. ומהצד השני הרצון להבין את המנגנון הפנימי של הבעיה. נדמה, שלעיתים קרובות שני רצונות אלו מתנגשים בעוצמה.

אבל מה הבעיה בעצם? אם המערכת יכולה למצוא את כללי ההחלטה עבור בעיה נתונה, למה שנדאג? המערכת הרי תמצא לבד את הכלל האופיטימלי, ולא צריך להיות לנו אכפת מהו, העיקר שזה עובד, העיקר שזה אפקטיבי. אולי בעצם הצפייה להבין היא צפייה ילדותית? הרי זוהי תמימות לחשוב שבאמת קיימים בעולם האמיתי קשרים פשוטים כל כך שניתן להציג אותם בצורה כל כך ישירה. אף אחד לא באמת חושב שאם "אם נגדיל את ההשכלה בשנת לימוד, השכר יעלה ב2000 שקל". ברור שיש אינטרקציות בין כל הפרמטרים, ברור שהעולם מורכב, ואולי רק מודלים מורכבים יצליחו לתאר אותו? ואולי פשוט הגיע הזמן להתבגר ולהשלים עם פער ההבנה?

תם ולא נשלם.

בפוסט הבא ננסה לענות על שאלות אלו בעזרת מיקוד בצורך האנושי בהבנה, ומה אפשר לעשות כדי לגשר על הפער.

[קישור לפרק 2 בסדרה]

שורותקוד של תקווה

"אמור לי מי אתה ואומר לך אם תפשע", שורות קוד שמנבאות סיכויי חזרה לפשיעה.

בשנים האחרונות ממשיכה לגבור השפעת פיתוחים טכנולוגיים על המשפט, מגמה מרתקת שלה מורכבויות רבות. השימוש באלגוריתמים לניבוי עבריינות הוא מבין הסוגיות אשר יצרו את ההדים המשמעותיים ביותר. בשורות הבאות ניגע באלגוריתם COMPAS, חלקכם בטח שמעתם עליו. סביב הכלי הזה נוצר רעש לא מבוטל – דיונים משפטיים ואתיים למכביר ושאלות מעוררות מחשבה.

COMPAS – קווים לדמותו

האמריקאים מתמחים כידוע בהמצאת ראשי תיבות, וגם הפעם הם לא מאכזבים. COMPAS הוא לא אחר מאשר: Correctional Offender Management Profiling for Alternative Sanctions. האלגוריתם פותח על ידי החברה Equivant (לשעבר – Northpoint) והוא משמש את מערכות המשפט והאכיפה ברחבי ארצות הברית לשם הערכת הסיכויים שאדם שפשע יחזור לפשוע בעתיד (בשפה המקצועית – יהיה 'רצידיביסט').

תמשיך כל הזמן בכיוון הזה... עד בית הכלא הקרוב..
תמשיך כל הזמן בכיוון הזה… עד בית הכלא הקרוב
האלגוריתם מעריך את הסיכויים שאדם שפשע יפשע שוב בעתיד

אין כמו פסק דין עסיסי כדי להדגים את השימוש באלגוריתם. ב-2013 הואשם Eric Loomis בירי מרכב נוסע. לומיס מצדו הכחיש שהשתתף בירי וכפר ברוב כתב האישום. בתהליך שהפך כבר רגיל, נדרש לומיס למלא שאלון שהוא אחד הכלים בהם עושה COMPAS שימוש. בשאלון – 137 שאלות (!) הנוגעות בצדדים מגוונים מאוד של ההיסטוריה הנאשם: מקום מגוריו, חברותו ב-gang, יחסו לחוקים ולמערכת המשפט, ועוד (הנה סריקה של השאלון – שווה עיון).

עכשיו הגיע תורו של COMPAS לתת את דברו. בהתחשב בשאלון, בהיסטוריה הפלילית המתועדת לגבי הנאשם, ובעוד קריטריונים וכללים רבים וסודיים שהטמיעו בו אנשי Equivant הוא נתן את מסקנתו לגבי הסיכון הנשקף מלומיס. הפלט של COMPAS הוגש לשופטי ההרכב. למגינת לבו של לומיס החליטו השופטים, בין השאר על סמך אותו פלט, לגזור עליו עונש של 6 שנות מאסר ו-5 שנים בליווי קצין מבחן.

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

חמש השאלות(מתוך 137) האחרונות בשאלון… מעניין אם לנאשם יש עוד רצון לחיות בשלב זה…

התפיסה שבבסיס COMPAS והביקורת עליה

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

בא COMPAS ואומר: "תנו לי כמה שיותר מידע היסטורי על עבריינים, אירועים, מקרים ופסקי דין מהעבר; הבו לי שאלון ממנו אלמד עוד על הנאשם על עצמו ואת ההיסטוריה הפלילית שלו – ואני, בעזרת עיבוד, ניתוח והערכה, אוציא פלט שיסייע למזער את ההטיות ולגשר על פערי הידע האינהרנטיים להליך הפלילי. ועוד, על הדרך, אני אייעל את ההליך ואקל על העומס העצום הקיים בבתי משפט."

אך כמובן שהדברים אינם כה פשוטים. מוגשת כאן רשימה חלקית מאוד של דברי הביקורת אשר ניתן להטיח ב-COMPAS:

  • חוסר שקיפות. Equivant עומדת בתוקף על שמירת הסודיות של 'הקופסה השחורה' של האלגוריתם ואינה רוצה לחשוף (בהנחה והיא בעצמה יודעת מה קורה שם בפנים..) מה קורה שם בפנים. זה אולי נהוג בשוק הפרטי אך בעייתי בראי הזכות להליך הוגן ויכולת הציבור לבקר את קבלת ההחלטות של האלגוריתם. המחקר הזה עמד על כך וטען כי ProPublica (חברינו מסעיף 1) הגיעו למסקנות שגויות כיוון שהניחו הנחות שגויות לגבי תפקודו של COMPAS (היא בתורה יכולה להאשים את Equivant שלא מסכימה לגלות סודות…).
  • הישענות על גורמים פרטיים. האם ראוי להפריט מרכיבים בהליך הפלילי? האם לא נכון יותר שההליך ינוהל על ידי הגוף הציבורי והרשמי הנקרא – "מדינה"? בארצות הברית זו כבר לא שאלה, שם יש בתי סוהר פרטיים לרוב – אז מה זה כבר אלגוריתם פרטי… אבל בהקשר הישראלי זו שאלה מעניינת. היא עלתה בעבר בבג"ץ הפרטת בתי הסוהר, שם נקבע שהעברת סמכויות שלטוניות לידי זכיין פרטי פוגעת בכבוד ובחירות. האם יש דמיון לסוגית COMPAS?

מה שמעניין באמת (בעיני) – ערעור על יסודות המשפט!

כל הנ"ל הוא ללא ספק מרתק ומהווה פתיח לתילי תילים של טענות, מחקרים ודילמות לגבי COMPAS אך בשלב הזה אני רוצה לעמוד על היבט מעט אחר של הסוגיה.

ראו, בהליך המשפטי, טרום-COMPAS ודומיו, משולבות כל מיני תפיסות אשר מעצימות את הסמליות של אולם בית המשפט, של השופט ושל ההליך הפלילי: כולם מכתתים רגליהם לבית המשפט, לאולם המכובד והמקודש של בית המשפט. המשפט, הכרעת הדין והגזר הדין הם רגעים מכוננים וסמליים: הנאשם X נותן דין וחשבון על חטאיו ומתוודה בפני השופט; כבוד השופט המלומד עושה שימוש בסמכות שהחוק עצמו מקנה לו בהסתמך על כושר שיפוטו ומכריע לגבי הנכון והלא-נכון, הראוי והשגוי, הטוב והרע.

פתאום בא COMPAS ומזכיר כי השופט הוא בן אדם עם הטיות ובעיקר שמאוד חבל לא להשתמש באינסוף הנתונים הקיימים כדי לחתור אל האמת. האלגוריתם מציע לנו לתקן את תחלואות ההליך בעזרת כלים חישוביים, נתונים וסטטיסטיקה. "תן לי מידע לגבי העבר וההיסטוריה ואני אסיק בוודאות די טובה מה צופן בעתיד". שופט, אל תצמצם את עצמך לנאשם הספציפי או למטען הידע המוגבל שבראשך – הנה לך מאגר נתונים עצום וא-פרסונאלי, מבוסס קריטריונים מוגדרים, שיכול לתת את ה'תשובה הנכונה'. ואיזו סיבה יכולה להיות לשופט לא לתת משקל משמעותי לדבר שכזה?

הנקודה שלי היא ש-COMPAS קצת 'מחלל' את קדושת המשפט – לטוב ולרע. אפשר להעמיד פנים שהאקשן ממשיך להתרחש בין השופט לבין הנאשם, באולם וברגעי הדיון. אבל מסתבר שחלקים משמעותיים ממנו עברו מיקור חוץ – נתח מכובד מתהליך השיפוט נטש את בית המשפט לטובת חלקיקי השניות שבהן האלגוריתם מחשב את הפלט שלו. וככל שפלט האלגוריתם יתפוס מקום משמעותי יותר בשיקול הדעת, כך נוטה ההליך להתבסס על סטטיסטיקה ולא על שיפוט ערכי.

השימוש באלגוריתמים איננו רק משנה או מייעל שיטות עבודה קיימות, האלגוריתם איננו רק כלי שמשפר את ההליכים הקיימים. אלא שהוא משפיע על תפיסות היסוד של בני האדם והחברה האנושית. הטכנולוגיה איננה נייטרלית. היא מוציאה 'ישן' מפני 'חדש'. הטכנולוגיה משנה תפיסות יסוד ומקדמת ערכים של יעילות ואפקטיביות על חשבון מוסדות מסורתיים.

שימו לב שלא אמרתי אם זה טוב או רע, כמו לכל דבר בחיים – יש לזה יתרונות וחסרונות…

אבל מה בדבר Loomis?

יש פה בכלל מישהו במתח…?

Loomis עתר לבימ"ש העליון של Wisconsin נגד השימוש באלגוריתם. לדבריו כיוון שנשמרת סודיות האלגוריתם, לנאשם אין ההזדמנות לאתגר את התוקף המדעי של הכלי – דבר המהווה פגיעה בזכות להליך הוגן.

בתי המשפט שוב ושוב דחו את טענות LOOMIS נגד האלגוריתם

את בית המשפט זה לא שכנע. הוא פסק נגד Loomis והסתפק בקריאה לשימוש זהיר באלגוריתם. וזאת על אף שהשופטים כלל לא נחשפו לקרביים של האלגוריתם (וגם אם כן – האם הם כשירים להבין בזה משהו..?!). בבימ"ש העליון של ארה"ב נתקל Loomis שוב בסירוב, כיוון שהשופטים דחו את העתירה.

ובקיצור, לגבי Loomis הסיפור תם ונשלם, את עונשו הוא יירצה…

לגבי הסוגיה בכללותה – אני מקווה שנשאר לכם חומר למחשבה…