مرة واحدة ، واستكشاف أعماق الإنترنت ، عثرت على شريط فيديو حيث يقوم شخص بتدريب ثعبان باستخدام خوارزمية وراثية. وأردت نفس الشيء. ولكن مجرد اتخاذ كل نفس والكتابة في الثعبان لن يكون مثيرا للاهتمام. وقررت استخدام نهج أكثر حداثة لأنظمة وكلاء التدريب ، وهي Q-network. ولكن لنبدأ من البداية.
التدريب التعزيز
في التعلم الآلي ، يختلف RL (التعلم المعزز) تمامًا عن المجالات الأخرى. الفرق هو أن خوارزمية ML الكلاسيكية تتعلم من البيانات الجاهزة ، في حين أن RL ، إذا جاز التعبير ، تنشئ هذه البيانات لنفسها. فكرة RL هي أنه بالإضافة إلى الخوارزمية نفسها ، والتي تسمى الوكيل ، هناك بيئة يتم فيها وضع هذا العامل. في كل مرحلة ، يجب على الوكيل القيام ببعض الإجراءات (الإجراء) ، وتستجيب البيئة بمكافأة (مكافأة) وحالتها (حالتها) ، على أساسها يقوم الوكيل بالإجراء.
DQN
يجب أن يكون هناك تفسير لكيفية عمل الخوارزمية ، لكنني سأترك رابطًا للمكان الذي يفسره الأشخاص الأذكياء.
تنفيذ الأفعى
بعد أن اكتشفنا c ، نحتاج إلى تهيئة بيئة نضع فيها الوكيل. لحسن الحظ ، ليست هناك حاجة لإعادة اختراع العجلة ، لأن شركة مثل open-a قد كتبت بالفعل مكتبة الصالة الرياضية ، والتي يمكنك من خلالها كتابة بيئتك الخاصة. في المكتبة هم بالفعل بأعداد كبيرة. من ألعاب أتاري البسيطة إلى النماذج ثلاثية الأبعاد المعقدة. ولكن من بين كل هذا لا يوجد ثعبان. لذلك ، ننتقل إلى إنشائها.
لن أصف كل لحظات خلق بيئة في صالة الألعاب الرياضية ، لكنني سأعرض فقط الفئة الرئيسية ، والتي يلزم فيها تنفيذ العديد من الوظائف.
import gym class Env(gym.Env): def __init__(self): pass def step(self, action): """ . , """ def reset(self): """ """ def render(self, mode='human'): """ """
ولكن لتنفيذ هذه الوظائف ، نحتاج إلى التوصل إلى نظام من المكافآت وبأي شكل سنقدم معلومات حول البيئة.
دولة
في الفيديو ، أعطى الرجل الأفعى المسافة إلى الحائط ، ثعبان والتفاح في 8 اتجاهات. هذه هي 24 أرقام. قررت تقليل كمية البيانات ، لكن تعقيدها قليلاً. أولاً ، سوف أقوم بدمج المسافة إلى الجدران مع المسافة إلى الثعبان. ببساطة ، سنقول لها المسافة إلى أقرب كائن يمكن أن يقتل في حادث تصادم. ثانياً ، سيكون هناك 3 اتجاهات فقط وستعتمد على اتجاه حركة الثعبان. على سبيل المثال ، عند بدء التشغيل ، يبدو الثعبان مرتفعًا ، لذلك سنعلمه المسافة إلى الجدران العلوية واليسرى واليمنى. ولكن عندما يتحول رأس الأفعى إلى اليمين ، فإننا سنبلغ بالفعل عن المسافة إلى الجدران اليمنى والعلوية والسفلية. من أجل البساطة ، سأقدم صورة.

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

جائزة
إذا تمكنت من التوصل إلى نوع من الميزات مع الحالة وتأمل أن تتوصل الشبكة العصبية إليها ، فسيكون كل شيء أكثر تعقيدًا من خلال الجائزة. يعتمد عليها ما إذا كان الموظف سيتعلم وما إذا كان سيتعلم ما نريد.
سأقدم على الفور نظام المكافآت الذي حصلت عليه من تدريب مستقر.
- في كل خطوة ، تكون المكافأة -0.25.
- في الموت -10.
- عند الموت ، ما يصل إلى 15 خطوات -100.
- عند تناول مربع التفاح ( عدد التفاح الذي يتم تناوله ) * 3.5.
وإعطاء أمثلة على ما يؤدي إلى نظام المكافآت السيئة.
- إذا لم تمنح مكافأة صغيرة تكفي للموت في الخطوات القليلة الأولى ، فسيفضل الأفعى القتل على الحائط. الأمر أسهل من البحث عن التفاح :)
- إذا أعطيت ثوابًا إيجابيًا للخطوات ، فسيبدأ الثعبان في الدوران إلى ما لا نهاية. لأنها في رأيها ستكون أكثر ربحية من البحث عن التفاح.
- والعديد من الحالات الأخرى حيث الأفعى ببساطة لن تتعلم.
حسنًا ، مثال على ما تعلمته الأفعى في 2000 حلقة يؤدي
كان الاهتمام الرئيسي في كتابة الثعبان هو معرفة كيفية تعلم الثعبان بمعرفة القليل عن بيئتها. وقد درست جيدًا ، حيث بلغ متوسط معدل التفاح الذي تم أكله 23 ، وهو ما يبدو لي ليس سيئًا للغاية. لذلك ، يمكن اعتبار التجربة ناجحة.
شفرة المصدر