WEBVTT

00:00.240 --> 00:03.640
أهلا ومرحبا بكم مرة أخرى في وحدة السيارة ذاتية القيادة الخاصة بنا.

00:03.660 --> 00:10.200
لذا في هذا البرنامج التعليمي سوف أشرح البيئة التي سنطبق عليها ذكاءنا الاصطناعي ، والتي

00:10.200 --> 00:16.020
ستحتوي ، بالطبع ، على السيارة التي سنقوم بتدريبها لقيادة نفسها وتجنب العقبات

00:16.020 --> 00:20.820
والتي سنرسم عليها بعض الطرق وبعض الكتل لسيارتنا للتنقل حولها.

00:20.970 --> 00:28.680
لذلك سنقوم لاحقًا ببناء هذا الذكاء الاصطناعي لتدريب هذه السيارة ، للقيادة على الطريق دون

00:28.680 --> 00:33.630
تجاوز الحد وتجنب بعض العقبات التي سنضعها داخل الطريق.

00:33.900 --> 00:35.730
لذلك هذا تحد مثير للغاية.

00:35.730 --> 00:37.920
وفي الواقع يوجد ملفان منفصلان.

00:37.920 --> 00:40.560
كما ترى ، يوجد ملف AI python.

00:40.590 --> 00:46.980
هذا هو ذكاءنا الاصطناعي الذي سيقوم بكل التدريبات لتدريب السيارة ، وكيفية القيادة الذاتية ، والقيادة.

00:46.980 --> 00:51.840
ولدينا الخريطة ، هذا الملف p هو الكود الذي يصنع كل هذه البيئة.

00:51.840 --> 00:56.820
إذاً ها هي تلك الشفرة التي تتكون في الواقع من 200 سطر من الكود أكثر من ذلك بقليل.

00:56.820 --> 01:03.150
لذلك لا يرتبط هذا الرمز عادةً بـ AI ، إنه مجرد رمز لجعل البيئة لرسم الخريطة.

01:03.150 --> 01:08.340
لذلك سأستعرض كل قسم من الأقسام واحدًا تلو الآخر لشرح ذلك ، لكننا لن ننفذ هذا

01:08.340 --> 01:13.470
الرمز سطرًا سطرًا من البداية لأننا نريد التركيز على الذكاء الاصطناعي.

01:13.470 --> 01:17.040
لكن دعونا لا نزال ننتقل إلى الأقسام واحدًا تلو الآخر لفهم ما يحدث.

01:17.130 --> 01:20.430
لذلك أولاً ، نقوم باستيراد المكتبات الأساسية.

01:20.430 --> 01:21.870
هذا لأي رمز.

01:21.870 --> 01:28.680
نحتاج إلى بعض المكتبات لأداء بعض المهام بكفاءة أكبر ، ثم نقوم باستيراد جميع حزم الأرشيف.

01:28.680 --> 01:33.000
لذلك هذا ليس مهمًا جدًا لأن كل هذا خاص بالأرشفة.

01:33.030 --> 01:39.030
نحن نستخدم KB لإنشاء الخريطة ، ولذا فإننا نستورد الكثير من الفئات والكائنات لنتمكن من إنشاء هذه

01:39.030 --> 01:41.580
الخريطة وإضافة بعض الأدوات في الخريطة.

01:42.030 --> 01:44.250
حسنًا ، هذا الخط مهم.

01:44.250 --> 01:52.440
هذا الخط مرتبط بالذكاء الاصطناعي ، لأن هذا هو المكان الذي نستورد فيه دماغنا ، دماغ السيارة ، والذي

01:52.440 --> 01:56.160
سيكون كائنًا من فئة الكثبان الرملية.

01:56.160 --> 02:00.300
وفئة الكثبان الرملية هي ذكاءنا الاصطناعي نفسه.

02:00.300 --> 02:04.410
سترى أننا سنقوم بتنفيذ VQ في الفصل في البرامج التعليمية التالية.

02:04.410 --> 02:09.390
وكما قد تكون خمنت ، فإن DCN تعني Deep Q Networks.

02:09.390 --> 02:14.910
لذلك سنقوم بتنفيذ شبكة تعلم Q عميقة ، وبعد ذلك بمجرد أن تصبح جاهزة ، سنقوم باستيرادها

02:14.910 --> 02:18.210
هنا بهذا الخط من الذكاء الاصطناعي.

02:18.210 --> 02:21.240
و AI هو بالطبع ملف AI python الخاص بنا.

02:21.810 --> 02:22.230
حسنا؟

