التعلم المعزز باستخدام عوامل Tensorflow [2022]
نشرت: 2021-01-01اكتسب التعلم المعزز شعبية كبيرة مع النجاح الحديث نسبيًا لطريقة AlphaGo من DeepMind في التغلب على بطل العالم Go player. تم تعليم طريقة AlphaGo جزئيًا من خلال التعلم المعزز على الشبكات العصبية العميقة.
هذا النمط من التعلم هو سمة مميزة للتعلم الآلي من النماذج الكلاسيكية الخاضعة للإشراف وغير الخاضعة للإشراف. في التعلم المعزز ، تستجيب الشبكة للبيانات البيئية (تسمى الحالة) باستخدام شبكات عصبية عميقة ، وتؤثر على سلوك الوكيل لمحاولة تحسين المكافأة.
تساعد هذه التقنية الشبكة على تعلم كيفية ممارسة الرياضة ، مثل Atari أو ألعاب الفيديو الأخرى ، أو بعض التحديات الأخرى التي يمكن إعادة كتابتها كشكل من أشكال اللعبة. في هذا البرنامج التعليمي ، وهو نموذج شائع للتعلم المعزز ، سأقدم المبادئ العامة لتعلم Q ، وسأشرح كيفية دمج التعلم العميق في Q في TensorFlow.
جدول المحتويات
مقدمة في التعلم المعزز
كما ذكر أعلاه ، يتكون التعلم المعزز من عدد قليل من الكيانات أو المبادئ الأساسية. هم: بيئة تخلق شرطًا ومكافأة ، وكيان يؤدي إجراءات في بيئة معينة. في الرسم البياني أدناه ، ترى هذا التفاعل:
تتمثل مهمة الوكيل في مثل هذا الإعداد في تحليل الحالة والمعلومات التحفيزية التي يتلقاها واختيار سلوك يزيد من المدخلات التي يتلقاها من المكافأة. يتعلم الوكيل عن طريق الاتصال المتكرر بالعالم ، أو بعبارة أخرى ، اللعب المتكرر للعبة.
من أجل تحقيق النجاح ، من الضروري أن يقوم الوكيل بما يلي:

1. تعلم الارتباط بين الدول والسلوك والحوافز الناتجة
2. تحديد أفضل خطوة للاختيار من بينها (1)
يتطلب التنفيذ (1) تحديد مجموعة معينة من المبادئ التي يمكن استخدامها للإخطار (2) ويشار إلى (2) باسم استراتيجية التشغيل. إحدى الطرق الأكثر شيوعًا لتطبيق (1) و (2) باستخدام deep Q هي شبكة Deep Q وسياسة epsilon-greedy.
تعلم: أكثر 5 مشروعات TensorFlow شيوعًا للمبتدئين
س التعلم
التعلم Q هو طريقة قائمة على القيمة لتقديم البيانات لتحديد الإجراء الذي يمكن أن يتخذه الوكيل. إن إنشاء جدول يلخص فوائد اتخاذ الإجراءات على عدة ألعاب في حالة ما هو مفهوم بديهي في الأصل لتوليد المبادئ التي تُبنى عليها الإجراءات. سيؤدي هذا إلى تتبع الحركات الأكثر فائدة. بالنسبة للمبتدئين ، دعنا نفكر في لعبة بسيطة في كل ولاية بها 3 حالات وإجراءين محتملين - قد يمثل الجدول المكافآت لهذه اللعبة:
الإجراء 1 | الإجراء 2 | |
الدولة 1 | 0 | 10 |
الدولة 2 | 10 | 0 |
الدولة 3 | 0 | 10 |
يمكنك أن ترى في الجدول أعلاه أنه بالنسبة لهذه اللعبة البسيطة ، عندما يكون الوكيل هو الحالة 1 ويتخذ الإجراء 2 ، إذا اتخذ الإجراء 1 ، فسيحصل على مكافأة قدرها 10 ولكن بدون مكافأة. في الحالة 2 ، يتم عكس الشرط ، وتشبه الحالة 3 في النهاية الحالة 1. إذا اكتشف وكيل بشكل تعسفي هذه اللعبة وسجل السلوك حصل على أكبر قدر من المكافأة في أي من الحالات الثلاث (تخزين هذه المعرفة في مصفوفة ، على سبيل المثال) ، لذا فإن الشكل العملي للجدول أعلاه سيكون معروفًا بشكل فعال.
بمعنى آخر ، إذا اختار الوكيل بالفعل السلوك الذي تعلمه في الماضي والذي قدم أعلى مكافأة (تعلم بعض أشكال الجدول أعلاه بشكل فعال) ، لكان قد تعلم كيفية لعب اللعبة بفعالية. عندما يكون من المناسب ببساطة بناء الجداول عن طريق الجمع ، فلماذا نحتاج إلى أفكار خيالية مثل Q learning ثم الشبكات العصبية؟
المكافأة المؤجلة
حسنًا ، أول إجابة واضحة هي أن اللعبة المذكورة أعلاه بسيطة للغاية ، مع 3 حالات فقط وعملين لكل حالة. الألعاب الحقيقية أكثر تعقيدًا بشكل ملحوظ. مبدأ المكافأة المتأخرة في الحالة المذكورة أعلاه هو المفهوم المهم الآخر الغائب. يجب أن يتعلم الوكيل أن يكون قادرًا على اتخاذ خطوات للعب الألعاب الأكثر واقعية بشكل صحيح ، والتي قد لا تؤدي بالضرورة إلى مكافأة ، ولكنها قد تؤدي إلى مكافأة كبيرة في وقت لاحق على الطريق.
الإجراء 1 | الإجراء 2 | |
الدولة 1 | 0 | 5 |
الدولة 2 | 0 | 5 |
الدولة 3 | 0 | 5 |
الدولة 4 | 20 | 0 |
إذا تم اتخاذ الإجراء 2 في جميع الحالات في اللعبة المذكورة أعلاه ، يعود العميل إلى الحالة 1 ، أي يعود إلى البداية. في الحالات من 1 إلى 3 ، تحصل حتى على رصيد 5 كما تفعل ذلك. وبالتالي ، إذا تم اتخاذ الإجراء 1 في جميع الولايات 1-3 ، يجب على الوكيل السفر إلى الولاية التالية ، ولكن لن يحصل على مكافأة حتى يدخل الولاية 4 ، وعندها سيتلقى مكافأة قدرها 20.
بعبارة أخرى ، يكون الوكيل أفضل حالًا إذا لم يأخذ الإجراء 2 للحصول على مكافأة فورية بقيمة 5 ، ولكن بدلاً من ذلك يمكنه اختيار الإجراء 1 للمضي قدمًا باستمرار عبر الولايات للحصول على مكافأة 20. لاختيار الأعمال التي تؤدي إلى تأخير المكافأة عندما تكون قيمة المكافأة المتأخرة عالية جدًا.
اقرأ أيضًا: تصنيف الصور Tensorflow
حكم التعلم Q
هذا يشجعنا على توضيح قواعد التعلم Q. في التعلم العميق Q ، تحتاج الشبكة العصبية إلى أخذ الحالة الحالية ، s ، كمتجه وإرجاع قيمة Q لكل سلوك محتمل ، a ، في تلك الحالة ، أي من الضروري إرجاع Q (s ، a) لكليهما ق و ا. يجب مراجعة هذه الأسئلة (الأسئلة ، أ) في التدريب من خلال القاعدة التالية:
Q (s، a) = Q (s، a) + alp [r + γmax Q (s '، a') - Q (s، a)] + alp [r + γmax Q (s '، a')
يحتاج هذا القانون إلى القليل من التفريغ للترقية. ثانيًا ، يمكنك أن ترى أن القيمة الجديدة لـ Q (s ، a) تتطلب تغيير قيمتها الحالية عن طريق إدخال بعض البتات الإضافية على الجانب الأيمن من المعادلة أعلاه. التبديل من اليسار إلى اليمين. ننسى ألفا لبعض الوقت. داخل الأقواس المربعة ، نرى الكلمة الأولى هي r ، والتي تعني الجائزة التي تم الحصول عليها لاتخاذ إجراءات في الدول.

هذه هي المكافأة الفورية. لم يتم تضمين الرضا المؤجل حتى الآن. الكلمة التالية هي تقدير الحافز المؤجل. بادئ ذي بدء ، لدينا القيمة التي تقلل من تأثير المكافأة المتأخر ، والذي يتراوح دائمًا بين 0 و 1. المزيد من ذلك في ثانية. المصطلح التالي maxa'Q (s، 'a') هو الحد الأقصى لقيمة Q المتاحة في الحالة التالية.
لنجعل الأمور أسهل قليلاً - يبدأ الوكيل في الحالات ، ويتخذ الإجراء أ ، وينتهي في الحالات ، ثم يحدد الكود الحد الأقصى لقيمة Q في الحالات ، على سبيل المثال max a 'Q (s'، a '). لماذا إذن يتم أخذ حاسة Max a 'Q (s'، a ') في الاعتبار؟ إذا كان ساري المفعول وفي الحالات ، فمن المعروف أنه يمثل المكافأة الكاملة الممكنة التي تذهب إلى المعالج.
ومع ذلك ، γ تُخصم هذه القيمة لتأخذ في الاعتبار أن انتظار حافز محتمل إلى الأبد غير مرغوب فيه للوكيل - فمن الأفضل للوكيل أن يستهدف الجائزة الأكبر بأقل قدر من الوقت. لاحظ أن قيمة Q (s '، a) `` تحتفظ أيضًا ضمنيًا بأعلى حافز مخصوم للاقتصاد بعد ذلك ، أي Q (s' ، a) 'لأنها تحافظ على الدافع المخصوم للحالة Q (s' ، a) ' وما إلى ذلك وهلم جرا.
وذلك لأن الوكيل سيختار الإجراء ليس فقط على أساس المكافأة الفورية r ، ولكن أيضًا على أساس الحوافز المستقبلية المحتملة المخفضة.
التعلم العميق Q
يتبع Deep Q Learning قانون تحديث Q learning طوال مرحلة التدريب. بمعنى آخر ، يتم إنشاء شبكة عصبية تأخذ الحالات كمدخلات لها ، ثم يتم تدريب الشبكة على إنتاج قيم Q (s ، a) المناسبة لكل سلوك في الحالة. سيتم بعد ذلك تحديد إجراء العامل عن طريق اتخاذ الإجراء بأكبر قيمة Q (s ، a) (عن طريق أخذ argmax من ناتج الشبكة العصبية). يمكن ملاحظة ذلك في الخطوة الأولى من الرسم البياني أدناه:
اختيار العمل وخطوات التدريب - Deep Q Learning

