أساسيات تعلم الآلة2012متوسط10 دقيقة قراءة

الأمثَلة البايزية التطبيقية لخوارزميات التعلم الآلي

Practical Bayesian Optimization of Machine Learning Algorithms

Snoek, J. · Larochelle, H. · Adams, R. P. — NeurIPS

المشكلة

أداء أي خوارزمية تعلم آلي يتوقف بشكل كبير على ضبط معاملاتها الفائقة: ، قوة التنظيم، عدد الطبقات، وغيرها. لكنّ هذا الضبط ظلّ لسنوات أقرب إلى «حرفة يدوية» تعتمد على خبرة الباحث وحدسه الشخصي. البحث الشبكي يجرّب كل التركيبات بشكل منهجي، لكنّ تكلفته تتضخم أُسِّياً مع كل معامل إضافي ويضيّع معظم الوقت في مناطق لا فائدة منها. البحث العشوائي أحسن حالاً لكنه يبقى أعمى — لا يتعلم شيئاً من التجارب السابقة. والمشكلة أنّ تجربة واحدة قد تعني شبكة عصبية لساعات، فكل محاولة فاشلة خسارة حقيقية. لم يكن هناك أسلوب تلقائي يستطيع منافسة خبير بشري في هذه المهمة — فضلاً عن التفوق عليه.

الإسهام

إطار عملي لأتمتة ضبط المعاملات الفائقة عبر الأمثَلة البايزية المبنية على العمليات الغاوسية. بيّنت الورقة أنّ اختيار نواة ماتيرن 5/2 بدل النواة الأُسِّية المربّعة (الأنعم من اللازم)، واستخدام معاملة بايزية كاملة لمعاملات عبر MCMC بدل التقديرات النقطية، يرفعان الأداء بفارق واضح. كذلك قدّمت مقياساً يقسم على زمن التجربة لمراعاة التكاليف غير المتساوية، وآلية مونت كارلو لتشغيل تجارب متوازية على عدة أنوية حوسبية في آنٍ واحد. النظام تفوّق على خبير بشري في ضبط شبكات CNN على CIFAR-10، وحقّق نتائج تُعادل أو تتجاوز البحث الشبكي في LDA وآلات المتجهات الداعمة المُهيكلة بعدد تجارب أقل بكثير.

الأثر

بعد هذه الورقة أصبحت الأمثَلة البايزية هي الطريقة المعتمدة لضبط المعاملات الفائقة في مجتمع التعلم الآلي. خرجت منها حزمة Spearmint وألهمت موجة كاملة من أدوات التعلم الآلي التلقائي: Hyperopt وAuto-WEKA وAuto-sklearn وGoogle Vizier. الفكرة الجوهرية — أنّ الآلة تستطيع أن تضبط الآلة وتُغني الباحث عن البحث الشبكي اليدوي — صارت من المسلّمات في ممارسة التعلم العميق الحديث على نطاق واسع.

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

الأمثَلة البايزية تتبع منطقاً مختلفاً تماماً: بعد كل حفرة، يجلس جيولوجي خبير ويدرس كل النتائج السابقة، ثم يرسم خريطة احتمالية تُقدِّر أين يُرجَّح وجود النفط. بعدها يختار موقع الحفرة التالية حيث تشير الخريطة إلى أعلى احتمال لنتيجة لم نكتشفها بعد. كل حفرة جديدة تُحسِّن الخريطة وتزيدها دقة. خلال عشر أو اثنتي عشرة محاولة فقط، يكتشف الجيولوجي بئراً غزيرة كان البحث الشبكي سيحتاج مئات المحاولات للوصول إليها.

المشكلة: ضبط المعاملات مُكلف وعشوائي

قبل أن تبدأ التدريب، هناك قرارات يجب أن تتخذها أولاً: كم يكون معدَّل التعلُّم؟ ما قوة ؟ كم عدد الوحدات في الطبقة المخفية؟ ما ؟ هذه هي المعاملات الفائقة — لا تتحكم فيما يتعلمه ، بل في طريقة تعلُّمه. اختيار سيئ لهذه المعاملات قد يُفشل بنية قوية، واختيار موفَّق قد يجعل نموذجاً بسيطاً يتفوّق على التوقعات.