02:22.230 --> 02:24.300
لذلك لا استطيع الانتظار لتنفيذ هذا.

02:24.300 --> 02:29.430
ستكون هذه رحلة رائعة ، لكنك سترى أن هذا سيكون مثيرًا للغاية لأنه بفضل الذكاء الاصطناعي

02:29.430 --> 02:32.730
، ستكون السيارة قادرة على قيادة نفسها.

02:33.090 --> 02:33.660
حسنا.

02:33.660 --> 02:38.790
والآن قبل أن أنتقل إلى القسم التالي ، علينا أن نشرح كيف سنقوم بتدريب هذه السيارة.

02:38.820 --> 02:43.620
لن أشرح الشبكة العصبية الآن ، لكنني سأشرح فكرة كيف سنقوم

02:43.620 --> 02:47.850
بتدريب السيارة على قيادة نفسها وتجنب العقبات.

02:48.150 --> 02:54.060
لذا ، كما تعلم ، في الحياة الواقعية ، إذا كنت تريد تدريب سيارة حقيقية على تجنب بعض الجدران أو بعض العوائق

02:54.060 --> 02:55.530
، حسنًا ، ماذا ستفعل؟

02:55.560 --> 03:00.960
من المؤكد أنك لن تأخذ جدرانًا حقيقية أو عقبات كبيرة حقيقية وتحطم سيارتك عليها.

03:00.960 --> 03:02.640
هذا سيكلفك الكثير من المال

03:02.640 --> 03:10.140
بدلاً من ذلك ، قد تكون الفكرة الأكثر ذكاءً هي معاقبة سيارتك ، ليس عندما تصطدم بجدار أو عائق ، ولكن

03:10.140 --> 03:12.540
عندما تصطدم ببعض الرمال.

03:12.540 --> 03:14.040
لذا يبدو الأمر كما لو كان لديك مجال.

03:14.040 --> 03:19.620
يحتوي هذا الحقل على بعض الطرق التي يجب أن تبقى عليها السيارة ويتم تحديد الطرق ببعض الرمال.

03:19.620 --> 03:25.410
وفي كل مرة تسير فيها السيارة على الرمال ، يبدو الأمر وكأنها تسير في عقبة لأنه بمجرد دخول

03:25.440 --> 03:30.330
السيارة في بعض الرمال ، سيتم إبطاء سرعتها وسنتأكد من معاقبة السيارة.

03:30.330 --> 03:31.590
يعاقب على ذلك.

03:31.590 --> 03:35.070
وهذه نقطة أساسية للذكاء الاصطناعي.

03:35.070 --> 03:39.690
تأتي المكافأة السيئة عندما تنطلق السيارة في بعض الرمال وتتباطأ.

03:40.050 --> 03:40.590
حسنا.

03:40.590 --> 03:47.610
وبالتالي ، أقدم هنا آخر X وآخر Y ، وهما إحداثيات آخر نقطة في الذاكرة عندما نرسم

03:47.610 --> 03:50.190
بعض الرمال على الخريطة.

03:50.550 --> 03:51.030
حسنا.

03:51.030 --> 03:57.750
ثم نحصل على ذكاءنا الاصطناعي ، والذي نسميه الدماغ ، والذي يحتوي على شبكتنا العصبية.

03:57.750 --> 04:02.970
وسنسميها دماغًا ، لأن هذا في الواقع هو دماغ السيارة والذي يحتوي على شبكتنا

04:02.970 --> 04:03.690
العصبية.

04:04.170 --> 04:04.620
حسنا.

04:04.620 --> 04:10.080
لذلك في هذا السطر من التعليمات البرمجية ، كما ترون ، أقوم بإنشاء كائن من فئة الكثبان الرملية.

04:10.080 --> 04:14.280
سوف أذكر الفئات والأشياء ، لكن الدماغ هو الشيء.

04:14.280 --> 04:19.470
DCN هي الفئة وخمسة ثلاثة و 0. 9 هي مدخلات الفصل.

04:19.470 --> 04:20.790
لذلك هذا بسيط للغاية.

04:20.790 --> 04:26.700
خمسة يتوافق مع الحالات التي تم ترميزها نواقل من خمسة أبعاد.

04:26.700 --> 04:31.500
سنرى ما يصفونه تمامًا ، ما يحدث في البيئة على الخريطة.

04:31.500 --> 04:34.980
ثم ثلاثة هو عدد الإجراءات التي سيكون هناك.

