HyperOpt تبدد الغموض

كيفية أتمتة ضبط النموذج باستخدام HyperOpt

هل تحب موديلات التوليف؟ إذا كانت إجابتك "نعم" ، فهذا المنشور هو ليس بالنسبة لك.

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
رسم كاريكاتوري من جدي - موقع الكتروني.

في هذه المدونة ، سنغطي خوارزمية ضبط المعلمات الفائقة المؤتمتة المعروفة للغاية مقدرات Parzen القائمة على الأشجار (TPE). يتم دعم TPE بواسطة حزمة مفتوحة المصدر ، HyperOpt. من خلال الاستفادة من HyperOpt و TPE ، يستطيع مهندسو التعلم الآلي ذلك تطوير نماذج مُحسّنة للغاية بسرعة دون أي ضبط يدوي.

بدون مزيد من اللغط ، دعنا نتعمق!

HyperOpt عبارة عن حزمة Python مفتوحة المصدر تستخدم خوارزمية تسمى Parzen Esimtors (TPE) القائمة على الشجرة لتحديد معلمات تشعبية للنموذج تعمل على تحسين وظيفة موضوعية يحددها المستخدم. من خلال تحديد الشكل الوظيفي وحدود كل معلمة تشعبية ، يبحث TPE بدقة وفعالية من خلال الفضاء الفائق المعقد للوصول إلى الحدود المثلى.

TPE هي خوارزمية متسلسلة تستفيد من التحديث البايزي وتتبع التسلسل أدناه.

  1. قم بتدريب نموذج مع عدة مجموعات من المعلمات التشعبية المختارة عشوائيًا ، وإرجاع قيم دالة الهدف.
  2. قسّم قيم الدالة الموضوعية المرصودة إلى مجموعات "جيدة" و "سيئة" ، وفقًا لبعض عتبة جاما (γ).
  3. احسب درجة "الوعد" ، وهي عادلة ف (س | جيد) / ف (س | سيء).
  4. حدد المعلمات الفائقة التي تزيد من الجودة الواعدة عبر نماذج الخليط.
  5. قم بملاءمة نموذجنا باستخدام المعلمات الفوقية من الخطوة 4.
  6. كرر الخطوات من 2 إلى 5 حتى يتم إيقاف المعايير.

وهنا مثال رمز سريع.

حسنًا ، كان هذا كثيرًا من الكلمات الكبيرة. دعونا نبطئ ونفهم حقًا ما يحدث.

1.1 - هدفنا

علماء البيانات مشغولون. نريد إنتاج نماذج جيدة حقًا ، لكننا نفعل ذلك بطريقة فعالة ومثالية.

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

هدفنا خلال هذا المنشور هو فهم كيفية الاستفادة من الخوارزميات لأتمتة عملية ضبط النموذج.

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

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 1: مثال على مساحة البحث عن معلمات تشعبية ثلاثية الأبعاد. موقع صندوق الكنز هو الأمثل العالمي. صورة المؤلف.

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

لكن ماذا يحدث عندما لا يكون لدينا خريطة؟

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

مع هذا الإعداد ، دعنا نتحدث عن بعض الطرق المحتملة لاستكشاف هذه المساحة بكفاءة والعثور على بعض الكنوز!

1.2 - الحلول المحتملة

الطريقة الأصلية لضبط النموذج هي "يدوية" - سيقوم المهندس في الواقع باختبار العديد من التكوينات المختلفة يدويًا ومعرفة تركيبة المعلمات الفائقة التي تنتج أفضل نموذج. في حين أن هذه العملية مفيدة ، إلا أنها غير فعالة. يجب أن تكون هناك طريقة أفضل…

1.2.1 - بحث الشبكة (الأسوأ)

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

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 2: مثال على تخطيط بحث الشبكة. صورة المؤلف

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

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

باختصار، يخضع البحث الشبكي لعنة الأبعاد ويعيد حساب المعلومات بين التقييمات ، ولكنه لا يزال مستخدمًا على نطاق واسع.

1.2.2 - البحث العشوائي (جيد)

الخوارزمية الثانية لدينا هي البحث العشوائي. يحاول البحث العشوائي القيم العشوائية داخل شبكة يحددها المستخدم. على عكس البحث في الشبكة ، نحن لسنا ملزمين باختبار كل مجموعة ممكنة من المعلمات الفائقة ، مما يزيد من الكفاءة.

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 3: مثال على البحث العشوائي. صورة المؤلف.

