HyperAIHyperAI

Command Palette

Search for a command to run...

كيف تُعلّم روبوتًا بسيطًا بتحمّل الطائرة المُسيرة دون برمجة كل حركة؟ إليك رحلة من الصفر إلى 100 في تعلم التقويم العميق

كيف تعلّم روبوتًا أن يهبط بطائرة مُسيرة دون برمجة كل حركة؟ هذا ما استكشفته خلال أسابيع من العمل على لعبة افتراضية، حيث يتعلم طيار مُسيرة (افتراضيًا) الهبوط على منصة عبر التجربة والخطأ، تمامًا كما تعلمت أنت ركوب الدراجة. هذه التقنية تُعرف بـ "التعلم المعزز" (Reinforcement Learning)، وهي تختلف جذريًا عن أساليب التعلم الآلي الأخرى. بدلًا من عرض آلاف الأمثلة للهبوط الصحيح، نُقدّم للذكاء الاصطناعي ملاحظات تغذية راجعة: "جرب أن تكون أكثر لطفًا في المرة القادمة"، أو "أه، اصطدمت! لا تكرر هذا المرة". من خلال مئات المحاولات، يتعلم الذكاء الاصطناعي ما ينجح وما يفشل. في هذا المقال، أُوثّق رحلتي من مبادئ التعلم المعزز إلى بناء نظام عملي يُعلّم الطائرة المُسيرة الهبوط (بشكلٍ مُتزايد). سأعرض النجاحات، الفشل، والسلوكيات الغريبة التي اضطررت لتصحيحها. النظام يتكوّن من عناصر رئيسية: الوكيل (الذكاء الاصطناعي)، البيئة (اللعبة الافتراضية)، السياسة (الخطة التي يتبناها الوكيل)، الحالة (ما يراه الوكيل في لحظة معينة)، العملية (ما يفعله)، والعوائد (النظام المُكافئ). لتمثيل هذه المفاهيم، صمّمت لعبة "طائرة توصيل" حيث يجب على الطائرة الهبوط بدقة على منصة، مع شروط: الاقتراب من المنصة، السرعة البطيئة، والاتجاه الأفقي. أي أن الهبوط يشبه "الوقوف في مكان محدد بسرعة منخفضة وبدون انقلاب". الحالة التي يراها الوكيل تتكون من 15 قيمة مستمرة (مثل الموضع، السرعة، الاتجاه، المسافة إلى المنصة)، وتم تطبيعها لتسهيل التدريب. الفعل مُحَدَّد بثلاثة دفعات (رئيسية، يسرى، يُسْرى)، كل منها يُقرّر بشكل مستقل عبر توزيع ثنائي (مُشغّل أو مُطفأ). السياسة (الخطة) تُبنى باستخدام شبكة عصبية عميقة، تُدخل الحالة كمتجه، وتُخرج احتمالات تشغيل كل دفع. يتم اختيار الفعل عبر عينة من التوزيع الثنائي، مما يسمح بالتعلم التدريجي. أصعب جزء في هذا النظام هو تصميم وظيفة المكافأة. إذا كانت غير دقيقة، يُمكن للذكاء الاصطناعي أن يكتشف طرقًا غير مرغوبة للحصول على مكافآت (ما يُعرف بـ "اختراق المكافأة" - Reward Hacking). في نسخة مبكرة، منحت المكافأة للطائرة عندما تكون قريبة من المنصة وبطيئة، فتعلم أن يبقى معلقًا فوقها دون الهبوط، لأنه يحصل على مكافآت مستمرة دون خطر. بعد تحليل، وجدت أن المشكلة تكمن في أن المكافأة تعتمد فقط على الحالة الحالية، وليس على التغير في الحالة. فعندما تمر الطائرة من فوق المنصة إلى تحتها، تبقى الحالة "مقبولة" من حيث المكافأة، لكنها لم تُكمل المهمة. لحل هذه المشكلة، اقترح استخدام مكافآت تعتمد على الانتقال بين الحالتين (من s إلى s')، وليس فقط على الحالة الحالية. هذا يُمكّن النظام من التمييز بين "الهبوط" و"الاستقرار تحت المنصة". كما استخدمت تقنية "الميزة" (Advantage) لتحسين التدريب: بدلًا من استخدام المكافأة الخام، أحسب الفرق بين المكافأة الحالية ومتوسط المكافآت، مما يُقلل التذبذب ويعزز التعلم. النتائج الحالية مُرضية جزئيًا: الطائرة تُتعلم الهبوط في بعض المحاولات، لكنها لا تزال تُظهر سلوكًا مُستقرًا تحت المنصة. هذا يُظهر أن التعلم المعزز لا يزال يفتقر إلى فهم ديناميكي للسياق الزمني، ويحتاج إلى تحسينات في تصميم المكافآت. في المقال القادم، سأستعرض تقنيات مثل Actor-Critic التي تدمج بين التقدير والسياسة، وتحسّن من قدرة النظام على فهم التسلسل الزمني، مما يُقلل من فرص الاستغلال. التعلم المعزز ليس فقط أداة تقنية، بل تجربة تُعلّمنا أن "ما تكافئه، سيتعلمه".

الروابط ذات الصلة

كيف تُعلّم روبوتًا بسيطًا بتحمّل الطائرة المُسيرة دون برمجة كل حركة؟ إليك رحلة من الصفر إلى 100 في تعلم التقويم العميق | القصص الشائعة | HyperAI