ML 101
M13 · L03
البحث التطوّري

تصميم الـ fitness function

الـ fitness function (دالة الملاءمة) مش تفصيلة في التنفيذ. دي صياغة المسألة نفسها — وتصميمها الوحش هو أكتر سبب منتشر لفشل الـ genetic algorithm.

01 / 13
ML 101
M13 · L03
رقم واحد

كل اللي يقدر يشوفه

البحث مبيشوفش مسألتك. بيشوف الرقم الواحد اللي الـ fitness بترجّعه لكل candidate، وبعدين الـ selection بيكتّر أي حاجة بتاخد رقم عالي. ودي الآلية كلها.

ده جه منين
Holland (1975) حط الإطار اللي فيه الـ selection بيشتغل على population على حسب عائد متقاس، وكتاب Goldberg (1989) هو المعالجة المرجعية اللي جت بعده.
02 / 13
ML 101
M13 · L03
الغلطة الكلاسيكية

كافئ النتيجة

وإنت بتطوّر duty cycle لـ sensor، هيبقى مغري تكافئ «سيب الراديو مقفول» لأنك عارف إنه بيصرف البطارية. وهتاخد ده بالظبط: راديو مقفول، وبطارية كويسة، ومفيش بيانات.

الحل
قيس القرايات المفيدة اللي وصلت لكل شحنة. فالـ fitness function اللي بتشفّر طريقتك المفترضة متقدرش غير إنها تعيد اكتشاف طريقتك.
03 / 13
ML 101
M13 · L03
مثال محلول

توزيع الـ sensors

  • 40 موقع مرشّح على 200 خلية grid، لكل موقع مجموعة تغطية وتكلفة
  • الـ candidate هو string من 40 bit — الـ bit i بيساوي 1 لو الموقع i اتستخدم
  • أول fitness: الخلايا المتغطّية. فالكسبان بيختار تقريبًا كل حاجة
  • مفيش حاجة في الـ fitness دي بتجيب سيرة الفلوس، فالبحث عمره ما اهتم بيها
04 / 13
ML 101
M13 · L03
هدفين

الـ weighted sums

اطوي الأهداف في رقم واحد بـ weights بتختارها مسبقًا — بعد ما تعمل rescaling لكل هدف، وإلا الوحدات بتاعتك هي اللي هتقرّر الـ weights بدالك.

fitness الـ weighted sum
F(\mathbf{x}) = \sum_{i=1}^{m} w_i \, \tilde{f}_i(\mathbf{x})
05 / 13
ML 101
M13 · L03
رفض الطي

الـ Pareto front

  • الحل a بيهيمن على b لما ميبقاش أوحش في أي حتة ويبقى أحسن في حتة ما
  • الحلول اللي مفيش حاجة بتهيمن عليها بتكوّن الـ non-dominated set
  • رجّع انتشار من الـ trade-offs، وبعدين سيب البني آدم يختار
  • الـ weighted sum عمره ما بيوصل للأجزاء الـ concave من سطح الـ trade-off
06 / 13
ML 101
M13 · L03
Deb et al. (2002)

نظرة على NSGA-II

  • الـ non-dominated sorting — قسّم الـ population لـ fronts؛ الـ rank الأقل بيكسب
  • الـ crowding distance — الفيصل عند التعادل جوه الـ front؛ بيفضّل المناطق المتفرّقة فالـ front بيفضل منتشر
  • الـ elitism بالدمج — اجمع الـ parents والأبناء، وبعدين رتّب، وبعدين قُص
07 / 13
ML 101
M13 · L03
حدود صارمة

التعامل مع الـ constraints

  • الـ penalty — اطرح حد بيكبر مع الانتهاك؛ فالـ genes اللي مش feasible بتنجو
  • الـ rejection — أوحش fitness ممكنة. مالهاش لازمة لما الحلول الـ feasible تبقى نادرة
  • الـ repair — خلّيه feasible، وبعدين قيّمه
  • operators بتحافظ على الـ feasibility — مينفعش يتبني ابن مش صالح
  • بلّغ عن الـ feasibility لوحدها بعيد عن الـ fitness
08 / 13
ML 101
M13 · L03
ضياع التنوّع

الـ premature convergence

crossover بين نسختين شبه متطابقين بيرجّع نفس الفرد، فمبيفضلش غير الـ mutation للجديد — random walk بطيء. ومن بره بيبان زي run خلصت.

  • أحسن fitness ناقص المتوسط بتنهار بدري
  • عدد الـ genotypes المختلفة بيقع بحدّة
  • ترددات الـ alleles لكل gene بتتشبّع عند 0 أو 1
09 / 13
ML 101
M13 · L03
إجراءات مضادة

خلّي الـ population متنوّعة

  • قلّل الـ selection pressure — tournaments أصغر، أو rank selection
  • علّي الـ mutation، بشكل adaptive لما مقياس التنوّع ينزل
  • الـ fitness sharing — الزحمة بتتعاقب على إنها زحمة (Goldberg، 1989)
  • الـ crowding replacement — الابن بياخد مكان الأشبه بيه
  • الـ restarts والجزر — احفظ أرشيف elitist، وسيب الـ subpopulations تبعد عن بعض
10 / 13
ML 101
M13 · L03
الوقت بيروح فين

الميزانية بالتقييمات

100 فرد على 200 جيل يساوي 20,000 تقييم. وبثانيتين لكل تقييم ده أكتر من إحداشر ساعة على core واحد — حساب بيتعمل قبل الـ run مش بعدها.

ميزانية التقييمات
N_{\text{eval}} = P \cdot G
11 / 13
ML 101
اختبار سريع

شوف إيه اللي ثبت

أربع أسئلة من الدرس ده. جاوب عشان تشوف السبب — الشرح بيظهر سواء جاوبت صح أو غلط. ونتيجتك مش بتتحفظ.

السؤال 1 من 0
النتيجة 0/0

12 / 13
ML 101
أهم النقط
ملخص

أهم النقط

  • الـ fitness هي صياغة المسألة — اتّهمها الأول
  • كافئ النتيجة، مش السلوك اللي إنت مفترض إنه بيطلّعها
  • الـ weighted sums محتاجة rescaling؛ وNSGA-II بترجّع front بدل كده
  • الـ constraints: penalty، أو rejection، أو repair، أو operators متقدرش تكسرها
  • راقب التنوّع، وقاوم ضياعه قبل ما الـ run تبطّل تتحسّن
  • الـ caching والـ subsampling والتوازي — فالتقييمات هي اللي بتكلّفك
13 / 13