أهلا ومرحبا بكم في هذا البرنامج التعليمي.
سيكون هذا البرنامج التعليمي الخاص مثيرًا للغاية لأننا نقترب من خوارزمية a3c.
سترى أن ما نحن بصدد تنفيذه ، والذي يسمى تتبع الأهلية أو مصدرها ، هو في الواقع
خوارزمية للنقد النشط غير المتزامن ، والوكلاء ، والخوارزميات ، ولكن لا
يمكننا اعتباره A3 C لأننا لا يزال لدينا وكيل واحد ، ولكن ما زلت سترى
أن ما نحن بصدد تنفيذه مأخوذ بالفعل من الورقة التالية ، وهي هذه الورقة كطرق متزامنة
للتعلم المعزز العميق.
وفي هذه الورقة ستجد الخوارزميات الرئيسية الثلاثة التي سنطبقها كمكافأة أخيرة
لهذه الدورة.
لكن كما قلت ، نحن نقترب منه لأن النموذج الذي سنطبقه الآن هو في الواقع هذا النموذج
، غير المتزامن والخطوة.
س التعلم.
هذا هو.
هذا هو المفتاح الثلاثة تقريبًا ، وهو المفتاح بعد ذلك ، ولكن مع وكيل واحد.
والشيء القوي في هذا هو هذا وخطوة التعلم Q ، سوف نتعلم المكافآت التراكمية ونتعلم
الهدف التراكمي في خطوات النهاية بدلاً من خطوة واحدة كما في السابق.
وهذا ما سيجعل التدريب أكثر أداءً وبالتالي الذكاء الاصطناعي لدينا أكثر قوة.
إذن لدينا بالفعل الرمز الكاذب لهذه الخوارزمية.
إنها هذه الخوارزمية هنا.
لذلك دعونا نضغط عليها وها نحن ذا.
هذه هي الخوارزمية التي نحن على وشك تنفيذها.
لكن تذكر ، مع وكيل واحد فقط ، يتمثل الاختلاف في أنهم هنا يتخذون إجراءً ما وفقًا لسياسة
Epsilon الجشعة بناءً على قيم Q للحالة الحالية والإجراء الذي تم لعبه.
لكن في جميع الأحوال ، لم ننفذ سياسة إبسيلون الجشعة.
قمنا بتطبيق حد أقصى ناعم ، لكن الباقي هو نفسه.
كما ترى ، سنحسب المكافأة التراكمية في خطوات النهاية ، في الواقع عشر خطوات ، تذكر ذلك.
والخطوات تساوي عشرة.
ولذا سنقوم بتنفيذ هذا السطر من التعليمات البرمجية في الخوارزمية التي نحن على وشك تنفيذها الآن.
سنحصل على هذا وفي الغالب سنقوم بتنفيذ ذلك أيضًا.
سترى أننا سنحصل على الحد الأقصى لقيم Q للحالة الحالية والإجراء الحالي.
وهذه ثيتا هنا هي فقط المعلمة الهدف.
لنفعل هذا ، فلنهاجم هذه الخوارزمية.
يُطلق على هذا التلوين غير المتزامن والتلوين التدريجي ، لكن ليس لدينا الحق في القول بأنه غير متزامن
بقدر ما نشعر بالقلق ، لأن لدينا وكيلًا واحدًا فقط ، ولكن يمكننا تسميته N الخطوة Q أهلية التعلم
أو التتبع أو حتى المصدر.
حسنًا ، لنفعل هذا.
سيكون الأمر ممتعًا جدًا.
يمكننا بشكل أساسي اتباع الرمز الكاذب هنا ، وهذا ما سنفعله.
وكما ترى ، فإن المعامل الذي سنحتاجه هو جاما ، معلمة جاما التي هي معامل الانحلال.
وبالتالي سنبدأ بإدخال متغير لمعامل جاما واختيار قيمة.
لذلك دعونا نفعل هذا.
نحن في الواقع لا نحتاج إلى فصل دراسي لتنفيذ ذلك.
يمكننا ببساطة تنفيذ هذا باستخدام دالة لأنك تعلم أننا لا نحتاج حقًا إلى إنشاء كائنات
لنموذج تتبع الأهلية هذا.
ستكون الوظيفة كافية لأن ما نريد القيام به أساسًا هو إعادة المدخلات والأهداف بحيث نكون
مستعدين لاحقًا عند تدريب الذكاء الاصطناعي لتقليل المسافة بين التنبؤات والأهداف.
وللحصول على التنبؤات نحتاج إلى المدخلات لأننا سنقوم بتطبيق دماغنا على المدخلات للحصول
على إشارات الخرج.
ستكون تلك توقعاتنا.
وبعد ذلك ، بمجرد أن نحصل على توقعاتنا وأهدافنا ، سنكون مستعدين لتدريب الذكاء الاصطناعي من خلال
محاولة تقليل المسافة المربعة بين التنبؤات والأهداف.
هذا هو بيت القصيد من القيام بذلك.
فى الحال.
نحن ننفذ هذه الوظيفة لنكون قادرين على إعادة هذه المدخلات في هذه الأهداف حتى نتمكن من الاستعداد
للتدريب لتقليل تنبؤات المسافة المربعة مطروحًا منها الأهداف.
حسنًا ، لنفعل هذا.
كما قلنا ، نريد تنفيذ وظيفة.
نبدأ مع def.
هذه الوظيفة ، سنسميها تتبع تسطير أسفل السطر.
يمكنك أيضا تسميتها المصدر.
يمكنك أيضًا تسميته وكتابة التلوين ، كل ما تريد ، ولكن دعنا نسميه تتبع الأهلية.
وستأخذ هذه الوظيفة حجة واحدة والتي ستكون دفعة ولماذا تقوم بالدفعة.
ذلك لأننا سنحصل على بعض المدخلات وبعض الأهداف لأننا سنقوم بتدريب الذكاء الاصطناعي على
دفعات.
وهكذا ستدخل المدخلات والأهداف داخل بعض الدفعات.
وبالتالي ، فإن وسيطة الإدخال هنا هي هذه الدفعة التي ستحتوي على عدة مدخلات ثم عدة
أهداف سنحسبها.
لذا ها نحن ذا.
هذه هي الحجة الوحيدة التي نحتاجها.
الآن ، دعنا نذهب داخل الدالة ودعنا نحدد ما يتعين علينا القيام به.
لذا كما رأينا في الشفرة الزائفة للورقة ، نحتاج إلى معلمة جاما.
لذلك كما قلنا ، نبدأ بإدخال معلمة جاما هذه بحيث تساوي جاما ويمكننا بالفعل تحديد
القيمة وسنختار 4. 99.
هذه قيمة كلاسيكية جيدة لجاما.
ولا داعي للقلق ، لقد تحققت من أن هذه قيمة جيدة للذكاء الاصطناعي الخاص بنا.
حسنًا ، ثم الخطوة التالية.
الخطوة التالية هي تحضير مدخلاتنا.
وأهدافنا لأن هذا هو بالضبط ما نريد العودة إليه.
نريد إعادة المدخلات والأهداف لإعداد التدريب.
ولذا يمكننا بالفعل تهيئتها بقائمة فارغة.
لأنه ، بالطبع ، في هذه المدخلات داخل الدفعة ، سيكون لدينا العديد من المدخلات في
قائمة.
ولهذا السبب أقوم بتهيئة المدخلات كقائمة بالإضافة إلى الأهداف.
هناك نذهب.
لذلك قمنا بتهيئة مدخلاتنا في هدفنا.
وفي النهاية ، ستعود وظيفة تتبع الأهلية هذه.
بالضبط.
وبطبيعة الحال ، تم ملء هذه المدخلات وهذه الأهداف.
سيكون لدينا العديد من المدخلات والأهداف العديدة المرتبطة بها في ما سيتم إرجاعه بواسطة الوظيفة.
حسنا.
الخطوة التالية.
الخطوة التالية هي تخزين الحلقة for.
وهذا بالضبط لأننا نتبع الكود الزائف للورقة ، هذه المجموعة من الأكواد.
وكما ترى ، يوجد قسم الكود المكرر هذا ويكرره بالضبط في حلقة كاملة.
إذن ، الكود الذي سنقوم بحساب المكافأة التراكمية هنا تراكمت عبر الخطوات العشر.
وكيف يتم حسابها؟
حسنًا ، في كل خطوة ، هذه ليست الخطوة الأخيرة.
سنحصل على الحد الأقصى لقيم Q للحالة الحالية التي نحن فيها خلال هذا والخطوات.
وإذا وصلنا إلى المجموعة الأخيرة من الخطوات العشر ، فهذا سيساوي صفرًا.
أي أننا لا نريد تحديثه بعد الآن.
ثم لدينا حلقة for هذه ، والتي ستكون حلقة for أخرى.
لا يقولون كرر هنا ، لكن هذا هو نفسه.
ستكون حلقة for ثانية في خوارزميتنا.
حسنًا ، سنقوم بتحديث المكافأة بهذه الطريقة بضربها في معامل الاضمحلال جاما وإضافة
المكافأة.
لذلك دعونا نفعل هذا.
دعنا نعود إلى بايثون ودعنا نبدأ حلقة for.
إذن أربعة وماذا سيكون المتغير المتكرر؟
حسنًا ، هذه ستكون سلسلة الخطوات العشر ، سلسلتنا المكونة من عشر انتقالات.
لذلك سنسمي هذه السلسلة المتغيرة التي تمثل سلسلة من عشرة انتقالات مثل سلسلة من عشرة
انتقالات.
حتى أربع سلاسل في.
ثم ما رأيك؟
حسنًا ، ستنتمي سلسلتنا إلى مجموعتنا ، وهي الدُفعات التي سنقوم بتدريب الذكاء الاصطناعي عليها.
وهكذا بالنسبة للسلسلة على دفعات ، هذا هو لكل سلسلة من عشر انتقالات في دفعة الإدخال الخاصة بنا.
حسنا ماذا سنفعل.
حسنًا للحصول على المكافأة التراكمية ، سترى في الشفرة الزائفة أننا بحاجة إلى
حالة الانتقال الأول للسلسلة وأيضًا حالة الانتقال الأخير للسلسلة.
إذن ما يتعين علينا فعله الآن هو الحصول على حالات الإدخال هذه.
لذلك سنضع هاتين الحالتين في متغير نسميه الإدخال ، وسنحصل على حالتين
الإدخال ، الأولى من المتسلسلة والأخيرة التي سنضعها
في مجموعة غير حيوية.
لكن لا تقلق ، لن نبقى مع مجموعة الأرقام هذه.
سنحول ذلك بالطبع إلى متغير إجمالي.
لكن الخطوة الأولى هي وضع هذه في حالات الإدخال ، الأولى في الأخيرة في مصفوفة.
وهكذا هنا في هذه المصفوفة الصغيرة ، نضيف الإدخال الأول ، وهو حالة الإدخال
لأول انتقال للسلسلة ، وهي السلسلة.
ثم نأخذ الانتقال الأول ، نأخذ الفهرس صفر للسلسلة.
هذا هو الانتقال الأول.
ومن ثم يمكننا الوصول إليها من خلال أخذ صفتها ، وهي الدولة.
وذلك لأنه في ملف إعادة التشغيل الخاص بخبرتنا ، قمنا بتعريف هيكل خاص لكل عملية انتقال
وأنت تعلم ، الهيكل ، كل انتقال يتكون من حالة ، إجراء ، مكافأة.
ولكن بعد ذلك العنصر الأخير الذي يتم.
لذا فإن هذه البنية الخاصة التي يُسمح لنا باستخدامها الآن تأتي من الطريقة التي حددنا بها الانتقال
في إعادة التجربة.
حسنا.
وبهذا ، نحصل على حالة الإدخال الخاصة بالانتقال الأول والآن دعنا نحصل أيضًا على حالة
الإدخال لآخر انتقال في السلسلة.
وللقيام بذلك ، نفس الشيء.
يمكننا فقط نسخ هذا.
وقم بتأسيسه واستبدال الصفر هنا بالفهرس الأخير من السلسلة ، والذي يمكننا الوصول إليه بهذه الخدعة
مطروحًا منها سلسلة واحدة ، مطروحًا منها أن الحالات ستحصل على حالة الإدخال لآخر انتقال للسلسلة.
حسنًا ، إذن علينا وضع هذين العنصرين داخل بعض الأقواس المربعة.
لأن هذا هو ما تتوقعه وظيفة الحكم.
ثم هناك شيء مهم يجب القيام به لأننا سنحول ذلك إلى موتر شعلة ومتغير
شعلة.
حسنًا ، تذكر أن موتر الشعلة هو بالتعريف مصفوفة خاصة تحتوي على نوع واحد.
ولذا علينا فرض نوع واحد.
وكالعادة ، سنختار نوع الطفو.
لذا أقوم بإضافة هذه المعلمة هنا من النوع D يساوي و P dot float 32 يمكن أن تأخذ هذه المعلمة والآن يمكننا تحويلها
إلى موتر شعلة ومتغير شعلة.
لنفعل هذا للقيام بذلك بشكل جيد ، أولاً ، دعنا نحول ذلك إلى مستشعر شعلة.
وتذكر ، يمكننا استخدام الشعلة من NumPy.
ثم نذهب ونضع كل مصفوفة حالتين الإدخال داخل موتر الشعلة هذا مع الشعلة منها حسب
الوظيفة.
في احسن الاحوال.
لذلك سيحول هذا المصفوفات من حالة الإدخال إلى مستشعر الشعلة.
والآن نضع موتر الشعلة هذا في متغير شعلة باستخدام الفئة المتغيرة.
لذلك سيكون الإدخال كائنًا من فئة المتغير.
وفي الواقع ، كما فهمت ، تأخذ هذه الفئة المتغيرة كل هذا كوسيطة وتخلق الكائن.
حسنًا ، الآن يجب أن نكون جيدين.
لدينا المدخلات التي نحتاجها.
هذه هي حالة الإدخال الخاصة بالانتقال الأول وحالة الإدخال الخاصة بالانتقال الأخير.
والآن ، بعد أن أصبح لدينا المدخلات ، حسنًا ، ما الذي يمكننا الحصول عليه؟
يمكننا الحصول على إشارة خرج دماغ العين.
هذا هو التوقع.
لكننا سنسميها ناتجًا.
هذه هي إشارة الخرج وللحصول على الخرج.
حسنًا ، هذا سهل جدًا الآن لأن لدينا دماغًا تم إنشاؤه بالفعل ، وهو شبكتنا العصبية التلافيفية.
ولذا يمكننا ببساطة أن نأخذ مسح الدماغ المطبق على المدخلات التي ستعيد التنبؤ بأن
الناتج بهذه البساطة.
والآن نحن جاهزون بالفعل للانتقال إلى الخطوة التالية.
والخطوة التالية هي البدء في حساب هذه المكافأة التراكمية.
لذلك سنقوم الآن بعمل نفس خوارزمية SE الثنائية ، المصدر ، أو يجب أن نسميها والخطوات.
س التعلم.
سنقوم بتقديم متغير المكافأة التراكمي ، والذي سيكون المكافأة التراكمية.
ودعونا نعود إلى الورقة.
كما ترون الآن ، ما يتعين علينا القيام به للحصول على هذه المكافأة التراكمية ، والتي هي هنا لدينا.
حسنًا ، في كل خطوة من الخطوات العشر ، نحتاج إلى تحديثها بإضافة صفر إلى هذه المكافأة التراكمية.
إذا وصلنا إلى التاريخ الأخير للسلسلة أو الحد الأقصى لقيم Q ، إذا لم نصل إلى آخر حالة من السلسلة
، فهذا لجميع الخطوات باستثناء الخطوة الأخيرة.
لذلك دعونا ببساطة ننفذ هذا.
دعنا نعود إلى بايثون.
إذن هذه المكافأة التراكمية ، كما رأينا للتو ، ستساوي 0. 0.
إذا.
وصلنا إلى التاريخ الأخير ويمكننا ركوب هذا الشرط بهذه الطريقة.
إذا كانت سلسلة من الفهرس مطروحًا منها واحدًا وهو آخر إرسال للسلسلة ، فإننا نضيف ذلك لأن تم فعلاً هو سمة من سمات
بنية الانتقال هذه التي حددناها إعادة تشغيل ذات خبرة ، ملف إعادة التشغيل
ذي الخبرة.
وقد تم ذلك من هياكل الهواء الطلق لأننا إذا ذهبنا إلى موقع صالة الألعاب الرياضية المفتوحة ،
والذي هو في الواقع هنا ، فقد أعددته.
هذا هو الجذر التربيعي للصفر.
وإذا ذهبنا إلى التوثيق ثم إذا كان الأمر كذلك فهذا هو البرنامج التعليمي.
أنا حقا أشجعك على إلقاء نظرة عليه.
يمكنك إدارة بيئة ، ولكن في الغالب يمكنك أن ترى أن ملاحظاتنا ، أي انتقالاتنا يتم
تحديدها من خلال الملاحظة ، والمكافأة.
وهذا يتم هنا وهذا يعني بالضبط أن الانتقال أو الخطوة قد انتهت.
ولذا فإننا سنستخدم ذلك هنا لحالة if الخاصة بنا.
لذلك ، إذا كانت السلسلة مطروحًا منها نقطة واحدة تعني أن الانتقال الأخير للسلسلة قد انتهى ، فهذا يعني أنه قد اكتمل.
وبالتالي فإن هذه المكافأة التراكمية ستكون مساوية للصفر إذا تم الانتقال
الأخير للسلسلة وإلا إذا لم نصل إلى الانتقال الأخير.
حسنًا ، سيتم تحديث المكافأة التراكمية ، كما قلنا ، بالحد الأقصى لقيم Q.
وبما أن هذا الناتج هنا هو ناتج الدماغ ، فهذه هي تنبؤات الشبكة العصبية.
وكما تعلم ، فإن تنبؤات الشبكة العصبية هي قيم قائمة الانتظار المتوقعة.
حسنًا ، يحتوي هذا الإخراج على قيم Q.
ونظرًا لأننا نحتاج إلى أخذ الحد الأقصى لقيم Q ، حسنًا ، نحتاج إلى إضافة هذا الفهرس أولاً
لأن البنية تحتوي على قيم Q في الفهرس الأول ، ثم نحتاج إلى إضافة بيانات للوصول إلى بيانات بنية
الإخراج هذه.
كما تعلم ، لديها الهيكل الخاص لمتغير الشعلة.
وبهذا نحصل على قيم Q الخاصة بنا ثم نرغب في أخذ أقصى قيم Q الخاصة بنا.
وببساطة نضيف Max والآن نحصل على ما نريده بالضبط كما في الورقة ، هذا الحد الأقصى لقيم
Q للحالات غير النهائية مثل T مثالي.
والآن ما سنفعله هو إنشاء حلقة for الثانية هذه للخطوات العشر من المتسلسلة.
سنقوم بتحديث المكافأة التراكمية بهذه الطريقة بضرب معلمة الانحلال بجاما أولاً ، والتي لدينا
بالفعل ، ثم إضافة المكافأة.
لذلك دعونا نفعل هذا.
سنفعل نفس الشيء تمامًا كما في الشفرة الزائفة.
كما تلاحظ ، يبدأون من اليمين ، لذا فهم لا يبدأون بالخطوة الأولى وينتقلون إلى الخطوات
الأخيرة.
يبدأون بالخطوة الأخيرة ، t ناقص واحد حتى الخطوة الأولى للبدء.
هذا هو بالضبط ما سنفعله وهذا لأننا نريد أن نحصل في النهاية
، المكافأة التراكمية التي تساوي R تساوي R صفر زائد جاما r واحد زائد جاما تربيع أو اثنان زائد نقطة نقطة زائد جاما بقوة عشرة
أو عشرة ، حيث أن واحدًا أو اثنين أو عشرة هي المكافآت التي تم الحصول عليها في كل خطوة من خطوات نهاية السلسلة.
لذلك دعونا نأخذ استراحة سريعة قبل أن نأخذ الحلقة الثانية ، وسأراكم في البرنامج التعليمي التالي.
حتى ذلك الحين ، استمتع.
أنا.