بحلول 2012 تفاقمت المشكلة: النماذج أصبحت أعمق والتدريب أغلى، وكل تجربة لضبط المعاملات قد تستغرق ساعات أو أياماً. الطريقة السائدة — البحث الشبكي — تجرّب كل تركيبة على شبكة محددة مسبقاً. تخيّل أنّ لديك 5 معاملات و10 قيم لكل منها: هذا يعني 105=100,00010^5 = 100{,}000 تجربة. حتى البحث العشوائي الذي أثبت بيرغسترا وبنجيو أنه أكفأ، يظل يعمل «بعيون مغمضة» — لا يستفيد ممّا جرّبه سابقاً. ما كان ينقص الميدان هو طريقة تتعلم من كل تجربة سابقة وتوجّه التجارب القادمة نحو المناطق الأعلى احتمالاً للنجاح.

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

الفكرة الأساسية: نموذج بديل يتعلّم من كل تجربة

الأمثَلة البايزية تتعامل مع دالة الأداء — العلاقة بين المعاملات الفائقة وخطأ التحقق — على أنها صندوق أسود مجهول. لا نحتاج أن نعرف بنيتها الداخلية ولا أن نحسب ؛ كل ما نراه هو: «جرّبنا هذه الإعدادات فحصلنا على هذا الخطأ.» الآلية تعمل بحلقة من ثلاث خطوات:

  1. ابنِ نموذجاً بديلاً يُقرّب دالة الهدف بناءً على كل ما جرّبناه حتى الآن. هذه الورقة تستخدم العملية الغاوسية، وميزتها أنها لا تعطيك توقعاً فقط بل أيضاً مقدار ثقتها — مثلاً: «أقدّر الخطأ هنا بنحو 0.15 ± 0.03.»

  2. اختر التجربة التالية عبر دالة اكتساب توازن بين هدفين متعارضين: — جرّب المنطقة التي يتوقع فيها النموذج أداءً جيداً، و — جرّب المنطقة التي لا يعرف عنها شيئاً، فربما تخبّئ مفاجأة.

  3. نفِّذ التجربة، سجّل النتيجة، حدِّث ، ثم ارجع للخطوة الأولى.

سرّ الكفاءة هنا أنّ استعلام النموذج البديل لا يكلّف إلا ميلي ثوانٍ، بينما التجربة الحقيقية قد تأخذ ساعات. فبدلاً من أن تضيّع الحوسبة في التجريب الأعمى، تنفقها في التفكير الذكي أين تجرّب.

افتح في المختبر
تابع حلقة الأمثَلة البايزية خطوة بخطوة. لاحظ كيف يتحسّن تقدير النموذج البديل بعد كل تجربة، وكيف تنتقل دالة الاكتساب بين مناطق الاستكشاف ومناطق الاستثمار.
تستيقظ التجربة عند وصولك…

النموذج البديل: العمليات الغاوسية

لفهم العملية الغاوسية، تخيّل أنك بدل أن ترسم منحنى واحداً عبر البيانات، ترسم سحابة من المنحنيات المحتملة. هذه السحابة هي على الدوال وليس على أرقام مفردة. في الأماكن التي جمعت فيها بيانات كثيرة تتكاثف السحابة وتضيق — أي أنّ ثقتك عالية. وفي الأماكن التي لم تجرّبها تتّسع السحابة — أي أنّ هناك غموضاً يستحق الاستكشاف.

