TensorFlow Lattice (TFL)

TensorFlow Lattice هي مكتبة تنفذ نماذج شبكية مرنة ويمكن التحكم فيها وقابلة للتفسير. تتيح لك المكتبة إدخال معرفة المجال في عملية التعلم من خلال قيود الشكل المنطقية أو السياسات. يتم ذلك باستخدام مجموعة من طبقات Keras التي يمكنها تلبية قيود مثل الرتابة والتحدب والثقة الزوجية. توفر المكتبة أيضًا سهولة إعداد المقدرات المعلبة .

المفاهيم

هذا القسم هو نسخة مبسطة من الوصف في جداول البحث أحادية اللون المعايرة المقحمة ، JMLR 2016.

المشابك

الشبكة عبارة عن جدول بحث مقرف يمكنه تقريب علاقات الإدخال والإخراج التعسفية في بياناتك. إنها تتداخل مع شبكة عادية في مساحة الإدخال الخاصة بك وتتعلم قيم الإخراج في رؤوس الشبكة. بالنسبة لنقطة الاختبار \(x\)، يتم \(f(x)\) خطيًا من القيم الشبكية المحيطة \(x\).

المثال البسيط أعلاه هو دالة ذات ميزتي إدخال و 4 معلمات:\(\theta=[0, 0.2, 0.4, 1]\)، وهي قيم الوظيفة عند زوايا مساحة الإدخال ؛ يتم استيفاء باقي الوظيفة من هذه المعلمات.

يمكن للوظيفة \(f(x)\) التقاط تفاعلات غير خطية بين الميزات. يمكنك التفكير في معلمات الشبكة على أنها ارتفاع الأعمدة المحددة في الأرض على شبكة منتظمة ، والوظيفة الناتجة هي مثل قطعة قماش مشدودة بإحكام على الأقطاب الأربعة.

مع ميزات \(D\) على طول كل بُعد ، سيكون للشبكة العادية معلمات \(2^D\) . لتلائم وظيفة أكثر مرونة ، يمكنك تحديد شبكة أكثر دقة على مساحة الميزة بمزيد من الرؤوس على طول كل بُعد. وظائف الانحدار الشبكي مستمرة وقابلة للتفاضل بلا حدود.

معايرة

لنفترض أن نموذج الشبكة السابقة يمثل سعادة المستخدم المكتسبة بمقهى محلي مقترح محسوب باستخدام الميزات:

  • سعر القهوة ، في حدود 0 إلى 20 دولارًا
  • المسافة إلى المستخدم ، في حدود 0 إلى 30 كيلومترًا

نريد أن يتعلم نموذجنا سعادة المستخدم من خلال اقتراح مقهى محلي. يمكن أن تستخدم نماذج TensorFlow Lattice وظائف خطية متعددة الأجزاء (مع معايرة tfl.layers.PWLCalibration ) لمعايرة وتطبيع ميزات الإدخال إلى النطاق المقبول بواسطة الشبكة: 0.0 إلى 1.0 في المثال الشبكي أعلاه. يعرض ما يلي أمثلة لوظائف المعايرة هذه باستخدام 10 نقاط رئيسية:

غالبًا ما تكون فكرة جيدة أن تستخدم مقادير الميزات كنقاط أساسية للإدخال. يمكن لمقدرات TensorFlow Lattice المعلبة ضبط نقاط مفاتيح الإدخال تلقائيًا إلى مقادير الميزة.

بالنسبة إلى الميزات الفئوية ، يوفر TensorFlow Lattice معايرة فئوية (مع tfl.layers.CategoricalCalibration ) بإطار إخراج مماثل للتغذية في شبكة.

الفرق

يزداد عدد معلمات طبقة الشبكة بشكل كبير مع عدد ميزات الإدخال ، وبالتالي لا يتم التحجيم جيدًا إلى أبعاد عالية جدًا. للتغلب على هذا القيد ، تقدم TensorFlow Lattice مجموعات من المشابك التي تجمع (متوسط) العديد من المشابك الصغيرة ، والتي تمكن النموذج من النمو خطيًا في عدد الميزات.

تقدم المكتبة نوعين مختلفين من هذه المجموعات:

  • المشابك الصغيرة العشوائية (RTL): يستخدم كل نموذج فرعي مجموعة فرعية عشوائية من الميزات (مع الاستبدال).

  • البلورات : تقوم خوارزمية البلورات أولاً بتدريب نموذج مفضل يقوم بتقدير تفاعلات الميزات الزوجية. ثم يقوم بترتيب المجموعة النهائية بحيث تكون الميزات ذات التفاعلات غير الخطية في نفس المشابك.

لماذا TensorFlow Lattice؟

يمكنك العثور على مقدمة موجزة عن TensorFlow Lattice في منشور مدونة TF هذا.

التفسير

نظرًا لأن معلمات كل طبقة هي ناتج تلك الطبقة ، فمن السهل تحليل وفهم وتصحيح كل جزء من النموذج.

نماذج دقيقة ومرنة

