البدء

يفترض هذا المستند أنك على دراية بالخصوصية التفاضلية بالفعل، وقررت أنك ترغب في استخدام خصوصية TF لتنفيذ ضمانات الخصوصية التفاضلية في النموذج (النماذج) الخاص بك. إذا لم تكن على دراية بالخصوصية التفاضلية، فيرجى مراجعة صفحة النظرة العامة . بعد تثبيت TF Privacy، ابدأ باتباع الخطوات التالية:

1. اختر إصدارًا خاصًا بشكل تفاضلي لمُحسِّن موجود

إذا كنت تستخدم حاليًا مُحسِّن TensorFlow، فستحتاج على الأرجح إلى تحديد مُحسِّن باسم DPKeras*Optimizer ، مثل [ DPKerasAdamOptimizer ] في [ TF Privacy ].

اختياريًا، يمكنك تجربة أدوات التحسين الموجهة مثل [ tf_privacy.VectorizedDPKerasAdamOptimizer ]. لتحسين السرعة المحتمل (من حيث الخطوات العالمية في الثانية). تم العثور على استخدام أدوات التحسين الموجهة لتوفير عمليات تسريع غير متناسقة في التجارب، ولكن لم يتم فهمها جيدًا بعد. كما كان من قبل، سوف ترغب على الأرجح في استخدام مُحسِّن مماثل للمُحسِّن الذي تستخدمه الآن. تستخدم أدوات التحسين الموجهة هذه عامل التشغيل vectorized_map الخاص بـ Tensorflow، والذي قد لا يعمل مع بعض مشغلي Tensorflow الآخرين. إذا كان هذا هو الحال بالنسبة لك، فيرجى فتح مشكلة في مستودع TF Privacy GitHub .

2. حساب الخسارة للدفعة الصغيرة المدخلات الخاصة بك

عند حساب الخسارة الخاصة بالدفعة الصغيرة المدخلة، تأكد من أنها متجهة ذات إدخال واحد لكل مثال، بدلاً من تجميعها في عددية. يعد ذلك ضروريًا نظرًا لأن 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\) - عدد الدُفعات الصغيرة التي يتم تقسيم كل دفعة صغيرة إليها.

بشكل عام، كلما انخفض الانحراف المعياري الفعال \(σC / B\)، كان أداء النموذج المدرب أفضل في مقاييس التقييم الخاصة به.

تتمتع معلمات DP-SGD الثلاثة الجديدة بالتأثيرات والمقايضات التالية:

  1. عدد الدُفعات الصغيرة \(B\): بشكل عام، ستؤدي زيادة هذا إلى تحسين المنفعة لأنه يقلل الانحراف المعياري للضوضاء. ومع ذلك، فإنه سوف يبطئ التدريب من حيث الوقت.
  2. معيار القطع \(C\): نظرًا لأن الانحراف المعياري لمقاييس الضوضاء باستخدام\(C\)، فمن الأفضل تعيين \(C\) ليكون جزءًا كميًا (على سبيل المثال، الوسيط، المئوي 75، المئوي 90) لمعايير التدرج. يؤدي وجود قيمة كبيرة جدًا للقيمة \(C\) إلى إضافة كميات كبيرة غير ضرورية من الضوضاء.
  3. مضاعف الضوضاء \(σ\): من بين المعلمات الفائقة الثلاثة، يعتمد مقدار الخصوصية فقط على مضاعف الضوضاء. كلما زاد مضاعف الضوضاء، تم الحصول على مزيد من الخصوصية؛ ومع ذلك، يأتي هذا أيضًا مع فقدان المنفعة.

تم تلخيص هذه المفاضلات بين المنفعة والخصوصية والسرعة من حيث الخطوات/الثانية هنا:

المقايضات

اتبع هذه الاقتراحات للعثور على المعلمات الفائقة المثالية:

  • قم بتعيين \(C\) على الكمية كما هو موصى به أعلاه. غالبًا ما تعمل القيمة 1.00 بشكل جيد.
  • اضبط \(B\) = 1 للحصول على أقصى سرعة للتدريب.
  • قم بالتجربة للعثور على أكبر قيمة لـ σ التي لا تزال تعطي فائدة مقبولة. بشكل عام، لوحظ أن القيم 0.01 أو أقل تعمل بشكل جيد.
  • بمجرد العثور على قيمة مناسبة لـ \(σ\) ، قم بقياس كل من \(B\) و \(σ\) بواسطة ثابت لتحقيق مستوى معقول من الخصوصية.