وإليك حقيقة رائعة: سيجد البحث العشوائي (في المتوسط) أعلى تكوين للمعلمات الفائقة بنسبة 5٪ في الداخل 60 تكرار. ومع ذلك ، كما هو الحال مع البحث في الشبكة ، يجب عليك تحويل مساحة البحث الخاصة بك لتعكس الشكل الوظيفي لكل Hyperparam.

البحث العشوائي هو أساس جيد لتحسين المعامل الفائق.

1.2.3 - تحسين بايزي (أفضل)

المرشح الثالث لدينا هو أول خوارزمية التحسين المستند إلى النموذج المتسلسل (SMBO). الاختلاف المفاهيمي الرئيسي عن التقنيات السابقة هو نحن استخدام عمليات التشغيل السابقة بشكل متكرر لتحديد نقاط الاستكشاف المستقبلية.

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 4: مثال بايزي للتحسين - SRC. صورة المؤلف.

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

عادةً ما يتفوق تحسين Bayesian على البحث العشوائي ، إلا أنه يحتوي على بعض القيود الأساسية مثل طلب معلمات رقمية مفرطة.

1.2.4 - مقدرات Parzen القائمة على الأشجار (الأفضل)

أخيرًا ، لنتحدث عن نجم العرض: مقدرات بارزن القائمة على الشجرة (TPE). TPE هي خوارزمية SMBO أخرى تتفوق عادةً على التحسين الأساسي الأساسي ، لكن نقطة البيع الرئيسية هي أنها تتعامل مع علاقات المعامل الفائقة المعقدة عبر بنية شجرة.

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 5: مثال على الهيكل الهرمي لـ TPE - SRC. صورة المؤلف.

دعنا نستخدم الشكل 5 لفهم هذا هيكل الشجرة. نحن هنا نقوم بتدريب مصنف دعم آلة المتجهات (SVM). سنختبر حبتين: linear و RBF. A linear لا تأخذ kernel معلمة عرض ولكن RBF لذلك باستخدام قاموس متداخل يمكننا ترميز هذه البنية وبالتالي تقييد مساحة البحث.

يدعم TPE أيضًا المتغيرات الفئوية التي لا يدعمها تحسين Bayesian التقليدي.

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

بشكل عام ، TPE هو حل أمثل للمعلمات الفائقة قويًا وفعالًا حقًا.

الآن بعد أن أصبح لدينا فهم عام لبعض خوارزميات تحسين المعلمات الفائقة الشائعة ، فلنقم بغوص عميق في كيفية عمل TPE.

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

2.1 - التهيئة

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

بعد ذلك ، يجب علينا تحديد وظيفتنا الموضوعية، والتي تُستخدم لتقييم مدى "جودة" تركيبة المعلمات الفائقة لدينا. تتضمن بعض الأمثلة وظائف فقدان ML الكلاسيكية ، مثل RMSE أو AUC.

عظيم! الآن بعد أن أصبح لدينا مساحة بحث محدودة وطريقة لقياس النجاح ، نحن على استعداد لبدء البحث ...

2.2 - تحسين بايزي التكراري

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

2.2.0 - الإعداد المفاهيمي

الحيلة الأولى هي النمذجة ف (س | ص) بدلا من ف (ص | س) ...

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 6: الاحتمال الشرطي الذي يسعى TPE إلى حله. صورة المؤلف.

يبدو التحسين Bayesian نموذجًا نموذجيًا ف (ص | س) ، وهو احتمال قيمة دالة موضوعية (y) ، مع إعطاء المعلمات الفوقية (x). TPE يفعل العكس - يبدو أن النموذج ف (س | ص) ، وهو احتمال وجود المعلمات الفائقة (x), بالنظر إلى قيمة الوظيفة الموضوعية (y).

باختصار ، يحاول TPE العثور على أفضل قيم دالة موضوعية ، ثم تحديد المعلمات التشعبية المرتبطة.

مع هذا الإعداد المهم للغاية ، دعنا ندخل في الخوارزمية الفعلية.

2.2.1 - قسّم بياناتنا إلى مجموعات "جيدة" و "سيئة"

تذكر أن هدفنا هو العثور على أفضل قيم المعلمات الفائقة وفقًا لبعض الوظائف الموضوعية. لذا ، كيف يمكننا الاستفادة ف (س | ص) للقيام بذلك؟