بمجرد إجراء هذا النقل واختيار إجراء ما ، سيقوم الوكيل بتنفيذ الإجراء. سيحصل الوكيل بعد ذلك على ملاحظات حول الحافز الذي يتم تقديمه لاتخاذ الإجراء من تلك الحالة. تماشياً مع إرشادات التعلم Q ، فإن الخطوة التالية التي نريد القيام بها الآن هي تدريب الشبكة. في الجزء الثاني ، يمكن ملاحظة ذلك في الرسم التخطيطي أعلاه.
متجه الحالة s هو صفيف الإدخال x للتدريب على الشبكة ، وعينة تدريب الإخراج y هي متجه Q (s ، a) الذي تم جمعه أثناء عملية اختيار الإجراء. ومع ذلك ، فإن إحدى قيم Q (s ، a) ، المقابلة للإجراء a ، تم تعيينها بحيث يكون لها هدف r + Q (s '، a') ، كما يتضح من الشكل أعلاه. من خلال تدريب الشبكة بهذه الطريقة لإخبار الوكيل بالسلوك الأفضل لاختياره لمنفعته على المدى الطويل ، سيصبح متجه الخرج Q (s ، a) من الشبكة أقوى بمرور الوقت.
إيجابيات التعلم المعزز:
- يمكن استخدام التعلم المعزز لحل التحديات الصعبة للغاية التي لا يمكن التغلب عليها من خلال الأساليب التقليدية.
- يتم اختيار هذه الاستراتيجية من أجل تحقيق نتائج طويلة الأجل ، والتي يصعب تحقيقها.
- يشبه نمط التعلم هذا إلى حد ما تعلم البشر. ومن ثم فهو يقترب من الكمال.
- سيقوم النموذج بتصحيح الأخطاء التي حدثت أثناء مرحلة الاختبار.
- إذا تم تصحيح الخطأ بواسطة النموذج ، فإن فرص حدوث نفس الخطأ تكون أقل قليلاً.
- سيخلق أفضل نموذج لحل مشكلة معينة.
سلبيات التعلم المعزز
- التعلم المعزز كمخطط غير صحيح من عدة نواحٍ مختلفة ، ولكن هذه الخاصية هي بالضبط التي تجعله مفيدًا.
- يمكن أن يؤدي التعلم المعزز كثيرًا إلى إرهاق الدول ، مما قد يقلل من النتائج.
- التعلم المعزز ليس أفضل من استخدامه لحل المشاكل الأساسية.
- يتطلب التعلم المعزز قدرًا كبيرًا من الذكاء وقدرًا كبيرًا من الحساب. إنه متعطش للبيانات. لهذا السبب تتناسب جيدًا مع ألعاب الفيديو ، بحيث يمكنك لعب اللعبة مرارًا وتكرارًا ، ويبدو أنه من الممكن الحصول على الكثير من التفاصيل.
- يفترض التعلم المعزز أن الكون ماركوفيان ، وهو ليس كذلك. يصف نموذج ماركوفيان سلسلة من الأحداث المحتملة التي يعتمد فيها احتمال حدوث كل مرة فقط على الحالة التي تم تحقيقها في الحدث السابق.
ماذا بعد؟
إذا كنت ترغب في إتقان التعلم الآلي وتعلم كيفية تدريب وكيل على لعب tic tac toe ، أو لتدريب روبوت محادثة ، وما إلى ذلك ، تحقق من دورة Grad's Machine Learning والذكاء الاصطناعي PG.
ما هو TensorFlow؟
تأتي لغة Python ، وهي لغة البرمجة الشائعة في التعلم الآلي ، مع مكتبة واسعة من الوظائف. TensorFlow هي إحدى مكتبات Python التي أطلقتها Google ، والتي تدعم العمليات الحسابية الرقمية السريعة والفعالة. إنها مكتبة مفتوحة المصدر أنشأتها وصيانتها Google وتستخدم على نطاق واسع لتطوير نماذج التعلم العميق. يتم استخدام TensorFlow أيضًا مع مكتبات أغلفة أخرى لتبسيط العملية. على عكس بعض المكتبات العددية الأخرى التي تُستخدم أيضًا في التعلم العميق ، تم تطوير TensorFlow لكل من البحث وتطوير التطبيقات ووظائف بيئة الإنتاج. يمكن تنفيذه على الأجهزة ذات وحدات المعالجة المركزية الفردية والأجهزة المحمولة وأنظمة الكمبيوتر الموزعة.
ما هي بعض المكتبات الأخرى مثل TensorFlow في التعلم الآلي؟
خلال الأيام السابقة ، اعتاد مهندسو التعلم الآلي على كتابة جميع التعليمات البرمجية لخوارزميات تعلم الآلة المختلفة يدويًا. الآن كتابة نفس سطور الكود في كل مرة لخوارزميات مماثلة ، لم تكن النماذج الإحصائية والرياضية مستهلكة للوقت فحسب ، بل كانت أيضًا غير فعالة ومملة. كحل بديل ، تم تقديم مكتبات Python لإعادة استخدام الوظائف وتوفير الوقت. مجموعة مكتبات Python واسعة ومتعددة الاستخدامات. بعض مكتبات Python الأكثر شيوعًا هي Theano و Numpy و Scipy و Pandas و Matplotlib و PyTorch و Keras و Scikit-Learn ، بصرف النظر عن TensorFlow. مكتبات Python متوافقة أيضًا بسهولة مع مكتبات C / C ++.
ما هي مزايا استخدام TensorFlow؟
تجعل المزايا العديدة لـ TensorFlow خيارًا شائعًا للغاية لتطوير نماذج حسابية في التعلم العميق والتعلم الآلي. أولاً ، إنها منصة مفتوحة المصدر تدعم تنسيقات تصور البيانات المحسّنة من خلال عرضها الرسومي. يمكن للمبرمجين أيضًا استخدامه بسهولة لتصحيح أخطاء العقد مما يوفر الوقت ويلغي الحاجة إلى فحص طول رمز الشبكة العصبية بالكامل. يدعم TensorFlow جميع أنواع العمليات ، ويمكن للمطورين بناء أي نوع من النماذج أو الأنظمة على هذه المنصة. إنه متوافق بسهولة مع لغات البرمجة الأخرى مثل Ruby و C ++ و Swift.