04:34.980 --> 04:42.420
ثلاثة إجراءات محتملة تذهب إلى اليسار ، أو تذهب مباشرة أو يمينًا ، و 0. 9 هي معلمة جاما في خوارزمية التعلم

04:42.570 --> 04:43.710
العميق.

04:44.070 --> 04:44.430
حسنا.

04:44.430 --> 04:46.770
ثم لدينا الإجراء اثنان تناوب.

04:46.770 --> 04:52.920
إذن ، الإجراء الثاني هو متجه من ثلاثة عناصر ، صفر و 20 و -20.

04:53.010 --> 04:59.940
ولذا يتعين علينا القيام بذلك لأن الإجراءات مشفرة بثلاثة أعداد صفر واحد.

05:00.060 --> 05:04.650
اثنان ، وهذا يتوافق مع فهارس هذا الإجراء متجهين للدوران.

05:04.650 --> 05:13.680
لذلك على سبيل المثال ، إذا كان الإجراء الذي تم تحديده في الوقت T يساوي صفرًا ، فإن الصفر جيدًا يتوافق مع

05:13.680 --> 05:21.210
مؤشر هذا الإجراء لمتجه الدوران وقيمة مؤشر الصفر هي صفر ، وبالتالي سنذهب مباشرة.

05:21.240 --> 05:28.740
ثم إذا كان الإجراء المحدد واحدًا ، فهذا يتوافق جيدًا مع فهرس هذا الإجراء لمتجه الدوران وقيمة

05:28.740 --> 05:32.550
هذا المتجه الذي يحتوي على فهرس واحد هو 20.

05:32.550 --> 05:38.760
إذن ، 20 تقابل دورانًا بمقدار 20 درجة ، وهذا يعني أن القلب سيتجه 20 درجة إلى اليمين.

05:39.030 --> 05:45.780
ثم إذا كان الإجراء المحدد اثنين ، حسنًا ، اثنان يتوافقان مع الفهرس ، واثنان من هذا الإجراء لمتجه

05:45.780 --> 05:52.260
الدوران ، وبالتالي فإن النواة ستدور بمقدار -20 درجة ، وبالتالي ستنتقل إلى اليسار.

05:52.350 --> 05:58.860
حسنًا ، بعد ذلك نقدم آخر متغير للمكافأة ، لأننا في كل حالة سنحصل على آخر

05:58.860 --> 06:00.000
مكافأة.

06:00.000 --> 06:04.920
لذا تذكر ، إذا لم تدخل البطاقة في بعض الرمال ، فستكون المكافأة إيجابية.

06:04.920 --> 06:09.390
وإذا أصبحت البطاقة منطقية ، فستحصل على مكافأة سيئة.

06:09.390 --> 06:14.580
وفي كل مرة سيحتوي هذا المتغير على هذه المكافأة التي يحصل عليها في كل مرة.

06:14.580 --> 06:21.570
T ثم نقوم بتهيئة هذه الدورة التدريبية ، وهي عبارة عن متجه يحتوي على المكافأة ، وليس جميعها ، ولكن المكافآت

06:21.570 --> 06:26.910
على نافذة منزلقة بحيث ، كما تعلم ، يمكننا عمل منحنى متوسط درجة المكافأة مع

06:26.910 --> 06:28.920
الاحترام الى وقت.

06:29.250 --> 06:35.070
حسنًا ، في قسم الكود هذا ، نقوم بتهيئة الخريطة ، لذلك نقوم ، على سبيل المثال ، بتهيئة

06:35.070 --> 06:35.940
متغير cen.

06:35.940 --> 06:37.050
لذلك هذا مهم.

06:37.050 --> 06:42.870
سيكون المتغير في الواقع عبارة عن مصفوفة تكون الخلايا فيها وحدات بكسل الخريطة.

06:42.990 --> 06:50.340
وفي كل خلية سيكون لدينا واحد إذا كان هناك بعض المعنى وصفر إذا لم يكن هناك سنت في البداية

06:50.340 --> 06:52.050
، فلن نرسم أي شيء.

06:52.050 --> 06:57.660
لذلك لن يكون هناك أي معنى على الإطلاق ، وبالتالي فإن جميع خلايا مصفوفة الإرسال ستحتوي على صفر.

06:57.660 --> 06:59.220
لذلك سيكون هناك أصفار في كل مكان.

06:59.220 --> 07:05.340
وبمجرد أن نرسم بعض الرمل ، حسنًا ، ستحصل الخلايا التي نرسم عليها المعنى على واحدة ونقوم