أولاً ، يقسم TPE نقاط البيانات المرصودة لدينا إلى مجموعتين: خير، يعني ز (خ) ، و سيئة، يعني ل (خ). يتم تحديد الفاصل بين الخير والشر من خلال معلمة غاما يحددها المستخدم (γ) ، والتي تتوافق مع النسبة المئوية للوظيفة الموضوعية التي تقسم ملاحظاتنا (y*).

لذلك ، مع γ = 0.5 ، قيمة دالة الهدف التي تقسم ملاحظاتنا (y*) سيكون متوسط ​​النقاط التي تمت ملاحظتها.

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 7: تقسيم p (x | y) إلى مجموعتين. صورة المؤلف.

كما هو موضح في الشكل 7 ، يمكننا إضفاء الطابع الرسمي ص (س | ص) باستخدام الإطار أعلاه. وللتحرك مع تشبيه القرصان ...

منظور القراصنة: بالنظر إلى الأماكن التي اكتشفناها بالفعل ، يسرد l (x) الأماكن التي تحتوي على القليل جدًا من الكنوز و g (x) يسرد الأماكن التي تحتوي على الكثير من الكنوز.

2.2.32— احسب درجة "الوعد"

ثانيًا ، يحدد TPE كيف يجب علينا تقييم تركيبة معلمة تشعبية غير ملحوظة عبر درجة "واعدة".

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 8: تعريف درجة الوعد. صورة المؤلف.

يحدد الشكل 8 درجاتنا الواعدة (P) ، وهي مجرد نسبة مع المكونات التالية ...

  • البسط: احتمال ملاحظة مجموعة من المعلمات الفائقة (x) ، بالنظر إلى أن قيمة دالة الهدف المقابلة هي "خير".
  • المقام - صفة مشتركة - حالة: احتمال ملاحظة مجموعة من المعلمات الفائقة (x) ، بالنظر إلى أن قيمة دالة الهدف المقابلة هي "سيئة".

كلما زادت قيمة "الوعد" ، زادت احتمالية وجود معلماتنا الفائقة x ستنتج وظيفة موضوعية "جيدة".

منظور القراصنة: يُظهر الوعد مدى احتمالية احتواء موقع معين في تضاريسنا على الكثير من الكنوز.

ضع جانبًا سريعًا قبل الانتقال ، إذا كنت معتادًا على تحسين Bayesian ، فإن هذه المعادلة تعمل كوظيفة اكتساب وتتناسب مع التحسن المتوقع (EI).

2.2.3 - إنشاء تقديرات الكثافة الاحتمالية

ثالثًا ، تتطلع TPE إلى تقييم درجة "الواعدة" عبر نماذج الخليط. فكرة النماذج المختلطة هي أخذ توزيعات احتمالية متعددة وجمعها معًا باستخدام تركيبة خطية - SRC. ثم تُستخدم هذه التوزيعات الاحتمالية المجمعة لتطوير تقديرات كثافة الاحتمال.

بشكل عام ، عملية نمذجة الخليط هي ...

  1. حدد نوع توزيع نقاطنا. في حالتنا ، إذا كان متغيرنا فئويًا ، فإننا نستخدم توزيعًا قاطعًا معاد ترجيحه ، وإذا كان رقمه نستخدم التوزيع الغاوسي (أي العادي) أو التوزيع المنتظم.
  2. كرر كل نقطة وأدخل توزيعًا في تلك النقطة.
  3. اجمع كتلة جميع التوزيعات للحصول على تقدير كثافة الاحتمال.

لاحظ أن هذه العملية يتم تشغيلها بشكل فردي لكلتا المجموعتين ل (خ) و ز (خ).

لنستعرض مثالاً في الشكل 9 ...

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 9: مثال على التوزيعات الغوسية المقطوعة التي تناسب 3 ملاحظات للمعلمة الفائقة. صورة المؤلف.

لكل ملاحظة (النقاط الزرقاء على المحور السيني) ، نقوم بإنشاء توزيع طبيعي ~ N (μ، σ) ، حيث ...

  • ميكرومتر (مو) هو متوسط ​​التوزيع الطبيعي لدينا. القيمة هي موقع النقطة على طول المحور x.
  • σ (سيجما) هو الانحراف المعياري لتوزيعنا الطبيعي. قيمته هي المسافة إلى أقرب نقطة مجاورة.

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

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 10: مثال على تأثير الانحراف المعياري على شكل التوزيع الطبيعي. صورة المؤلف.

