مرحبًا ومرحبًا بكم في برنامج Python التعليمي هذا.
لذلك دعونا نفعل هذا.
دعونا نجعل حلقة for هذه ، بدءًا من اليمين وتنتقل إلى اليسار.
وللقيام بذلك ، نضيف أربعة.
إذن هذه المرة ، المتغير المتكرر سيكون خطوتنا لأننا سننتقل من الخطوة الأخيرة
إلى الخطوة الأولى في سلسلة الانتقالات وما إلى ذلك.
والآن ، الحيلة للانتقال من اليمين إلى اليسار هي استخدام أربع خطوات للداخل ، معكوسة ، معكوسة.
والآن نحتاج فقط إلى إدخال تسلسل.
وهذا التسلسل سيكون ، بالطبع ، سلسلتنا.
لذلك قمنا بإدخال سلسلتنا.
لكن كما ترون في الورقة ، ننتقل من T ناقص واحد إلى بداية T.
لذلك نحن لا ننتقل من الخطوة الأخيرة والأخيرة.
هذه هي الحالة النهائية ، لكن الحالة قبل ذلك ، أي t ناقص واحد.
لكن اثنين للبدء فهذه هي الخطوة الأولى.
ولذا ، هنا للانتقال ليس من الحالة الأخيرة بل الحالة السابقة ، نحتاج إلى إضافة قوسين ، العمود
ناقص واحد.
أنا متأكد من أنه بالنسبة لأولئك الذين اتبعوا الآلات ودورة التعلم العميق
، كما تعلمون ، فإن هذه الحيلة ، كولين ، ناقص واحد ، تعني أنك ستنتقل إلى العنصر قبل العنصر الأخير ، ولكن ليس
إلى العنصر الأخير.
وبالتالي نحصل على التسلسل الذي نريده.
سننتقل من العنصر قبل العنصر الأخير إلى العنصر الأول ، ونقوم بأشياء لعكسه
، للانتقال من اليمين إلى اليسار.
حسنا.
لذلك نحن جاهزون للدخول في الحلقة الكاملة.
وهكذا داخل حلقة for ، أين سنفعل؟
حسنًا ، سنفعل تمامًا كما في الورقة.
سنقوم بتحديث المكافأة التراكمية بضربها في جاما وإضافة المكافأة التي تم الحصول عليها في الخطوة
الحالية الموجودة في خطوة الحلقة for.
حسنًا ، لنفعل هذا ، نعود إلى بايثون.
ولذا نريد تحديث مكافأتنا التراكمية بالطريقة التالية أولاً.
ضربها.
وداعا جيما.
هناك نذهب.
هنا نضربها في جيما.
ثم نضيف مكافأة.
الخطوة التي يمكننا الوصول إليها بهذه الطريقة مع الهيكل الخاص.
تذكر أن المكافأة هي سمة من سمات كائن الخطوة.
وهنا ، بالطبع ، نضيف موجب.
حسنا.
إذن المكافأة التراكمية تساوي مكافأة الخطوة التي نحن فيها الآن ، الحلقة بالإضافة إلى أوقات جاما ،
المكافأة التراكمية السابقة قبل تحديثها.
في احسن الاحوال.
لذا أعتقد الآن أننا بخير.
نحن نتابع الخوارزمية بدقة.
والآن حان الوقت للخطوات التالية.
حسنًا ، الآن ستصبح سهلة جدًا.
نعود إلى الحلقة for الأولى ، لأن هذه الحلقة for هي فقط لحساب المكافأة التراكمية التي نعرفها من اليمين
إلى اليسار عن طريق التحديث بهذه الطريقة ، باتباع الخوارزمية.
والآن ، كما تتذكر ، الهدف من القيام بكل هذا هو إعداد مدخلاتنا وأهدافنا جاهزة حتى نتمكن
من تقليل الفرق التربيعي بين الاثنين للتدريب.
والآن ، الشيء الوحيد الذي يتعين علينا القيام به هو تجهيز هذه المدخلات والأهداف.
لذلك دعونا نفعل هذا أولاً.
ما يتعين علينا القيام به هو إضافة الحالة الأولى من السلسلة في قائمة المدخلات الخاصة بنا.
حتى الآن ، حالة الإدخال هذه موجودة في متغير الإدخال هذا ، ولكن كان ذلك فقط لحساب الإخراج.
لذلك سنحصل على حالة الإدخال هذه للخطوة الأولى بشكل منفصل لأن هذا هو بالضبط ما نحتاج إلى إلحاقه
في قائمة المدخلات الخاصة بنا.
لذلك دعونا نحصل على هذا بشكل منفصل.
لذلك ، سوف نسميها حالة.
وهكذا بالضبط نفس الشيء هنا.
يمكننا الحصول عليها بهذه الطريقة بأخذ الفهرس الأول من السلسلة ، والذي يحتوي على الانتقال الأول ، ثم
إضافة تلك الحالة للحصول على حالة هذا الانتقال الأول.
لذلك هذا هو الشيء الذي نحتاجه بعد ذلك.
سنحصل بشكل منفصل على الهدف المرتبط بحالة الإدخال هذه للانتقال الأول.
ولذا فإنني أقدم هنا متغيرًا جديدًا هو الهدف الذي سيكون مساويًا لقيمة Q للخطوة الأولى.
ونظرًا لإرجاع قيمة Q بواسطة الشبكة العصبية ، يتم تضمينها في الإخراج.
ونظرًا لأن الإخراج هو الناتج المرتبط بهذا المدخل الذي يحتوي على العنصر الأول من الانتقال ، حسنًا
، يمكننا الحصول على قيمة Q هذه للحالة الأولى بمجرد أخذ الإخراج هنا وأخذ الرقم القياسي صفر.
ثم نضيف البيانات النقطية التي ستحصل ببساطة على قيمة Q لحالة الإدخال في الانتقال الأول.
وهذه هي بالضبط قيمة Q المستهدفة.
لهذا السبب نأخذها.
ثم سنقوم بتحديث هذا المتغير الهدف ، ولكن فقط للإجراء الذي تم تحديده في الخطوة الأولى
من السلسلة.
وللوصول إلى هذه الخطوة الأولى من السلسلة ، حسنًا ، نحتاج إلى أخذ السلسلة صفر الأولى لأن هذه
هي بالضبط الخطوة الأولى في السلسلة صفر.
وللوصول إلى الإجراء المقابل لهذه الخطوة الأولى من السلسلة.
حسنًا ، علينا أن نضيف هنا.
عمل نقطي.
مرة أخرى ، هذا هو هيكل السمات الذي نستخدمه.
الإجراء هو سمة من سمات الخطوة الأولى من السلسلة.
هذا هو الانتقال الأول للسلسلة لأن كل انتقال للسلسلة يحتوي على الهيكل التالي ، وعمل
الحالة ، والمكافأة ، والقيام بهذا الإجراء هنا.
يعني إجراء السمة هذا هنا أننا نحصل ببساطة على إجراء هذا التاريخ الأول.
وبالتالي فإن الهدف من هذا الإجراء المحدد من الخطوة الأولى هو بالضبط ما يجب تحديثه بالمكافأة
التراكمية.
لذلك سنكتب هنا بشكل أساسي أن الهدف المرتبط بالإجراء الذي تم لعبه في الخطوة
الأولى من السلسلة هو المكافأة التراكمية التي حسبناها للتو.
حسنا.
والآن نحن مستعدون أخيرًا لتحديث مدخلاتنا من خلال إلحاق حالة الإدخال الأولى هنا وهذا الهدف الأول
هنا.
بالنسبة للخطوة الأولى ، نحتاج فقط إلى تحديث الخطوة الأولى من السلسلة لأننا ، كما تعلم ، نقوم بتدريب
العين على عشر خطوات ، وبالتالي فإن الإدخال هو الخطوة الأولى من الخطوات العشر.
وأيضًا نحصل على الهدف في هذه الخطوة الأولى ، ولكن بعد ذلك لا نحتاج إلى الحصول على أي مدخلات أو
أي أهداف في الخطوات التالية من الخطوات العشر ، لأن التعلم يحدث في الأساس عشر خطوات بعد ذلك.
لهذا السبب نحن الآن نحصل فقط على الحالة والهدف من الخطوة الأولى من السلسلة.
لذلك من المهم أن نفهم ذلك.
وبالتالي ، إذا فهمنا ذلك ، فإننا نفهم الآن أنه يتعين علينا إدخالها في قائمة المدخلات
وقائمة الأهداف الخاصة بنا.
لذلك دعونا نفعل هذا أولاً.
دعنا نلحق الحالات بمدخلاتنا.
لذلك نأخذ قائمة المدخلات الخاصة بنا ونستخدم وظيفة الإلحاق لإضافة الحالة التي تتذكر حالة الإدخال للخطوة
الأولى من السلسلة.
وبعد ذلك سنلحق هدف الخطوة الأولى بقائمة الأهداف.
وللقيام بذلك ، نأخذ قائمة الأهداف الخاصة بنا ونفس الشيء نستخدم وظيفة الإلحاق لإلحاق هذا الهدف
الأول.
هناك نذهب.
يكاد ينتهي.
والآن نحن بحاجة إلى إعادة آخر الأشياء ، والتي هي بالطبع ما نحتاجه.
هذا ما قلناه في بداية الدرس.
المدخلات والأهداف التي تم تحديثها الآن.
لذلك سنضيف هنا العودة.
ثم سنحصل على مدخلاتنا أولاً.
ولكن هذا هو نفسه.
نحتاج إلى تحويلهم إلى مصفوفة عددية أولاً ، ثم إجراء تحويل نوع
للتأكد من أن لدينا نوعًا واحدًا بنوع D يساوي و P يساوي 30 عائمًا.
ثم نقوم بتحويل هذا إلى موتر شعلة لأننا بالطبع نعمل مع PyTorch ، لذلك هذا
إلزامي تمامًا.
ولذا فأنا أستخدم الشعلة من NumPy.
الوظيفة مرة أخرى.
وهذا يعطينا مدخلاتنا.
في احسن الاحوال.
والآن لنفعل الشيء نفسه بالنسبة للهدف.
الآن سنستخدم هذه الحيلة ، وهي أسرع.
سنقوم بتكديس الأهداف معًا.
وللقيام بذلك ، نحتاج أولاً إلى استخدام مكتبة الشعلة الخاصة بنا ، لأننا سنستخدم وظيفة المكدس
بواسطة الكشاف لتكديس الأهداف.
حسنا.
ولذا فإن هذا السطر من الكود يُرجع بشكل أساسي المدخلات والهدف الذي قمنا بتحديثه للتو من خلال
خوارزمية مصدر تتبع الأهلية ، أو يمكننا تسميته والتعلم التدريجي.
والآن تهانينا ، نحن جاهزون لإجراء التدريب النهائي لأن التدريب يتكون
أساسًا من تقليل الفروق التربيعية بين تنبؤات مدخلاتنا والأهداف.
لذلك دعونا نجعل الذكاء الاصطناعي لدينا ذكيًا.
سوف تصبح ذكية في البرنامج التعليمي التالي.
وحتى ذلك الحين ، استمتع بـ i.