باستخدام المشابك الدقيقة ، يمكنك الحصول على وظائف معقدة بشكل تعسفي باستخدام طبقة شعرية واحدة. غالبًا ما يعمل استخدام طبقات متعددة من أجهزة المعايرة والشبكات بشكل جيد في الممارسة ويمكن أن تتطابق أو تتفوق على نماذج DNN ذات الأحجام المتشابهة.

قيود الشكل ذات الحس السليم

قد لا تمثل بيانات التدريب في العالم الحقيقي بيانات وقت التشغيل بشكل كافٍ. غالبًا ما تعمل حلول ML المرنة مثل DNNs أو الغابات بشكل غير متوقع وحتى بشكل عشوائي في أجزاء من مساحة الإدخال التي لا تغطيها بيانات التدريب. هذا السلوك يمثل مشكلة خاصة عندما يمكن انتهاك قيود السياسة أو الإنصاف.

على الرغم من أن الأشكال الشائعة للتنظيم يمكن أن تؤدي إلى استقراء أكثر منطقية ، فإن المنظمين القياسيين لا يمكنهم ضمان سلوك نموذج معقول عبر مساحة الإدخال بأكملها ، خاصةً مع المدخلات عالية الأبعاد. يمكن أن يؤدي التحول إلى نماذج أبسط ذات سلوك أكثر تحكمًا ويمكن التنبؤ به إلى تكلفة باهظة على دقة النموذج.

يجعل TF Lattice من الممكن الاستمرار في استخدام النماذج المرنة ، ولكنه يوفر العديد من الخيارات لإدخال معرفة المجال في عملية التعلم من خلال الفطرة السليمة ذات المعنى أو قيود الشكل المدفوعة بالسياسات:

  • الرتابة : يمكنك تحديد أن الناتج يجب أن يزيد / ينقص فقط فيما يتعلق بالمدخلات. في مثالنا ، قد ترغب في تحديد أن المسافة المتزايدة إلى المقهى يجب أن تقلل فقط من تفضيل المستخدم المتوقع.

  • التحدب / التقعر : يمكنك تحديد أن شكل الوظيفة يمكن أن يكون محدبًا أو مقعرًا. مختلطًا مع الرتابة ، يمكن أن يجبر هذا الوظيفة على تمثيل تناقص العوائد فيما يتعلق بميزة معينة.

  • Unimodality : يمكنك تحديد أن الوظيفة يجب أن يكون لها قمة فريدة أو وادي فريد. يتيح لك هذا تمثيل الوظائف التي لها مكانة جيدة فيما يتعلق بالميزة.

  • الثقة الزوجية : يعمل هذا القيد على زوج من الميزات ويقترح أن إحدى ميزات الإدخال تعكس بشكل دلالي الثقة في ميزة أخرى. على سبيل المثال ، يجعلك العدد الأكبر من المراجعات أكثر ثقة في متوسط ​​التقييم النجمي لمطعم ما. سيكون النموذج أكثر حساسية فيما يتعلق بالتصنيف النجمي (أي سيكون له ميل أكبر فيما يتعلق بالتقييم) عندما يكون عدد المراجعات أعلى.

مرونة خاضعة للرقابة مع المنظمين

بالإضافة إلى قيود الشكل ، توفر شبكة TensorFlow عددًا من المنظمين للتحكم في مرونة وسلاسة الوظيفة لكل طبقة.

  • منظم لابلاسيان : يتم تنظيم نواتج نقاط الشبكة / رؤوس المعايرة / نقاط المفاتيح تجاه قيم جيرانها. ينتج عن هذا وظيفة أكثر تملقًا .

  • Hessian Regularizer : يعاقب هذا المشتق الأول من طبقة معايرة PWL لجعل الوظيفة أكثر خطية .

  • منظم التجعد : هذا يعاقب المشتق الثاني من طبقة معايرة PWL لتجنب التغيرات المفاجئة في الانحناء. يجعل الوظيفة أكثر سلاسة.

  • منظم الالتواء: سيتم تنظيم مخرجات الشبكة لمنع الالتواء بين الميزات. بمعنى آخر ، سيتم تنظيم النموذج نحو الاستقلال بين مساهمات الميزات.

امزج وتطابق مع طبقات Keras الأخرى

يمكنك استخدام طبقات TF Lattice مع طبقات Keras الأخرى لإنشاء نماذج مقيدة جزئيًا أو منتظمة. على سبيل المثال ، يمكن استخدام طبقات المعايرة الشبكية أو طبقات المعايرة PWL في الطبقة الأخيرة من الشبكات الأعمق التي تتضمن الزخارف أو طبقات Keras الأخرى.

أوراق

البرامج التعليمية ومستندات API

بالنسبة لهياكل النماذج الشائعة ، يمكنك استخدام نماذج Keras مسبقة الصنع أو مقدرات معلبة . يمكنك أيضًا إنشاء نماذج مخصصة باستخدام طبقات TF Lattice Keras أو مزجها ومطابقتها مع طبقات Keras الأخرى. تحقق من مستندات API الكاملة للحصول على التفاصيل.