أهلا ومرحبا بكم في هذا البرنامج التعليمي.
أنا متحمس للغاية لأننا على وشك صنع دماغ A3 الذي هو دماغ أعيننا.
وبالحديث عن الأدمغة ، أود أن أسلط الضوء على شيء ما.
تذكر في الوحدة الأولى ، أننا صنعنا دماغًا بسيطًا بطبقات متصلة بالكامل فقط.
ثم في الوحدة الثانية لـ Doom ، صنعنا دماغًا ليس فقط به طبقات متصلة تمامًا ، ولكن
أيضًا عيون ، لأننا أضفنا الطبقات التلافيفية التي أعطت العين للعين لأنها تستطيع مراقبة
الصور وفهم ما يحدث بالداخل.
والآن سنأخذه حتى على مستوى عالٍ ، لأننا سنصنع دماغًا ليس فقط لديه عيون ويربط
الطبقات بشكل كامل ، ولكن أيضًا ذاكرة.
لأنه كما قلت في البرنامج التعليمي السابق ، سنضيف سجلًا للشبكة العصبية
داخل هذا الدماغ الكبير ، وهذا سيعطي ذاكرة طويلة لدماغنا حتى يتمكن من فهم العلاقات الزمنية
، والخصائص الزمنية للمدخلات الصور.
لذا ها نحن ذا.
وحتى عقل أقوى ، يمكنني أن أخبرك أن النموذج الذي نحن بصدد تنفيذه الآن قوي
حقًا حقًا.
ويمكننا أن نرى كيف أن بناء العيون والقيام بالتعلم العميق ، والقيام بالتعلم المعزز العميق
هو كل شيء عن الاقتراب أكثر فأكثر من كيفية عمل الدماغ البشري.
كما تعلم ، بدأنا بالعلاقات الأساسية للدماغ ، مع الروابط الغذائية الخطية.
ثم أضفنا العيون ، ثم أضفنا الذاكرة.
من يدري ما الذي سنضيفه في النماذج المستقبلية؟
كما تعلم ، في عام 2018 ، ربما سيضيفون شيئًا من شأنه أن يجعل الدماغ يبدو أشبه بالدماغ
البشري.
ولكن بالفعل مع الطبقات والعينين والذاكرة المتصلة بالكامل ، لدينا بالفعل دماغ جيد بالفعل
وعملي.
لنفعلها اذا.
دعونا نصنع هذا الدماغ.
لذا كالعادة ، سنقوم بعمل فصل دراسي لذلك لأنه سيكون له الكثير من الخصائص
مع التلافيف و LCMS.
لذلك سنقوم بعمل وظيفة init لتهيئة كل هذا ، وإنشاء كل هذه الاتصالات ، وبعد ذلك بالطبع سيكون لدينا
وظيفة الأمام التي ستنشر بالطبع الإشارة داخل الدماغ حتى نتمكن في النهاية
من الحصول على المخرجات.
حسنًا ، هل أنت جاهز؟
هيا بنا نقوم بذلك.
لذا ، أيها الفصل ، قدمنا فئة جديدة نسميها الناقد الممثل.
لأنني بالطبع أتحدث عن الأدمغة هنا.
لكن دعونا لا ننسى أننا نصنع نموذج a3c ، الذي يعتمد على مبدأ الناقد النشط
مع الممثل والناقد بشكل منفصل.
لذلك سنقوم في الواقع بعمل اتصال خطي واحد كامل للممثل واتصال خطي كامل
للناقد.
سترى كيف سنفعل ذلك.
سيكون في الواقع بسيطًا جدًا.
لذلك سيرث الناقد الممثل وفئة الناقد الممثل من وحدة التعليقات الختامية حتى نتمكن من استخدام جميع
أدوات PyTorch.
لذلك دعونا نفعل ذلك لنرث من وحدة العقدة.
حسنًا ، علينا أن نأخذ مكتبة الشعلة أولاً ثم بعد ذلك.
وثم.
وذلك والوحدة.
حسنا.
وبهذه الطريقة نرث منه.
حسنا.
ها نحن نبدأ بالدالة الأولى ، والتي ستكون بالطبع دالة init.
لذلك نبدأ فيه بشرطة سفلية مزدوجة ، ثم ستأخذ وظيفة init هذه كوسيطات ذاتية مع الكائن
، ثم شكل الإدخال الذي يمثل أبعاد صور مدخلاتنا ونسميها مدخلات ومساحة
الإجراء ، والتي هي أساسًا المساحة التي تحتوي على جميع الإجراءات.
نحن أيضًا ، كما تعلمون ، من مساحة العمل هذه ، يمكننا الحصول على عدد الإجراءات ، وهو عدد
الإجراءات المحتملة التي سنحصل عليها في الواقع قريبًا جدًا.
لهذا السبب نحتاجها أيضًا.
هذا هو كل ما نحتاجه.
ثم دعنا ننتقل إلى داخل الدالة وننشئ جميع المتغيرات المناسبة لدماغنا.
ولكن قبل القيام بذلك ، تذكر ما يتعين علينا القيام به لتنشيط الميراث بطريقة ما بحيث
يمكننا استخدام جميع الأدوات من وحدة الإدخال.
يجب أن نستخدم الوظيفة الفائقة بهذه الطريقة ، والتي من خلالها نقوم بإدخال الفاعل.
الناقد هذا هو صفنا ومن ثم يأتي بنفسه من أجل الشيء.
حسنًا ، إذن ، نقطة.
وهناك نذهب مرة أخرى مع الحرف الأول.
دور.
هناك نذهب.
هذا يعطينا كل الأدوات التي سنحتاجها من الشعلة لبناء عقولنا.
حسنا إذا.
حسنًا ، حان الوقت لجعل عيون العين.
هذه هي التلافيفات.
لذلك سنقوم بذلك بسرعة كبيرة ، لأننا سبق أن شرحنا هذا بالتفصيل لـ Doom ، لأن تذكر أن The
Eye for Doom كانت لها أعين.
لذلك هو بالضبط نفس الشيء.
سنقوم بعمل بعض التلافيفات وسنستخدم بنية بسيطة للغاية مع 32 كاشف ميزة بحجم
ثلاثة في ثلاثة ، خطوة من اثنين وحشو واحد.
هذه بنية كلاسيكية إلى حد ما ، لكنها في الواقع ستكون كافية للتأكد من أن العين
تفهم ما يحدث في لعبة الاختراق.
حسنا.
لذلك دعونا نجعل تلك التلافيفات.
لذا نبدأ بالذات لأن التلافيفات ستكون متغيرات للكائن.
لذا يمكننا أن نسميها "conf" وستكون هناك أربعة تلافيفات.
سأسمي هذا واحد conf واحد وها نحن نأخذ نقطة وحدة GN ثم نأخذ فئة conf اثنين د لأن
كون واحد سيكون في الواقع كائنًا من هذه الفئة.
ثم في الداخل نقوم أولاً بإدخال شكل إدخال الصور.
هذا هو بالضبط ما لدينا هنا ، لذا يمكننا نسخ هذا وإدخاله كمدخل أول.
ثم الوسيطة الثانية هي عدد أجهزة الكشف عن الميزات أو أيضًا عدد النواة.
لذا سنأخذ 32 ، كما قلنا للتو ، خيار كلاسيكي.
ثم نحتاج إلى اختيار حجم النواة.
هذا هو عدد الخلايا التي ستنزلق فوق صورة الإدخال.
لذا ، تذكر أنه يمكننا أخذ ثلاثة أو أربعة أو خمسة.
هذه اختيارات شائعة.
وهنا سنختار ثلاثة.
وبعد ذلك سنختار خطوة من اثنين و.
مساحة واحدة.
هناك نذهب.
هذا هو الالتفاف الأول الذي ينتقل من صورة الإدخال إلى الطبقات التلافيفية الأولى
المكونة من 32 صورة ملتفة.
لذا نحن الآن جاهزون لعمل الالتفاف الثاني.
لذلك سيكون في الواقع متماثلًا تقريبًا.
لذلك أقوم بنسخ هذا السطر ولصقه أدناه ، ولكن ألصقه أدناه مرة أخرى وألصقه مرة أخيرة لأننا سنحصل
على أربعة تلافيف مع عدم وجود أي شيء تقريبًا لتغييره.
لذا يمكننا بالفعل التعويض هنا ، وتحويل واحد عن طريق العد إلى واحد على ثلاثة والتحويل واحدًا على أربعة.
ستكون هذه هي التلافيفات الأربعة.
والآن بالطبع نحتاج إلى تغيير بعض الأشياء هنا ، لكن ليس كثيرًا لأننا سنحتفظ
بسلسلة من اثنين لكل منها وبطانة واحدة.
سيكون لديهم جميعًا 32 جهازًا للكشف عن الميزات.
هذا هو إخراج 32 صورة ملتوية.
ولكن هنا ، تذكر أن هذا يتوافق مع الجزء الأيسر من الالتواء.
إذن هذا في الواقع يتوافق مع ما كان في الجزء الصحيح من الالتواء السابق.
كما تعلم ، تذكر أنها مثل الدومينو.
لذا فهي سهلة حقًا.
وبالتالي علينا هنا إدخال 32 وهنا أيضًا.
سنرى بسهولة 32 و 32.
حسنا.
باختصار ، نبدأ بصور المدخلات التي تحتوي على أبعاد المدخلات.
مع الالتفاف الأول ، نحصل على 32 صورة معقدة ، كل واحدة تكتشف ميزة معينة.
ثم من هذه الصور الملتفة البالغ عددها 32 صورة ، نطبق الالتفاف الثاني للحصول على 32 صورة معقدة جديدة.
ثم نفس الشيء من هذه الصور الملتفة الـ 32 الجديدة.
نطبق الالتفاف الثالث للحصول على 32 صورة معقدة جديدة مرة أخرى.
ثم في النهاية من هذه الصور الملتفة البالغ عددها 32 صورة ، نطبق الالتفاف الرابع للحصول على الصور.
حسنا.
وسيكون هذا كافيًا مع هذا وإلا سأكون هناك إشراف.
سوف يكتشف الكرة جيدًا.
حسنا.
هذا كل شيء من أجل الالتواء.
هذا كل شيء للعيون.
والآن دعونا نعتني بالذاكرة.
هذه الميزة الجديدة لهذا الدماغ نطبقها على عكس ما كانت عليه من قبل مع تناغم.
لن يكون لها إشراف فحسب ، بل سيكون لها أيضًا ذاكرة فائقة ، وذاكرة طويلة ، لأننا
سنقوم بتنفيذ ذاكرة STM طويلة المدى ، وهي هذا النوع من الشبكات العصبية العادية
التي تمنح نموذجك نوعًا من ذاكرة طويلة حتى تتمكن من تعلم بعض العلاقات الزمنية الطويلة من الماضي.
لذلك نفس الشيء سننشئ متغيرًا جديدًا.
لذا سأبدأ بالذات وهذا المتغير الجديد ، سنسميه ببساطة lshtm لأن هذا
سيتوافق مع شبكة Lshtm داخل الدماغ.
حتى لشتم.
والآن قبل أن نكتب رمز STM ، دعونا نتأكد من فهمنا لما سيفعله هذا الجزء من الدماغ
lshtm.
لذلك كما فهمنا هذا ، يتم استخدام lshtm لمعرفة الخصائص الزمنية لمدخلات الصور.
على سبيل المثال ، إذا اصطدمت الكرة بلعبة ، فإن lshtm سوف يشفر الارتداد.
لذلك هذا هو أول شيء يجب فهمه.
سوف يشفر نوعًا ما ما يحدث في اللعبة.
ثم الشيء المهم التالي الذي يجب فهمه عند تنفيذ LSHTM هو أننا نحتاج إلى اختيار
ترتيب التبعيات الزمنية.
وهنا ، بما أننا سنقوم بتغذية شبكتنا العصبية بسلسلة من أربع صور ، فهذا يعني أنه
يمكننا بالفعل تعلم بعض التبعيات الزمنية للنظام.
لذلك هناك بعض التبعيات الزمنية حيث يعتمد ما يحدث عند 90 زائد واحد على ما يحدث في الوقت المناسب.
T ناقص واحد ، و t ناقص اثنين ، و t ناقص ثلاثة.
لذلك يمكننا بالتأكيد القيام بذلك.
لكن الخبر السار هو أننا سنستخدم lshtm وبالتالي سنتمكن من تعلم بعض العلاقات
الزمنية الأكثر تعقيدًا.
هذا ، على سبيل المثال ، يمكننا أن نتعلم بعض الخصائص الزمنية حيث سيعتمد ما يحدث في الوقت t زائد واحد
على ما يحدث في ذلك الوقت.
T ناقص واحد ، t ناقص اثنين t ناقص ثلاثة وصولاً إلى t ، ناقص n.
وهذا هو الجزء الطويل في ذاكرة lshtm طويلة وقصيرة المدى.
مع فريق Lshtm هذا ، يمكننا تعلم بعض العلاقات الزمنية المعقدة للغاية.
حسنًا ، دعنا نضيف قائمتنا.
للقيام بذلك ، سنستخدم وحدة RN ثم نضيف خلية Class Lshtm ، والتي ستنشئ كائن
Lshtm هذا ، والذي سيمثل جزء Lshtm من الشبكة الجديدة.
لأن الشيء المهم الآن هو أن نفهم أننا نصنع C و R و n ، كما تعلمون ،
شبكة عصبية تلافيفية.
ويأتي جزء Arden بعد جزء CNN.
وبالتالي ، في الوقت الحالي ، ما نحتاج إلى إدخاله في خلية Lshtm هذه هو أولاً حجم الناتج
بعد الالتواء.
هذا هو 32 مرة ، ثلاثة في ثلاثة.
إذن هذا 32 في ثلاثة في ثلاثة هو في الواقع الناتج بعد التلافيف الأربعة هنا.
لكن هذا يصبح مدخلات شبكة R و Lshtm.
والآن لماذا حجم ناتج التلافيفات الأربعة 32 مرة ، ثلاثة في ثلاثة؟
حسنًا ، لا تقلق ، فالأمر ليس مباشرًا.
إنها في الواقع ليست معادلة بسيطة.
ولكن هناك صيغة لحساب هذا العدد من الخلايا العصبية الناتجة بعد تسطيح الصور المجمعة
والمعقدة للالتفافات.
لكن إذا جمعنا حدود هذه الصيغة الكبيرة ، فسنحصل على 32 مرة ، ثلاثة في ثلاثة.
لم أرغب في قضاء الكثير من الوقت في هذا الأمر لأن لدينا الكثير لنفعله أكثر.
وإلى جانب ذلك ، قمنا بالفعل بعمل دالة لحساب هذا الرقم.
تذكر ، كان من أجل Zoom عندما قمنا بهذا العدد.
تعمل الخلايا العصبية بحيث يمكنك إعادة استخدامها إذا أردت ، إذا لم تكن مقتنعًا.
ولكن هذا هو بالضبط ما نحصل عليه بعد جمع شروط هذه الصيغة الكبيرة ، عدد المخرجات.
إذن هذا للحجة الأولى.
ومن ثم ستكون الحجة الثانية هي عدد الخلايا العصبية الناتجة
لـ lshtm وسنذهب إلى 256.
تمام.
وماذا يعني ذلك الآن؟
هذا يعني أنه لدينا الآن متجه يقوم بترميز كل حدث من أحداث اللعبة ، أو بعبارة أخرى ، لدينا
حالة مشفرة.
وهكذا يمكننا الآن الفصل بين الممثل والناقد ، لأنه ، كما تعلمون ، سنقوم في الواقع
بإنشاء شبكتين عصبيتين منفصلتين ، واحدة للممثل والأخرى للناقد.
ولكن سيكون هناك نفس التشفير للصور والعلاقات الزمنية لهاتين الشبكتين العصبيتين.
لذلك هذا هو الجزء المشترك الذي نقوم به لهاتين الشبكتين العصبيتين.
ستكون هذه هي نفس البداية للشبكتين العصبيتين.
لكن الأمور ستتغير الآن بالنسبة للممثل والناقد لأننا سنقوم
بعمل اتصال خطي واحد كامل للممثل واتصال خطي مختلف كامل للناقد.
لذلك دعونا نأخذ استراحة سريعة ودعنا نفعل ذلك في البرنامج التعليمي التالي.
حتى ذلك الحين ، استمتع.
أنا.