לאחר שקבעתם ש-Counterfactual Logit Pairing (CLP) היא הטכניקה המתאימה למקרה השימוש שלכם, תוכלו ליישם אותה על ידי נקיטת השלבים הבאים:
- צור מופע של
CounterfactualPackedInputs
עם הנתונים המקוריים והאנטי-עובדתיים. - מדוד את קצב ההיפוך וספירת ההיפוך כדי לקבוע אם יש צורך בהתערבות.
- אם יש צורך בהתערבות, העבירו את נתוני הקלט המקוריים, הנתונים הנגדיים, המודל המקורי ואובדן העובדתי למודל הנגדי.
- העריכו את ההשפעה של CLP על ידי מדידת קצב ההיפוך וספירת ההיפוך.
כדי לראות דוגמה להחלת ה-CLP על מודל של Keras, ראה את מערך הלימוד השתמש בהתאמת Logit Counterfactual עם Keras .
צור מופע של CounterfactualPackedInputs
כדי ליצור את מערך הנתונים הנגדי, התחל בקביעת המונחים והתכונות שברצונך להעריך שכאשר יוסר או יוחלף, עלולים לשנות את החיזוי של המודל שלך.
לאחר שתבינו את התנאים והתכונות שיש להעריך לפיהם, תצטרכו ליצור מופע של CounterfactualPackedInputs
, הכולל את הקלט המקורי והנתונים הנגדיים. הקלט המקורי צריך להיות מערך הנתונים שבו השתמשת כדי לאמן את מודל Keras שלך. לנתונים נגד-עובדתיים יש ערך original_x
, ערך counterfactual_x
ו- counterfactual_sample_weight
. הערך הנגדי צריך להיות כמעט זהה לערך המקורי כשההבדל הוא שאחת או יותר מהתכונות הרגישות מוסרות או מוחלפות. האיכות של מערך הנתונים הנגד-עובדתי חשובה מכיוון שהוא משמש לצימוד פונקציית האובדן בין הערך המקורי לערך הנגדי במטרה להבטיח שחיזוי המודל לא משתנה כאשר התכונה הרגישה שונה.
לפרטים על אופן הפיתוח של מערך נתונים נגד עובדתי זה, עיין במחברת על יצירת מערך נתונים נגד עובדתי מותאם אישית .
מדוד את ספירת ההיפוך וקצב ההיפוך
היפוך מוגדר כמסווג הנותן החלטה אחרת כאשר התכונה הרגישה אליה מתייחסים בדוגמה משתנה. הוא לוכד את המצב שבו מסווג משנה את התחזית שלו בנוכחות, היעדר או שינוי של תכונת זהות. יש להשתמש במדד רציף יותר בעת הערכת הערך האמיתי (ציון) של מסווג.
ספירת היפוך
ספירת היפוך מודדת את מספר הפעמים שהמסווג נותן החלטה אחרת אם מונח הזהות בדוגמה נתונה היה שונה.
- ספירת סיבובים כללית : סה"כ סיבובים של חיזוי מחיוב לשלילי ולהיפך.
- ספירת היפוך חיזוי חיובית לשלילית : מספר ההיפוכים שבהם תווית החיזוי השתנתה מחיובי לשלילי.
- ספירת סיבובי חיזוי שלילי לחיובי : מספר סיבובים שבהם תווית החיזוי השתנתה משלילי לחיובית.
קצב היפוך
קצב היפוך מודד את ההסתברות שהמסווג יקבל החלטה אחרת אם מונח הזהות בדוגמה נתונה היה שונה.
- קצב היפוך כולל : ספירת סיבובים כוללת על המספר הכולל של דוגמאות
- קצב היפוך חיזוי חיובי לשלילי : ספירת היפוך חיובית לשלילית על פני דוגמאות חיוביות במערך נתונים נגד עובדתי
- קצב היפוך שלילי לחיובי : ספירת היפוך שלילי לחיובית על פני דוגמאות שליליות במערך נתונים נגד עובדתי
לאחר חישוב קצב ההיפוך וספירת ההיפוך עם אינדיקטורים של הוגנות , תוכל לקבוע אם המסווג מבצע חיזוי שונה על סמך תכונה רגישה בתוך הנתונים. אתה יכול להשתמש במרווחי הספירה והסמך לדוגמה כדי לקבוע אם יש לך מספיק נתונים כדי ליישם CLP ולהסיק מסקנות משיעור ההיפוך. קצב היפוך וספירת היפוך גבוהים מעידים על התרחשות התנהגות זו וניתן להשתמש בהם כדי להחליט אם CLP מתאים למקרה השימוש שלך. החלטה זו היא ספציפית לדגם שלך ותלויה בגורמים כגון הנזק שעלול להיגרם למשתמשי הקצה ולמוצר שבו נעשה שימוש בדגם.
החל צימוד Logit Counterfactual Logit על דגם Keras שלך
כדי להשתמש ב-CLP, אתה צריך את המודל המקורי של Keras שאתה רוצה לתקן, את מערך ההדרכה המקורי ואת מערך הנתונים הנגדי. קבע איזה counterfactual loss
יש להחיל עבור צימוד הלוגיט. בעזרת זה, אתה יכול לבנות את מודל ה-Counterfactual עם פונקציית האובדן הנגדית הרצויה ופונקציית ההפסד מהמודל המקורי שלך.
לאחר החלת CLP, עליך לחשב את קצב ההיפוך וספירת ההיפוך, וכל שינוי במדדים אחרים כגון דיוק כללי למדידת השיפור שנבע מיישום טכניקה זו.