منظور القراصنة: NA - القراصنة ليسوا رائعين في استخدام النماذج المختلطة.

جانبًا سريعًا آخر قبل الانتقال: إذا كنت تقرأ الأدبيات ، فستلاحظ أن TPE يستخدم gaussians "المبتور" ، مما يعني ببساطة أن gaussians مقيد بالنطاق الذي نحدده في تكوين Hyperparameter الخاص بنا بدلاً من التوسع إلى +/- ما لا نهاية .

2.2.4 - تحديد النقطة التالية للاستكشاف!

دعونا نجمع هذه القطع معًا. حتى الآن ، 1) حصلنا على ملاحظات دالة موضوعية ، 2) حددنا صيغة "الواعدة" الخاصة بنا ، و 3) أنشأنا تقديرًا لكثافة الاحتمالية عبر نماذج الخليط بناءً على القيم السابقة. لدينا كل القطع لتقييم نقطة معينة!

خطوتنا الأولى هي إنشاء دالة متوسط ​​كثافة الاحتمال (PDF) لكليهما ز (س) و ل (خ).

المعلمة الفائقة نموذج ضبط المعلمة المفرطة ضبط التعلم الآلي لعلوم البيانات نموذج Sklearn mllib Spark hyperopt tree مقدر tpe Tree Based parzen esimtator mlflow databricks
الشكل 11: تراكب متوسط ​​كثافة الاحتمال معطى 3 نقاط ملحوظة. صورة المؤلف.

يظهر مثال للعملية في الشكل 11 - الخط الأحمر هو متوسط ​​PDF الخاص بنا وهو ببساطة مجموع كل ملفات PDF مقسومًا على عدد ملفات PDF.

باستخدام متوسط ​​PDF ، يمكننا الحصول على احتمال أي قيمة معلمة تشعبية (x) يكمن فى ز (س) or ل (خ).

على سبيل المثال ، لنفترض أن القيم المرصودة في الشكل 11 تنتمي إلى مجموعة "جيدة" ، ز (س). استنادًا إلى متوسط ​​ملف PDF الخاص بنا ، من غير المحتمل أن تنتمي قيمة المعامل التشعبي البالغة 3.9 أو 0.05 إلى المجموعة "الجيدة". على العكس من ذلك ، من المرجح جدًا أن تنتمي قيمة المعلمة التشعبية البالغة 1.2 ~ إلى المجموعة "الجيدة".

الآن هذا مجرد نصف الصورة. نطبق نفس المنهجية على المجموعة "السيئة" ، ل (خ). نظرًا لأننا نتطلع إلى تعظيم ز (س) / ل (خ), يجب أن تكون موجودة في النقاط الواعدة ز (س) مرتفع و ل (خ) منخفض.

رائع جدا، أليس كذلك؟

باستخدام هذه التوزيعات الاحتمالية ، يمكننا أخذ عينات من معلماتنا الفائقة الهيكلية الشجرية وإيجاد مجموعة المعلمات الفائقة التي تزيد من "الوعد" وتستحق بالتالي الاستكشاف.

منظور القراصنة: الموقع التالي الذي نحفره هو الموقع الذي يزيد من (احتمال وجود الكثير من الكنز) / (احتمال وجود كنز ضئيل).

الآن بعد أن عرفت كيف يعمل ، إليك بعض النصائح العملية لتطبيق TPE عبر الحزمة مفتوحة المصدر ، HyperOpt.

3.1 - هيكل تطبيق HyperOpt

بشكل عام ، هناك ثلاث خطوات رئيسية عند الاستفادة من HyperOpt ...

  1. تحديد مساحة البحث ، وهي فقط النطاقات والأشكال الوظيفية للمعلمات الفائقة التي تبحث عنها لتحسينها.
  2. تحديد وظيفة المناسب ، الذي يدعو الخاص بك model.fit() تعمل على تقسيم قطار / اختبار معين.
  3. تحديد وظيفة الهدف ، وهو أي من مقاييس الدقة الكلاسيكية ، مثل RMSE أو AUC.

