שנתחיל?

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

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

אם אתה משתמש כרגע בכלי אופטימיזציה של TensorFlow, סביר להניח שתרצה לבחור בכלי אופטימיזציה בשם DPKeras*Optimizer , כגון [ DPKerasAdamOptimizer ] ב-[ TF Privacy ].

לחלופין, אתה יכול לנסות כלי אופטימיזציה וקטוריים כמו [ tf_privacy.VectorizedDPKerasAdamOptimizer ]. לשיפור מהירות אפשרי (במונחים של צעדים גלובליים לשנייה). נמצא שהשימוש באופטימיזציה וקטורית מספקת האצות לא עקביות בניסויים, אך עדיין אינו מובן היטב. כמו קודם, סביר להניח שתרצה להשתמש במייעל המקביל לזה שאתה משתמש בו כעת. אופטימיזציית וקטורים אלו משתמשים באופרטור vectorized_map של Tensorflow, אשר עשוי שלא לעבוד עם אופרטורים אחרים של Tensorflow. אם זה המקרה עבורך, אנא פתח בעיה במאגר TF Privacy GitHub .

2. אובדן מחשוב עבור minibatch הקלט שלך

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

3. אמן את הדגם שלך

אמן את המודל שלך באמצעות DP Optimizer (שלב 1) ואובדן וקטורי (שלב 2). ישנן שתי אפשרויות לעשות זאת:

  • העבר את האופטימיזציה וההפסד כארגומנטים ל- Model.compile לפני שתקרא ל- Model.fit .
  • בעת כתיבת לולאת אימון מותאמת אישית, השתמש ב- Optimizer.minimize() על ההפסד הקטורי.

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

4. כוונן את הפרמטרים ההיפרפרמטרים של DP-SGD

כל כלי האופטימיזציה tf_privacy לוקחים שלושה היפרפרמטרים נוספים:

  • l2_norm_clip או \(C\) - נורמת חיתוך (הנורמה האוקלידית המקסימלית (L2) של כל שיפוע אינדיבידואלי מחושבת לכל מיני אצווה).
  • noise_multiplier או \(σ\) - יחס סטיית התקן לנורמת החיתוך.
  • num_microbatches או \(B\) - מספר microbatches שלתוכה מפוצלת כל minibatch.

בדרך כלל, ככל שסטיית התקן האפקטיבית \(σC / B\)נמוכה יותר, כך הביצועים של המודל המאומן על מדדי ההערכה שלו טובים יותר.

לשלושת ההיפרפרמטרים החדשים של DP-SGD יש את ההשפעות והפשרות הבאות:

  1. מספר המיקרו-אצטות \(B\): בדרך כלל, הגדלת זה תשפר את השימושיות מכיוון שהיא מורידה את סטיית התקן של הרעש. עם זאת, זה יאט את האימונים מבחינת זמן.
  2. נורמת החיתוך \(C\): מכיוון שסטיית התקן של סולמות הרעש עם\(C\), כנראה שעדיף להגדיר \(C\) כקוונטיל כלשהו (למשל חציון, אחוזון 75, אחוזון 90) של נורמות השיפוע. ערך גדול מדי של \(C\) מוסיף כמויות גדולות שלא לצורך של רעש.
  3. מכפיל הרעש \(σ\): מבין שלושת הפרמטרים ההיפר, כמות הפרטיות תלויה רק ​​במכפיל הרעש. ככל שמכפיל הרעש גדול יותר, כך מתקבלת פרטיות רבה יותר; עם זאת, זה מגיע גם עם אובדן תועלת.

החלפות אלו בין השירות, הפרטיות והמהירות במונחים של צעדים/שנייה מסוכמים כאן:

פשרות

בצע את ההצעות הבאות כדי למצוא את ההיפרפרמטרים האופטימליים:

  • הגדר \(C\) לכמות כמומלץ לעיל. ערך של 1.00 לרוב עובד היטב.
  • הגדר \(B\) = 1, למהירות אימון מקסימלית.
  • ניסוי כדי למצוא את הערך הגדול ביותר של σ שעדיין נותן תועלת מקובלת. בדרך כלל, ערכים של 0.01 ומטה נצפו כעובדים היטב.
  • לאחר שנמצא ערך מתאים של \(σ\) , שנה את \(B\) וגם \(σ\) בקבוע כדי להשיג רמה סבירה של פרטיות.