الخطوات الأولى

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