أهلا ومرحبا بكم مرة أخرى في وحدة السيارة ذاتية القيادة الخاصة بنا.
لذا في هذا البرنامج التعليمي سوف أشرح البيئة التي سنطبق عليها ذكاءنا الاصطناعي ، والتي
ستحتوي ، بالطبع ، على السيارة التي سنقوم بتدريبها لقيادة نفسها وتجنب العقبات
والتي سنرسم عليها بعض الطرق وبعض الكتل لسيارتنا للتنقل حولها.
لذلك سنقوم لاحقًا ببناء هذا الذكاء الاصطناعي لتدريب هذه السيارة ، للقيادة على الطريق دون
تجاوز الحد وتجنب بعض العقبات التي سنضعها داخل الطريق.
لذلك هذا تحد مثير للغاية.
وفي الواقع يوجد ملفان منفصلان.
كما ترى ، يوجد ملف AI python.
هذا هو ذكاءنا الاصطناعي الذي سيقوم بكل التدريبات لتدريب السيارة ، وكيفية القيادة الذاتية ، والقيادة.
ولدينا الخريطة ، هذا الملف p هو الكود الذي يصنع كل هذه البيئة.
إذاً ها هي تلك الشفرة التي تتكون في الواقع من 200 سطر من الكود أكثر من ذلك بقليل.
لذلك لا يرتبط هذا الرمز عادةً بـ AI ، إنه مجرد رمز لجعل البيئة لرسم الخريطة.
لذلك سأستعرض كل قسم من الأقسام واحدًا تلو الآخر لشرح ذلك ، لكننا لن ننفذ هذا
الرمز سطرًا سطرًا من البداية لأننا نريد التركيز على الذكاء الاصطناعي.
لكن دعونا لا نزال ننتقل إلى الأقسام واحدًا تلو الآخر لفهم ما يحدث.
لذلك أولاً ، نقوم باستيراد المكتبات الأساسية.
هذا لأي رمز.
نحتاج إلى بعض المكتبات لأداء بعض المهام بكفاءة أكبر ، ثم نقوم باستيراد جميع حزم الأرشيف.
لذلك هذا ليس مهمًا جدًا لأن كل هذا خاص بالأرشفة.
نحن نستخدم KB لإنشاء الخريطة ، ولذا فإننا نستورد الكثير من الفئات والكائنات لنتمكن من إنشاء هذه
الخريطة وإضافة بعض الأدوات في الخريطة.
حسنًا ، هذا الخط مهم.
هذا الخط مرتبط بالذكاء الاصطناعي ، لأن هذا هو المكان الذي نستورد فيه دماغنا ، دماغ السيارة ، والذي
سيكون كائنًا من فئة الكثبان الرملية.
وفئة الكثبان الرملية هي ذكاءنا الاصطناعي نفسه.
سترى أننا سنقوم بتنفيذ VQ في الفصل في البرامج التعليمية التالية.
وكما قد تكون خمنت ، فإن DCN تعني Deep Q Networks.
لذلك سنقوم بتنفيذ شبكة تعلم Q عميقة ، وبعد ذلك بمجرد أن تصبح جاهزة ، سنقوم باستيرادها
هنا بهذا الخط من الذكاء الاصطناعي.
و AI هو بالطبع ملف AI python الخاص بنا.
حسنا؟
لذلك لا استطيع الانتظار لتنفيذ هذا.
ستكون هذه رحلة رائعة ، لكنك سترى أن هذا سيكون مثيرًا للغاية لأنه بفضل الذكاء الاصطناعي
، ستكون السيارة قادرة على قيادة نفسها.
حسنا.
والآن قبل أن أنتقل إلى القسم التالي ، علينا أن نشرح كيف سنقوم بتدريب هذه السيارة.
لن أشرح الشبكة العصبية الآن ، لكنني سأشرح فكرة كيف سنقوم
بتدريب السيارة على قيادة نفسها وتجنب العقبات.
لذا ، كما تعلم ، في الحياة الواقعية ، إذا كنت تريد تدريب سيارة حقيقية على تجنب بعض الجدران أو بعض العوائق
، حسنًا ، ماذا ستفعل؟
من المؤكد أنك لن تأخذ جدرانًا حقيقية أو عقبات كبيرة حقيقية وتحطم سيارتك عليها.
هذا سيكلفك الكثير من المال
بدلاً من ذلك ، قد تكون الفكرة الأكثر ذكاءً هي معاقبة سيارتك ، ليس عندما تصطدم بجدار أو عائق ، ولكن
عندما تصطدم ببعض الرمال.
لذا يبدو الأمر كما لو كان لديك مجال.
يحتوي هذا الحقل على بعض الطرق التي يجب أن تبقى عليها السيارة ويتم تحديد الطرق ببعض الرمال.
وفي كل مرة تسير فيها السيارة على الرمال ، يبدو الأمر وكأنها تسير في عقبة لأنه بمجرد دخول
السيارة في بعض الرمال ، سيتم إبطاء سرعتها وسنتأكد من معاقبة السيارة.
يعاقب على ذلك.
وهذه نقطة أساسية للذكاء الاصطناعي.
تأتي المكافأة السيئة عندما تنطلق السيارة في بعض الرمال وتتباطأ.
حسنا.
وبالتالي ، أقدم هنا آخر X وآخر Y ، وهما إحداثيات آخر نقطة في الذاكرة عندما نرسم
بعض الرمال على الخريطة.
حسنا.
ثم نحصل على ذكاءنا الاصطناعي ، والذي نسميه الدماغ ، والذي يحتوي على شبكتنا العصبية.
وسنسميها دماغًا ، لأن هذا في الواقع هو دماغ السيارة والذي يحتوي على شبكتنا
العصبية.
حسنا.
لذلك في هذا السطر من التعليمات البرمجية ، كما ترون ، أقوم بإنشاء كائن من فئة الكثبان الرملية.
سوف أذكر الفئات والأشياء ، لكن الدماغ هو الشيء.
DCN هي الفئة وخمسة ثلاثة و 0. 9 هي مدخلات الفصل.
لذلك هذا بسيط للغاية.
خمسة يتوافق مع الحالات التي تم ترميزها نواقل من خمسة أبعاد.
سنرى ما يصفونه تمامًا ، ما يحدث في البيئة على الخريطة.
ثم ثلاثة هو عدد الإجراءات التي سيكون هناك.
ثلاثة إجراءات محتملة تذهب إلى اليسار ، أو تذهب مباشرة أو يمينًا ، و 0. 9 هي معلمة جاما في خوارزمية التعلم
العميق.
حسنا.
ثم لدينا الإجراء اثنان تناوب.
إذن ، الإجراء الثاني هو متجه من ثلاثة عناصر ، صفر و 20 و -20.
ولذا يتعين علينا القيام بذلك لأن الإجراءات مشفرة بثلاثة أعداد صفر واحد.
اثنان ، وهذا يتوافق مع فهارس هذا الإجراء متجهين للدوران.
لذلك على سبيل المثال ، إذا كان الإجراء الذي تم تحديده في الوقت T يساوي صفرًا ، فإن الصفر جيدًا يتوافق مع
مؤشر هذا الإجراء لمتجه الدوران وقيمة مؤشر الصفر هي صفر ، وبالتالي سنذهب مباشرة.
ثم إذا كان الإجراء المحدد واحدًا ، فهذا يتوافق جيدًا مع فهرس هذا الإجراء لمتجه الدوران وقيمة
هذا المتجه الذي يحتوي على فهرس واحد هو 20.
إذن ، 20 تقابل دورانًا بمقدار 20 درجة ، وهذا يعني أن القلب سيتجه 20 درجة إلى اليمين.
ثم إذا كان الإجراء المحدد اثنين ، حسنًا ، اثنان يتوافقان مع الفهرس ، واثنان من هذا الإجراء لمتجه
الدوران ، وبالتالي فإن النواة ستدور بمقدار -20 درجة ، وبالتالي ستنتقل إلى اليسار.
حسنًا ، بعد ذلك نقدم آخر متغير للمكافأة ، لأننا في كل حالة سنحصل على آخر
مكافأة.
لذا تذكر ، إذا لم تدخل البطاقة في بعض الرمال ، فستكون المكافأة إيجابية.
وإذا أصبحت البطاقة منطقية ، فستحصل على مكافأة سيئة.
وفي كل مرة سيحتوي هذا المتغير على هذه المكافأة التي يحصل عليها في كل مرة.
T ثم نقوم بتهيئة هذه الدورة التدريبية ، وهي عبارة عن متجه يحتوي على المكافأة ، وليس جميعها ، ولكن المكافآت
على نافذة منزلقة بحيث ، كما تعلم ، يمكننا عمل منحنى متوسط درجة المكافأة مع
الاحترام الى وقت.
حسنًا ، في قسم الكود هذا ، نقوم بتهيئة الخريطة ، لذلك نقوم ، على سبيل المثال ، بتهيئة
متغير cen.
لذلك هذا مهم.
سيكون المتغير في الواقع عبارة عن مصفوفة تكون الخلايا فيها وحدات بكسل الخريطة.
وفي كل خلية سيكون لدينا واحد إذا كان هناك بعض المعنى وصفر إذا لم يكن هناك سنت في البداية
، فلن نرسم أي شيء.
لذلك لن يكون هناك أي معنى على الإطلاق ، وبالتالي فإن جميع خلايا مصفوفة الإرسال ستحتوي على صفر.
لذلك سيكون هناك أصفار في كل مكان.
وبمجرد أن نرسم بعض الرمل ، حسنًا ، ستحصل الخلايا التي نرسم عليها المعنى على واحدة ونقوم
بتهيئة المصفوفات بكل الأصفار هنا ، والرمل يساوي و p صفر.
ثم لدينا هذا الشيء المهم وهو الهدف.
لذا فإن الهدف هو النقطة في الخريطة التي سنقوم بتدريب السيارة للوصول إليها.
لذا فهي مثل الوجهة.
إذن ما هو هذا الهدف؟
حسنًا ، ستكون هذه الزاوية العلوية اليسرى من الخريطة.
لذلك سنقوم بتدريب السيارة على الانتقال إلى الزاوية اليسرى العليا من الخريطة.
وبعد ذلك بمجرد وصولها إلى الزاوية اليسرى العليا من الخريطة ، سنقوم بتدريبها على الانتقال إلى الزاوية اليمنى
السفلية من الخريطة.
لذلك يمكننا تخيل السيناريو التالي.
الزاوية العلوية اليسرى من الخريطة هي مطار المدينة ، والركن الأيمن السفلي من الخريطة
هو وسط المدينة.
وسنلجأ إلى سيارات الأجرة أو أوبر للقيام ببعض الرحلات ذهابًا وإيابًا بين المطار ووسط المدينة.
وبالطبع ، سنجعل الاختبار صعبًا على سيارة الأجرة هذه عن طريق رسم بعض الطرق الأكثر صعوبة وإضافة
المزيد والمزيد من العوائق في الشارع لمعرفة ما إذا كان بإمكان التاكسي الانتقال من المطار
إلى وسط المدينة.
لذلك سيكون هذا ممتعا.
ولهذا السبب أقوم هنا بتحديد إحداثيات الهدف الأول.
هذا هو المطار الموجود في أعلى يسار الشاشة.
لذلك ستكون الخريطة مثل مربع مثل هذا.
وإحداثيات الأصل ، أي الإحداثي ، صفر صفر هنا.
ثم أكبر هذه المسافة هنا.
إذن الإحداثيات ، 20 وأكبر ، -20 ستكون هنا في الزاوية اليسرى العليا من الخريطة.
ولماذا اخترت 20 وليس الصفر؟
حسنًا ، هذا لأننا نريد تدريب السيارة ، وليس الاندفاع إلى الجدران.
كما تعلم ، نريد تدريبه على تجنب الجدران أيضًا.
وبالتالي ، يجب ألا يكون الهدف صفرًا لأننا لا نريد أن تلمس السيارة الحائط.
نريد أن نلمس الهدف.
لذلك علينا وضعها هنا.
ثم أقوم بتقديم آخر متغير مسافة ، والذي يعطي فقط المسافة الحالية من السيارة إلى
الهدف والتي أقوم ببدء تشغيلها على الصفر.
حسنا.
والآن حان الوقت لصنع السيارة واللعبة.
لذلك سنقوم بعمل فئتين ، فئة واحدة للسيارة وفئة واحدة للعبة.
وداخل هذه الفصول ، سنقوم بالفعل ببعض الروابط مع أعيننا.
لذلك سنفعل ذلك في البرنامج التعليمي التالي.
وحتى ذلك الحين ، استمتع.
أنا.