لسوء الحظ ، لا تزال طرق الضبط الآلي هذه تتطلب مدخلات تصميمية من عالم البيانات - إنها ليست وجبة غداء مجانية تمامًا. ومع ذلك ، يعتبر TPE قويًا جدًا للتشخيص الخاطئ للمعلمات الفائقة (في حدود المعقول).

3.2 - نصائح وحيل

  • HyperOpt قابل للتوازي عبر كليهما أباتشي سبارك و MongoDB. إذا كنت تعمل باستخدام نوى متعددة ، سواء كانت في السحابة أو على جهازك المحلي ، فقد يؤدي ذلك إلى تقليل وقت التشغيل بشكل كبير.
  • إذا كنت تقوم بموازاة عملية الضبط عبر Apache Spark ، فاستخدم ملف SparkTrialsكائن لنماذج ML ذات العقدة الواحدة (sklearn) و a Trails كائن لنماذج ML المتوازية (MLlib). الرمز أدناه.
  • MLflow هي طريقة مفتوحة المصدر لتتبع تشغيل نموذجك. يتكامل بسهولة مع HyperOpt.
  • لا تضيق مساحة البحث في وقت مبكر جدًا. قد تكون بعض مجموعات المعلمات الفائقة فعالة بشكل مدهش.
  • قد يكون تحديد مساحة البحث أمرًا صعبًا ، خاصة إذا كنت لا تعرف ملف الشكل الوظيفي للمعلمات التشعبية الخاصة بك. ومع ذلك ، من التجربة الشخصية ، يعتبر TPE قويًا جدًا في تحديد هذه الأشكال الوظيفية بشكل خاطئ.
  • اختيار وظيفة موضوعية جيدة يقطع شوطا طويلا. في معظم الحالات ، لا يتم إنشاء الخطأ على قدم المساواة. إذا كان هناك نوع معين من الخطأ يمثل مشكلة أكبر ، فتأكد من بناء هذا المنطق في وظيفتك.

3.3— مثال على رمز

فيما يلي بعض التعليمات البرمجية لتشغيل HyperOpt بطريقة موزعة. تم اقتباسه من الكود الموجود في الكتاب ، هندسة التعلم الآلي في العمل - ها هي بوابة الريبو.

تتضمن بعض الميزات الرائعة لهذا المقتطف التوازي عبر أباتشي سبارك وتسجيل النموذج عبر MLflow. لاحظ أيضًا أن هذا المقتطف يحسن sklearn RandomForestRegressor - سيتعين عليك تغيير النموذج ووظيفة الملاءمة لتناسب احتياجاتك.

وها هو لديك - HyperOpt في كل مجدها!

لصياغة الأمل في النقاط الرئيسية ، دعنا نلخص بسرعة.

يعد ضبط Hyperparameter جزءًا ضروريًا من دورة حياة نموذج ML ، ولكنه يستغرق وقتًا طويلاً. تتفوق خوارزميات التحسين المستندة إلى النموذج المتسلسل (SMBO) في البحث عن المساحات الفوقية المعقدة للحصول على الأمثل ، ويمكن تطبيقها على ضبط المعلمة الفائقة. تعد أجهزة تقدير Parzen القائمة على الأشجار (TPE) وسيلة SMBO فعالة للغاية وتتفوق في الأداء على كل من تحسين Bayesian Optimization والبحث العشوائي.

يكرر TPE الخطوات التالية حتى معيار التوقف:

  1. قسّم النقاط المرصودة إلى مجموعات "جيدة" و "سيئة" ، وفقًا لبعض المعلمات الفائقة ، جاما.
  2. قم بملاءمة نموذج الخليط لكل من المجموعة "الجيدة" و "السيئة" لتطوير تقدير متوسط ​​كثافة الاحتمال.
  3. حدد النقطة التي تعمل على تحسين درجة "الوعد" ، والتي تعزز الخطوة 2 لتقدير احتمالية التواجد في المجموعتين "الجيد" و "السيئ".

أخيرًا ، لدينا مقتطف كود رائع حقًا يوضح كيفية موازنة HyperOpt عبر SparkTrials. كما أنه يسجل جميع التكرارات لدينا في MLflow.

HyperOpt تمت إعادة نشره من المصدر https://towardsdatascience.com/hyperopt-demystified-3e14006eb6fa؟source=rss—-7f60cf5620c9—4 عبر https://towardsdatascience.com/feed

<!–

->

الطابع الزمني:

اكثر من مستشارو Blockchain