من الناحية الرياضية، تُعرَّف العملية الغاوسية بدالة متوسط m(x)m(x) ودالة K(x,x)K(x, x') تصف العلاقة بين النقاط. بعد أن نرصد NN إعداد {xn,yn}\{x_n, y_n\} حيث yny_n خطأ التحقق، يعطينا للعملية الغاوسية توقعاً μ(x)\mu(x) وتبايناً σ2(x)\sigma^2(x) عند أي نقطة جديدة — وكلاهما يُحسَب بصيغة مغلقة عبر الجبر الخطي. بعبارة مبسّطة: μ(x)\mu(x) هو «أفضل تخميننا للخطأ عند هذا الإعداد» وσ2(x)\sigma^2(x) هو «مقدار جهلنا بهذه المنطقة.»

افتح في المختبر
أضف نقاط ملاحظة بالنقر وراقب كيف يتحدّث التوزيع اللاحق. المنطقة المظلّلة تمثّل نطاق عدم اليقين — لاحظ كيف تضيق قرب النقاط المرصودة وتبقى عريضة في المناطق التي لم تُستكشف بعد.
تستيقظ التجربة عند وصولك…

اختيار النواة: ماتيرن 5/2 مقابل الأُسِّية المربّعة

النواة هي التي تحدّد «شخصية» العملية الغاوسية — أي ما نوع الدوال التي تعتبرها معقولة. النواة الأُسِّية المربّعة (SE) تفترض أنّ الدالة ناعمة إلى ما لا نهاية، فتُنتج منحنيات ملساء ومتدحرجة. لكنّ أسطح المعاملات الفائقة في الواقع ليست بهذه النعومة — فيها حوافّ حادة وهضاب مسطحة ومنحدرات مفاجئة.

نواة ماتيرن 5/2 أقرب للواقع: تفترض فقط أنّ الدالة قابلة للاشتقاق مرتين، فتسمح بأشكال أخشن تُشبه ما نراه فعلاً عند تغيير المعاملات الفائقة. كلتا النواتين تستخدمان آلية تحديد الملاءمة التلقائي (ARD) التي تتعلّم مقياس طول مستقلاً θd\theta_d لكل بُعد — وهذا يُمكّن العملية الغاوسية من اكتشاف المعاملات الأكثر تأثيراً على النتيجة بنفسها.

KM52(x,x)=θ0(1+5r2+53r2)exp ⁣(5r2)K_{\text{M52}}(x, x') = \theta_0 \left(1 + \sqrt{5\,r^2} + \tfrac{5}{3}\,r^2\right) \exp\!\left(-\sqrt{5\,r^2}\right)
نواة ماتيرن 5/2 مع تحديد الملاءمة التلقائيr² = Σ (x_d − x'_d)² / θ_d² هي المسافة الموزونة حيث لكل بُعد مقياس طول خاص به. θ₀ يضبط السعة الإجمالية. هذه النواة تُنتج دوالاً خشنة لكن متّصلة — موضع وسط واقعي بين النعومة المفرطة والخشونة العشوائية، وهو ما يُطابق طبيعة أسطح المعاملات الفائقة.
افتح في المختبر
قارن بين عيّنات الدوال من النواة الأُسِّية المربّعة الملساء ونواة ماتيرن 5/2 الأخشن. بدّل بينهما ولاحظ كيف تتغيّر «تخيّلات» العملية الغاوسية بتغيّر النواة.
تستيقظ التجربة عند وصولك…

المعاملة البايزية الكاملة: التكامل على معاملات العملية الغاوسية

هنا تأتي نقطة دقيقة: العملية الغاوسية نفسها لديها معاملات تحتاج ضبطاً — مقاييس الطول θ1:D\theta_{1:D} والسعة θ0\theta_0 و ν\nu. الأعمال السابقة كانت تلجأ إلى تقدير نقطي واحد لهذه المعاملات بأعظمة الأرجحية الهامشية. لكنّ المشكلة أنّ البيانات في مسائل ضبط المعاملات قليلة عادةً، والتقدير النقطي مع بيانات قليلة قد يكون بعيداً عن الصواب — فيقود المُحسِّن إلى استكشاف المنطقة الخطأ بثقة مفرطة.

الحل الذي اقترحه سنوك وزملاؤه: بدلاً من الاعتماد على قيمة واحدة، نأخذ عيّنات من التوزيع اللاحق لهذه المعاملات عبر . هكذا تصبح متوسطاً على تشكيلات متعددة ومعقولة للعملية الغاوسية، فيكون القرار أمتن وأكثر تحوّطاً — كأنك تستشير فريقاً من الخبراء بدل أن تعتمد على رأي واحد.

a^(x)=a(x;θ)  p(θD)dθ\hat{a}(x) = \int a(x;\, \theta)\; p(\theta \mid \mathcal{D})\, d\theta
دالة الاكتساب المُتكاملةبدل الاعتماد على إعداد واحد للعملية الغاوسية، نحسب متوسط دالة الاكتساب على التوزيع اللاحق لمعاملاتها θ. عملياً نقرّب هذا التكامل بعيّنات MCMC: نسحب θ₁, θ₂, …, θ_S من p(θ|D)، ونحسب a(x; θₛ) لكل عيّنة، ثم نأخذ المتوسط.

دالة الاكتساب: التحسُّن المتوقع

دالة الاكتساب هي البوصلة التي توجّه عملية البحث — تنظر في ما تعرفه العملية الغاوسية حالياً وتقرّر أين نجرّب بعد ذلك. التحسُّن المتوقع (EI) يطرح سؤالاً بسيطاً: «كم من التحسُّن نتوقع أن نكسبه فوق أفضل نتيجة وصلنا إليها إذا جرّبنا النقطة xx؟»

حين يتوقع النموذج خطأً منخفضاً بثقة عالية في منطقة ما، يكون التحسُّن المتوقع مرتفعاً — وهذا هو جانب الاستثمار. وحين يكون النموذج شديد الغموض حول منطقة ما، يرتفع التحسُّن المتوقع أيضاً لأنّ المفاجآت واردة — وهذا هو جانب الاستكشاف. الجميل في التحسُّن المتوقع أنه يوازن بين الجانبين تلقائياً بلا معاملات ضبط إضافية — بخلاف دالة GP-UCB التي تحتاج لضبط κ\kappa يدوياً.

aEI(x)=σ(x)[γ(x)Φ(γ(x))+N(γ(x);0,1)]a_{\text{EI}}(x) = \sigma(x)\bigl[\gamma(x)\,\Phi(\gamma(x)) + \mathcal{N}(\gamma(x);\,0,1)\bigr]
التحسُّن المتوقعγ(x) = (f_best − μ(x)) / σ(x). كلّما انخفض المتوسط المتوقع μ(x) كثيراً عن أفضل قيمة مرصودة، كبُر γ وزاد ميل التحسُّن المتوقع نحو الاستثمار. وكلّما كبُر σ(x) — أي زاد الغموض — ازداد الميل نحو الاستكشاف. Φ هي دالة التوزيع التراكمي الطبيعي المعياري.
افتح في المختبر
اللوحة العلوية تعرض التوزيع اللاحق للعملية الغاوسية، والسفلية تعرض دالة التحسُّن المتوقع. أضف ملاحظات بالنقر وراقب كيف تتأرجح دالة الاكتساب بين استكشاف المناطق المجهولة واستثمار المناطق الواعدة.
تستيقظ التجربة عند وصولك…

ابتكارات عملية: مراعاة التكلفة والتوازي

الأمثَلة البايزية بصيغتها الأساسية تفترض أنّ كل تجربة تكلّف الشيء نفسه وأنّ التجارب تُنفَّذ واحدة تلو الأخرى. سنوك وزملاؤه عالجوا هذين القيدين بابتكارين عمليين:

التحسُّن المتوقع في الثانية. ليست كل التجارب متساوية الزمن — تدريب شبكة صغيرة يأخذ دقائق بينما شبكة كبيرة تأخذ ساعات. الفكرة بسيطة: نبني عملية غاوسية ثانية تتوقع زمن التجربة lnc(x)\ln c(x)، ثم نقسم التحسُّن المتوقع على الزمن المتوقع. النتيجة أنّ المُحسِّن يُفضّل الإعدادات الواعدة والسريعة معاً — تماماً كمستثمر ذكي ينظر إلى العائد وإلى الوقت اللازم لتحقيقه.

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

a^(x)=RJa(x;D,{(x~j,y~j)})  p(y~1:Jx~1:J,D)  dy~1:J\hat{a}(x) = \int_{\mathbb{R}^J} a(x;\,\mathcal{D},\,\{(\tilde{x}_j, \tilde{y}_j)\}) \; p(\tilde{y}_{1:J} \mid \tilde{x}_{1:J},\,\mathcal{D})\; d\tilde{y}_{1:J}
دالة اكتساب مونت كارلو مع تقييمات قيد الانتظارنكامل دالة الاكتساب على كل النتائج المحتملة للتجارب التي لم تنتهِ بعد. عملياً نسحب «تخيّلات» ỹ من التوزيع اللاحق ونحسب متوسط دالة الاكتساب عليها. هذا يضمن أن تكون التجارب المتوازية متكاملة ومتنوّعة بدل أن تكون نسخاً متكررة.
افتح في المختبر
شاهد كيف يتخيّل المُحسِّن نتائج التجارب التي لم تنتهِ بعد. كل تخيّل ينتج سطح اكتساب مختلفاً، ومتوسط هذه الأسطح هو ما يوجّه اختيار التجربة التالية.
تستيقظ التجربة عند وصولك…

النتائج: التفوّق على الخبير البشري

اختُبر النظام على أربع مسائل مختلفة، وكانت النتائج لافتة:

  • معيار Branin-Hoo: وصلت الأمثَلة البايزية مع MCMC إلى القيمة الصغرى بأقل من نصف عدد التجارب التي احتاجتها خوارزمية Tree Parzen. والفارق بين المعاملة البايزية الكاملة والتقدير النقطي كان واضحاً.

  • نموذج LDA: حقّقت الأمثَلة البايزية نتائج تُعادل بحثاً شبكياً من 288 نقطة أو تتجاوزه — بأقل من 30 تجربة فقط. النسخة المتوازية أنجزت ذلك في زمن أقصر بكثير.

  • آلات المتجهات الداعمة المُهيكلة (M3E): التحسُّن المتوقع في الثانية اكتشف بنفسه أنّ البدء بتفاوتات فضفاضة ثم تضييقها تدريجياً يوفّر الوقت — وهي استراتيجية يستخدمها الخبراء بالحدس لكنّ البحث الشبكي عاجز عنها.

  • شبكات على CIFAR-10: النتيجة الأبرز. ضبطت الأمثَلة البايزية 9 معاملات فائقة لشبكة التفافية وحقّقت خطأ اختبار 14.98% — أفضل بأكثر من 3% من خبير بشري خصّص وقتاً طويلاً للضبط اليدوي، وسجّلت أفضل نتيجة على هذا المعيار في ذلك الوقت.

الفكرة في كود برمجي

حلقة أمثَلة بايزية مبسّطةpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import numpy as np
from scipy.stats import norm

def expected_improvement(X, X_obs, Y_obs, gp_model):
    """احسب التحسُّن المتوقع عند كل نقطة مرشحة في X."""
    mu, sigma = gp_model.predict(X, return_std=True)
    f_best = Y_obs.min()
    with np.errstate(divide='ignore'):
        gamma = (f_best - mu) / sigma
        ei = sigma * (gamma * norm.cdf(gamma) + norm.pdf(gamma))
        ei[sigma == 0.0] = 0.0
    return ei

def bayesian_optimization(f, bounds, n_iter=25):
    """قلِّل f(x) على النطاق باستخدام الأمثَلة البايزية."""
    from sklearn.gaussian_process import GaussianProcessRegressor
    from sklearn.gaussian_process.kernels import Matern

    # هيّئ بنقطتين عشوائيتين
    X_obs = np.random.uniform(bounds[:, 0], bounds[:, 1], (2, bounds.shape[0]))
    Y_obs = np.array([f(x) for x in X_obs])

    gp = GaussianProcessRegressor(kernel=Matern(nu=2.5), n_restarts_optimizer=5)

    for i in range(n_iter):
        gp.fit(X_obs, Y_obs)

        # حسِّن التحسُّن المتوقع على شبكة من المرشحين
        X_candidates = np.random.uniform(bounds[:, 0], bounds[:, 1], (10000, bounds.shape[0]))
        ei = expected_improvement(X_candidates, X_obs, Y_obs, gp)
        x_next = X_candidates[ei.argmax()]

        # قيِّم الدالة المُكلفة
        y_next = f(x_next)

        # حدِّث الملاحظات
        X_obs = np.vstack([X_obs, x_next])
        Y_obs = np.append(Y_obs, y_next)

    return X_obs[Y_obs.argmin()], Y_obs.min()

الإرث: من Spearmint إلى التعلم الآلي التلقائي

  1. 2012

    هذه الورقة + Spearmint

    نُشرت الورقة في NeurIPS وأُطلقت معها مكتبة Spearmint — أول أداة أمثَلة بايزية للمعاملات الفائقة تنتشر على نطاق واسع. حقّقت نتائج تتفوّق على الخبراء في ضبط الشبكات الالتفافية.

  2. 2013

    Auto-WEKA

    وسّع ثورنتون وزملاؤه الأمثَلة البايزية لتشمل اختيار الخوارزمية *ومعاملاتها الفائقة* في آنٍ واحد — أول نظام يدمج بين اختيار الخوارزمية وضبط معاملاتها الفائقة (CASH).

  3. 2015

    أمثَلة بايزية قابلة للتوسّع بالشبكات العميقة

    استبدل سنوك وزملاؤه العملية الغاوسية بشبكة عصبية بايزية للتعامل مع فضاءات معاملات أعلى أبعاداً، وتجاوزوا بذلك التعقيد التكعيبي الذي يحدّ من قابلية التوسع.

  4. 2016

    Auto-sklearn

    بنى فيورر وزملاؤه نظام AutoML متكاملاً يعتمد على الأمثَلة البايزية مع تهيئة أوّلية عبر التعلم الفوقي، وفاز بأول مسابقة للتعلم الآلي التلقائي.

  5. 2017

    Google Vizier

    بنت Google منصة أمثَلة بايزية داخلية تُستخدم على مستوى الشركة لضبط كل شيء — من بنى الشبكات العصبية إلى معاملات أنظمة عرض الإعلانات.

  6. 2018

    Hyperband وBOHB

    جمع لي وزملاؤه بين الإيقاف المبكر (Hyperband) والأمثَلة البايزية (BOHB)، فحصلوا على مزايا الاثنين معاً — بحث ذكي مع توزيع كفؤ للموارد الحوسبية.

  7. 2020

    BoTorch وAx

    أطلقت Meta مكتبة BoTorch للأمثَلة البايزية المبنية على PyTorch ومنصة Ax للتجارب التكيّفية، وبذلك أصبحت الأمثَلة المبنية على العمليات الغاوسية جزءاً من بيئات الإنتاج الفعلية.

الفكرة الأساسية التي رسّختها هذه الورقة هي أنّ ضبط المعاملات الفائقة مسألة بحدّ ذاتها — ويمكن حلّها بكفاءة عالية عبر نموذج احتمالي يتعلّم من كل تجربة. اليوم، كلّما أطلق باحث عملية مسح للمعاملات الفائقة عبر Optuna أو Ray Tune أو Weights & Biases وحصل على نتائج في ساعات بدل أسابيع، فإنّ الجذور الفكرية تعود إلى هذه الورقة.

المرجعSnoek, Larochelle, Adams. Practical Bayesian Optimization of Machine Learning Algorithms. NeurIPS, 2012.

مصطلحات هذه الورقة