أهلا ومرحبا بكم في هذا البرنامج التعليمي.
حسنًا ، سنقوم الآن بتنفيذ ذكاءنا الاصطناعي من الصفر.
سنسميها سطرًا سطرًا.
وفي قسم الكود الأول هذا ، سنقوم باستيراد المكتبات.
لكن قبل أن نبدأ بقسم الكود الأول هذا ، أود أن أوضح العلاقة بين الذكاء
الاصطناعي وخريطتنا ، ملف P.
أي لماذا نطبق هذا للخريطة؟
ما هو الغرض من الذكاء الاصطناعي الخاص بنا وأين سنستخدمه؟
لذا فهو في الواقع بسيط للغاية.
نحن نقوم فقط بالذكاء الاصطناعي الخاص بنا لتحديد الإجراء الصحيح في كل مرة ، لذلك نقوم باستيراد in class من ملف AI الخاص
بنا.
لذلك سنقوم بعمل فئة المستند هذه في هذا الملف ، ولكن بعد ذلك نقوم باستيرادها فقط لتحديد الإجراء الصحيح
للتشغيل في كل مرة.
ونختار هذا الإجراء بالضبط عند هذا السطر.
العمل يساوي تحديث الدماغ.
مكافأة أقل ، إشارة أقل.
ستكون الإشارة الأقل هي مدخلات الشبكة العصبية.
إنها تتألف من ثلاث إشارات من أجهزة الاستشعار ، بالإضافة إلى الاتجاه والتوجيه الناقص.
إذن هذا هو المدخل.
ولكن بعد ذلك يكون الناتج هو الإجراء الذي يجب أن نلعبه ، وهذا فقط ما سنأخذه مما شعرت أننا على وشك
القيام به.
لذا ضع ذلك في الاعتبار.
انها بسيطة جدا.
نقوم أولاً باستيراد الفئة من AI ، ثم نقوم بإنشاء دماغ الكائن من فئة المستند ، والذي يأخذ كمدخلات المتجهات المشفرة للحالات
ذات الأبعاد الخمسة ، والإشارات الثلاث بالإضافة إلى الاتجاه بالإضافة إلى ناقص
الاتجاه.
تتجه الإجراءات الثلاثة إلى اليسار ، أو تسير بشكل مستقيم أو يمينًا.
ثم معلمة جاما هذه ، هذه هي المعلمات الوحيدة للفئة التي سنصنعها.
وبعد ذلك ، بمجرد إنشاء هذا الكائن ، نختار في فئة اللعبة الإجراء الذي نلعبه في كل مرة.
وهذا يعتمد على المكافأة الأخيرة والإشارة الأخيرة ، وهي الإدخال.
وهذا كل ما هو الغرض الوحيد من صنع هذا الذكاء الاصطناعي ، وذلك من أجل الحصول على ذكاء اصطناعي حقيقي يلعب الإجراءات الصحيحة
، في كل مرة يتم التحرك الصحيح بدلاً من وجود إجراءات عشوائية كما لاحظنا في البرنامج التعليمي
السابق.
حسنًا ، لنفعل هذا.
دعونا نطبق ذكاءنا الاصطناعي.
وكما قلنا ، سنبدأ باستيراد جميع المكتبات التي ستستخدمها لتنفيذه.
وبهذه الطريقة سيكون لدينا كل الأدوات التي نحتاجها.
حسنا.
لنبدأ بالأول.
الأول هو الذي لا مفر منه.
مكتبة NumPy.
أوصي دائمًا باستيراده.
إنها المكتبة التي تسمح لنا باللعب والعمل مع المصفوفات.
وهذا و B هنا هو مجرد اختصار أكثر ملاءمة عندما نريد استخدام numpy.
حسنا إذا.
المكتبة الثانية عشوائية.
هذا فقط لأننا سنأخذ بعض العينات العشوائية من مجموعات مختلفة عند تنفيذ تجربة إعادة
التشغيل.
لذلك علينا استيراد هذه المكتبة العشوائية أيضًا.
ثم سنقوم باستيراد OSS.
سيكون ذلك مفيدًا فقط عندما نريد تحميل النموذج لأنك تعلم ، بمجرد أن يصبح النموذج جاهزًا
، سنقوم بتنفيذ بعض التعليمات البرمجية لحفظ النموذج ثم رمز آخر لتحميل النموذج.
هذا هو الوقت الذي نريد ، كما تعلمون ، حفظ الدماغ وتحميله متى أردت إغلاق جهاز الكمبيوتر الخاص
بك وإعادة استخدام الدماغ الذي تم تدريبه من قبل لإجراء بعض التجارب الجديدة.
لذلك هذا مهم.
ثم سنقوم باستيراد مكتبة الشعلة الأساسية.
هذا لأننا سنقوم بتنفيذ شبكتنا العصبية مع PyTorch ، والتي أوصي بها أكثر من الشبكات الأخرى
للذكاء الاصطناعي لأنها تستطيع التعامل مع الرسوم البيانية الديناميكية.
لذلك هناك نذهب مع الشعلة.
ثم من الشعلة سنقوم باستيراد Torch DOT و NW.
وحدة NW هي الأكثر أهمية.
هذه هي الوحدة التي تحتوي على جميع الأدوات اللازمة لتنفيذ بعض الشبكات العصبية.
وبالطبع ستكون هناك شبكة عصبية عميقة تأخذ كمدخلات الإشارات الثلاث للمستشعرات
الثلاثة بالإضافة إلى الاتجاه والتوجيه الناقص ، وستعود كإخراج للعمل بشكل جيد ، وفي الواقع
ستعيد قيم Q للإجراءات المختلفة .
وباستخدام soft max ، سنعود الإجراء للعب مرة واحدة فقط ، وهو الأكثر ملاءمة لتحقيق هدف الدورة التدريبية.
لذلك Torsten أهم واحد.
ثم سنقوم بإعطاء اختصار للوظيفة.
الحزمة من هنا نذهب ، الحزمة الوظيفية من وحدة PN.
لذلك تحتوي هذه الحزمة الوظيفية على الوظائف المختلفة التي نستخدمها عند تنفيذ شبكة عصبية.
لذلك عادةً ما تكون الوظيفة الأخيرة التي سنستخدمها Uber plus لأن ذلك يحسن التقارب
ويتم تضمين خسارة Uber في هذه الوحدة الفرعية الوظيفية من وحدة GN.
وبما أن كل هذا طويل جدًا ، فسوف نعطيه اختصارًا وسنسميه F ببساطة.
ثم تبقى ثلاث وحدات فقط للاستيراد.
إذن ، التالي هو عنصر أساسي آخر مرتفع.
تيم ونحن نأخذها من مكتبة الشعلة ثم إلى الأعلى.
تيم ها نحن ذا.
ودعنا نسميها فقط.
Tim بدلاً من إشعال Tim ، هذا بالطبع للمحسن.
سنقوم باستيراد بعض المُحسِنين لإجراء هبوط متدرج عشوائي ، لذلك سنحتاجه بالتأكيد.
ثم نحتاج إلى استيراد auto وهذا فقط لأخذ فئة المتغير من grad.
لذا فإن الغرض منه تقني بعض الشيء.
بشكل أساسي ، نحتاج إلى استيراد فئة المتغير لإجراء بعض التحويل من المستشعرات التي تشبه المصفوفات
الأكثر تقدمًا إلى متغير يحتوي على تدرج.
لذلك يبدو الأمر كما لو أننا لا نريد أن يكون لدينا موتر فقط في حد ذاته.
نريد وضع الموتر في متغير يحتوي أيضًا على تدرج.
وللقيام بذلك ، نحتاج إلى استخدام فئة المتغير لتحويل هذا الموتر إلى متغير
يحتوي على الموتر والتدرج.
هذا تقني بعض الشيء ، لكن هذا ما يتعين علينا القيام به عند العمل مع PyTorch.
ونفعل ذلك بفضل فئة المتغير ، ولكن قبل الحصول على فئة المتغير ، نحتاج
إلى الاستيراد باتجاه R2 grad ودعنا نعطي اختصارًا أيضًا.
Undergrad ثم من.
الشعلة التي وقعت.
نستورد الكرة الطائرة.
هناك نذهب.
والآن لدينا جميع المكتبات التي سنستخدمها لتنفيذ واجهة برمجة التطبيقات الخاصة بنا ، لذا لن نتكبد عناء استيراد
أي مكتبة أخرى.
لدينا جميع الأدوات التي نحتاجها ونحن الآن جاهزون لإنشاء بنية الشبكة العصبية.
هذا هو بالضبط ما سنفعله في الدرس التالي.
وحتى ذلك الحين ، استمتع.
أنا.