07:05.340 --> 07:09.840
بتهيئة المصفوفات بكل الأصفار هنا ، والرمل يساوي و p صفر.

07:10.110 --> 07:13.290
ثم لدينا هذا الشيء المهم وهو الهدف.

07:13.290 --> 07:17.430
لذا فإن الهدف هو النقطة في الخريطة التي سنقوم بتدريب السيارة للوصول إليها.

07:17.430 --> 07:19.410
لذا فهي مثل الوجهة.

07:19.650 --> 07:21.360
إذن ما هو هذا الهدف؟

07:21.360 --> 07:24.840
حسنًا ، ستكون هذه الزاوية العلوية اليسرى من الخريطة.

07:24.840 --> 07:28.320
لذلك سنقوم بتدريب السيارة على الانتقال إلى الزاوية اليسرى العليا من الخريطة.

07:28.320 --> 07:33.030
وبعد ذلك بمجرد وصولها إلى الزاوية اليسرى العليا من الخريطة ، سنقوم بتدريبها على الانتقال إلى الزاوية اليمنى

07:33.030 --> 07:34.230
السفلية من الخريطة.

07:34.230 --> 07:36.450
لذلك يمكننا تخيل السيناريو التالي.

07:36.450 --> 07:42.540
الزاوية العلوية اليسرى من الخريطة هي مطار المدينة ، والركن الأيمن السفلي من الخريطة

07:42.540 --> 07:44.280
هو وسط المدينة.

07:44.280 --> 07:50.040
وسنلجأ إلى سيارات الأجرة أو أوبر للقيام ببعض الرحلات ذهابًا وإيابًا بين المطار ووسط المدينة.

07:50.040 --> 07:55.530
وبالطبع ، سنجعل الاختبار صعبًا على سيارة الأجرة هذه عن طريق رسم بعض الطرق الأكثر صعوبة وإضافة

07:55.530 --> 08:01.140
المزيد والمزيد من العوائق في الشارع لمعرفة ما إذا كان بإمكان التاكسي الانتقال من المطار

08:01.140 --> 08:02.700
إلى وسط المدينة.

08:02.700 --> 08:04.050
لذلك سيكون هذا ممتعا.

08:04.050 --> 08:08.940
ولهذا السبب أقوم هنا بتحديد إحداثيات الهدف الأول.

08:08.940 --> 08:12.480
هذا هو المطار الموجود في أعلى يسار الشاشة.

08:12.690 --> 08:16.140
لذلك ستكون الخريطة مثل مربع مثل هذا.

08:16.620 --> 08:21.780
وإحداثيات الأصل ، أي الإحداثي ، صفر صفر هنا.

08:22.080 --> 08:25.110
ثم أكبر هذه المسافة هنا.

08:25.110 --> 08:32.010
إذن الإحداثيات ، 20 وأكبر ، -20 ستكون هنا في الزاوية اليسرى العليا من الخريطة.

08:32.570 --> 08:35.510
ولماذا اخترت 20 وليس الصفر؟

08:35.540 --> 08:40.180
حسنًا ، هذا لأننا نريد تدريب السيارة ، وليس الاندفاع إلى الجدران.

08:40.190 --> 08:42.530
كما تعلم ، نريد تدريبه على تجنب الجدران أيضًا.

08:42.530 --> 08:46.530
وبالتالي ، يجب ألا يكون الهدف صفرًا لأننا لا نريد أن تلمس السيارة الحائط.

08:46.550 --> 08:47.960
نريد أن نلمس الهدف.

08:47.960 --> 08:49.370
لذلك علينا وضعها هنا.

08:50.000 --> 08:55.160
ثم أقوم بتقديم آخر متغير مسافة ، والذي يعطي فقط المسافة الحالية من السيارة إلى

08:55.160 --> 08:58.190
الهدف والتي أقوم ببدء تشغيلها على الصفر.

08:58.890 --> 08:59.400
حسنا.

08:59.400 --> 09:02.160
والآن حان الوقت لصنع السيارة واللعبة.

09:02.160 --> 09:06.540
لذلك سنقوم بعمل فئتين ، فئة واحدة للسيارة وفئة واحدة للعبة.

09:06.540 --> 09:10.800
وداخل هذه الفصول ، سنقوم بالفعل ببعض الروابط مع أعيننا.

09:10.890 --> 09:13.020
لذلك سنفعل ذلك في البرنامج التعليمي التالي.

09:13.020 --> 09:14.490
وحتى ذلك الحين ، استمتع.

09:14.490 --> 09:14.940
أنا.
