مرحبا يا هبر! أقدم إليكم ترجمة المقال "لا تتجاهل أبدًا التعلم التعزيزي" بقلم ميشيل كانا ، دكتوراه
التعلم مع المعلم والتعلم بدون معلم ليس كل شيء. الجميع يعرف ذلك. ابدأ بـ OpenAI Gym.
هل ستهزم بطل العالم في لعبة الشطرنج ، لعبة الطاولة أو تذهب؟هناك طريقة تتيح لك القيام بذلك - تدريب التعزيز.
ما هو التعلم التعزيز؟
التعلم المعزز هو تعلم اتخاذ قرارات متسقة في بيئة مع الحد الأقصى للمكافأة التي يتم تلقيها لكل إجراء.
لا يوجد معلم فيه ، إلا إشارة إلى مكافأة من البيئة. مسائل الوقت ، والإجراءات تؤثر على البيانات اللاحقة. مثل هذه الظروف تخلق صعوبات في التعلم مع أو بدون معلم.
في المثال أدناه ، يحاول الماوس العثور على أكبر قدر ممكن من الطعام وتجنب الصدمات الكهربائية عندما يكون ذلك ممكنًا.
يمكن أن يكون الماوس شجاعًا ويمكنه الحصول على تصريف للوصول إلى مكان به الكثير من الجبن. سيكون أفضل من الوقوف بلا حراك وعدم تلقي أي شيء.
لا يريد الماوس اتخاذ أفضل القرارات في كل موقف محدد. هذا يتطلب نفقة عقلية كبيرة منها ، ولن يكون عالميًا.
يوفر التدريب باستخدام التعزيزات بعض المجموعات السحرية من الأساليب التي تسمح للفأرة لدينا بتعلم كيفية تجنب الصدمات الكهربائية والحصول على أكبر قدر ممكن من الطعام.
الماوس هو وكيل. متاهة مع الجدران والجبن وبنادق الصاعقة هي
البيئة . يمكن أن يتحرك الماوس يسارًا ، يمينًا ، أعلى ، أسفل - هذه
أعمالالفأر يريد الجبن ، وليس صدمة كهربائية. الجبن هو
مكافأة . يمكن للماوس فحص البيئة - هذه
ملاحظات .
التدريب على تعزيز الجليد
دعونا نترك الماوس في المتاهة والانتقال إلى الجليد. "لقد حان الشتاء. أنت وأصدقاؤك كانوا يرمون الفريسبي في الحديقة عندما ألقوا الفريسبي فجأة في وسط البحيرة. في الأساس ، تم تجميد المياه في البحيرة ، ولكن كان هناك القليل من الثقوب حيث ذاب الجليد. (
المصدر )
"إذا قمت بخطوة على أحد الثقوب ، فسوف تسقط في الماء المثلج. بالإضافة إلى ذلك ، هناك نقص كبير في الفريسبي في العالم ، لذلك من الضروري للغاية أن تتجول في البحيرة وتجد محركًا. "(
المصدر )
كيف تشعر في هذا الموقف؟
هذا هو التحدي للتعلم التعزيز. يتحكم الوكيل في حركات الشخصية في عالم الشبكات. بعض البلاط الشبكي مقبول ، بينما يتسبب البعض الآخر في سقوط الشخصية في الماء. يتلقى الوكيل مكافأة لإيجاد طريق مقبول للهدف.
يمكننا محاكاة مثل هذه البيئة باستخدام
OpenAI Gym - مجموعة أدوات لتطوير ومقارنة خوارزميات التعلم مع التعزيزات. يوفر الوصول إلى مجموعة قياسية من البيئات ، كما هو الحال في مثالنا ، والذي يسمى
بحيرة Frozen . هذا هو وسيط النص الذي يمكن إنشاؤه مع بضعة أسطر من التعليمات البرمجية.
import gym from gym.envs.registration import register
الآن نحن بحاجة إلى هيكل يتيح لنا التعامل بشكل منهجي مع مشاكل التعلم مع التعزيز.
ماركوف عملية صنع القرار
في مثالنا ، يتحكم الوكيل في حركة الشخصية على عالم الشبكة ، وتسمى هذه البيئة بيئة يمكن ملاحظتها بالكامل.
منذ البلاط في المستقبل لا يعتمد على البلاط الماضي مع الأخذ بعين الاعتبار البلاط الحالي
(نحن نتعامل مع سلسلة من الحالات العشوائية ، أي مع
خاصية Markov ) ، وبالتالي فإننا نتعامل مع ما يسمى
بعملية Markov .
الحالة الحالية تلخص كل ما هو ضروري لتقرير ما ستكون عليه الخطوة التالية ؛ ليس هناك ما يجب تذكره.
في كل خلية تالية (أي حالة) ، يختار العامل مع بعض الاحتمالات الإجراء الذي يؤدي إلى الخلية التالية ، أي الحالة ، وتستجيب البيئة للعامل مع الملاحظة والمكافأة.
نضيف وظيفة المكافأة ومعامل الخصم لعملية Markov ، ونحصل على ما يسمى
عملية المكافأة Markov . بإضافة مجموعة من الإجراءات ، نحصل على
عملية صنع القرار في ماركوف (
MDP ). يتم وصف مكونات MDP بمزيد من التفاصيل أدناه.
دولة
الحالة هي جزء من البيئة ، وهو تمثيل عددي لما يلاحظه العامل في وقت معين في البيئة ، وحالة شبكة البحيرة. S هي نقطة البداية ، G هي الهدف ، و F هو الجليد الصلب الذي يمكن للعامل أن يقف عليه ، و H هو الثقب الذي سيسقط فيه العامل إذا تحرك عليه. لدينا 16 ولاية في بيئة شبكية 4 × 4 ، أو 64 ولاية في بيئة 8 × 8. أدناه سنرسم مثالًا على بيئة 4 × 4 باستخدام OpenAI Gym.
def view_states_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0')): print(env.observation_space) print() env.env.s=random.randint(0,env.observation_space.n-1) env.render() view_states_frozen_lake()
الإجراءات
يحتوي العامل على 4 إجراءات محتملة ، والتي يتم تمثيلها في البيئة كـ 0 ، 1 ، 2 ، 3 لليسار ، اليمين ، أسفل ، أعلى ، على التوالي.
def view_actions_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0')): print(env.action_space) print("Possible actions: [0..%a]" % (env.action_space.n-1)) view_actions_frozen_lake()
نموذج انتقال الدولة
يصف نموذج انتقال الحالة كيف تتغير حالة البيئة عندما يتصرف الوكيل بناءً على حالته الحالية.
يوصف النموذج عادةً باحتمال الانتقال ، والذي يتم التعبير عنه على أنه مصفوفة انتقال مربعة بحجم N x N ، حيث N هو عدد حالات نموذجنا. الرسم التوضيحي أدناه مثال لمثل هذه المصفوفة للظروف الجوية.
في بيئة بحيرة المجمدة ، نفترض أن البحيرة ليست زلقة. إذا ذهبنا بشكل صحيح ، فإننا بالتأكيد نسير على ما يرام. لذلك ، كل الاحتمالات متساوية.
يحرك "اليسار" خلية العامل 1 إلى اليسار أو يتركها في نفس الموضع إذا كان العامل في الحد الأيسر.
يحرك "اليمين" خلية واحدة إلى اليمين أو يتركها في نفس الموضع إذا كان العامل في الحد الأيمن.
يقوم "Up" بنقل الخلية 1 للأعلى ، أو يظل العامل في نفس المكان إذا كان في الحد العلوي.
تحريك "Down" خلية العامل 1 إلى أسفل ، أو تظل في نفس المكان إذا كانت في الحد الأدنى.
مكافأة
في كل ولاية F ، يحصل العامل على 0 مكافآت ؛ وفي الحالة H ، يحصل على -1 ، لأنه بعد مرور هذه الحالة ، يموت الوكيل. وعندما يصل الوكيل إلى الهدف ، يحصل على مكافأة +1.
نظرًا لحقيقة أن كلا النموذجين ، نموذج الانتقال ونموذج المكافأة ، يمثلان وظائف حتمية ، فهذا يجعل البيئة حتمية. \
خصم
الخصم هو معلمة اختيارية تتحكم في أهمية المكافآت المستقبلية. يتم قياسه في النطاق من 0 إلى 1. والغرض من هذه المعلمة هو منع المكافأة الإجمالية من الذهاب إلى ما لا نهاية.
يُخصم الخصم أيضًا سلوك الوكيل عندما يفضل الوكيل المكافأة الفورية على المكافأة التي قد يتم تلقيها في المستقبل.
قيمة
قيمة الثروة هي الدخل طويل الأجل المتوقع مع خصم للثروة.
السياسة (π)
تسمى الاستراتيجية التي يستخدمها الوكيل لتحديد الإجراء التالي سياسة. من بين جميع السياسات المتاحة ، فإن السياسة المثلى هي تلك التي تزيد من مقدار المكافآت المستلمة أو المتوقعة خلال الحلقة.
حادثة
تبدأ الحلقة عندما يظهر العامل في خلية البداية ، وينتهي عندما يقع العامل في الحفرة أو يصل إلى الخلية المستهدفة.
دعونا تصور كل شيء
بعد مراجعة جميع المفاهيم التي تنطوي عليها عملية صنع القرار في Markov ، يمكننا الآن نمذجة العديد من الإجراءات العشوائية في بيئة 16 × 16 باستخدام OpenAI Gym. في كل مرة ، يحدد العامل إجراء عشوائيًا ويقوم به. يحسب النظام المكافأة ويعرض الحالة الجديدة للبيئة.
def simulate_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0'), nb_trials=10): rew_tot=0 obs= env.reset() env.render() for _ in range(nb_trials+1): action = env.action_space.sample()
استنتاج
في هذه المقالة ، استعرضنا لفترة وجيزة المفاهيم الأساسية للتعلم التعزيز. قدم مثالنا مقدمة لمجموعة أدوات OpenAI Gym ، والتي تجعل من السهل تجربة البيئات سابقة الصنع.
في الجزء التالي ، سنقدم لك كيفية تصميم وتنفيذ سياسات تتيح للوكيل اتخاذ مجموعة من الإجراءات من أجل تحقيق الهدف والحصول على جائزة مثل هزيمة بطل العالم.
شكرا لاهتمامكم