ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

TensorFlow Lattice (TFL)

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

المفاهيم

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

المشابك

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

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

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

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

معايرة

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

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

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

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

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

الفرق

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

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

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

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

لماذا TensorFlow Lattice؟

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

التفسير

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

موديلات دقيقة ومرنة

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

أوراق

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

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