WEBVTT

00:00.270 --> 00:02.910
مرحبًا ومرحبًا بكم في برنامج Python التعليمي هذا.

00:02.940 --> 00:09.120
والآن بعد أن أصبحنا مستعدين لتدريب الشبكة لتقليل المسافة المربعة بين المخرجات والهدف

00:09.120 --> 00:14.760
، بفضل ما فعلناه بتتبع الأهلية في القسم السابق ، حسنًا ، كنا مستعدين بشكل أساسي لبدء

00:14.760 --> 00:20.640
التدريب بالكامل من خلال الحصول على مدخلاتنا ، أهدافنا ، توقعاتنا ، ثم حساب الخطأ الأخير

00:20.640 --> 00:25.860
بين التنبؤات والهدف ، ثم القيام بالانتشار العكسي باستخدام نزول متدرج عشوائي

00:25.860 --> 00:28.260
لتحديث الأوزان.

00:28.260 --> 00:35.220
لذلك نحن مستعدون للقيام بكل هذا ، ولكن نظرًا لأننا نريد حساب المتوسط المتحرك على 100 خطوة ،

00:35.220 --> 00:40.770
كما تعلمون ، لتتبع المتوسط أثناء إجراء التدريب ، حسنًا ، قبل أن نقوم بهذا

00:40.770 --> 00:47.250
التدريب بالكامل ، سنقوم بعمل فئة الآن ستحصل على هذا المتوسط المتحرك على 100 خطوة.

00:47.250 --> 00:48.180
لذلك لا تقلق.

00:48.180 --> 00:49.350
سنفعل ذلك بسرعة.

00:49.350 --> 00:53.580
سنقوم بعمل فصل دراسي بثلاث وظائف ، لكننا سنفعل كل هذا في هذا البرنامج التعليمي الفردي.

00:53.580 --> 00:54.810
لذلك سنفعل ذلك بسرعة.

00:54.810 --> 00:55.770
لقد فعلنا ذلك بالفعل.

00:55.770 --> 01:00.630
وإلى جانب ذلك ، نريد التركيز على التدريب الآن لأن هذا هو الأهم.

01:00.630 --> 01:03.990
لذلك دعونا نجعل هذا الفصل الآن في هذا البرنامج التعليمي الفردي.

01:04.350 --> 01:04.740
حسنا.

01:04.740 --> 01:10.800
لذلك سنقوم بتقديم فئة جديدة ، والتي سوف نسميها المتوسط المتحرك لأربعة.

01:10.950 --> 01:13.230
ثم هنا نبدأ بالدالة الأولى.

01:13.230 --> 01:18.720
هذا بالطبع ، وظيفة init التي لا تتغير أبدًا فيها.

01:18.720 --> 01:21.900
وستأخذ وظيفة init هذه وسيطين.

01:21.900 --> 01:30.390
الأول هو الذات للمتوسط المتحرك للكائن المستقبلي والحجم ، والذي سيتوافق مع حجم قائمة

01:30.390 --> 01:34.440
المكافآت التي سنقوم بحساب المتوسط لها.

01:34.440 --> 01:36.240
إذن هذا سيكون 100

01:36.720 --> 01:37.080
حسنا.

01:37.080 --> 01:41.880
إذن ، لدينا سعتنا للدالة init ، والآن لننتقل إلى داخل الدالة.

01:41.890 --> 01:43.050
الآن أنت تعرف ماذا تفعل.

01:43.080 --> 01:47.220
علينا تهيئة المتغيرات الخاصة بالكائن.

01:47.220 --> 01:54.120
وهذه الأمور جيدة أولاً ، ستكون القائمة الأولى قائمة بالمكافآت.

01:54.120 --> 01:59.130
لذلك ستكون هذه القائمة التي تحتوي على 100 مكافأة والتي سنحسب متوسطها.

01:59.130 --> 02:05.220
هنا الآن ، نحن ببساطة نبدأ هذه القائمة بهذه القائمة الفارغة هنا.

02:05.640 --> 02:06.720
لذا قائمة المكافآت.

02:06.720 --> 02:14.040
وبعد ذلك ، سيكون المتغير الثاني لأجسامنا المستقبلية ، بالطبع ، الحجم والحجم سيكون

02:14.040 --> 02:21.000
مساويًا للحجة التي سندخلها عند إنشاء كائنات المتوسط المتحرك في المستقبل ، لذا

02:21.000 --> 02:29.250
فإن الحجم هنا ونحن مستعدون بالفعل انتقل إلى الوظيفة التالية التي ستكون وظيفة ADD والتي ستضيف

02:29.250 --> 02:32.100
المكافآت التراكمية.

02:32.100 --> 02:35.430
كن حذرا ليست المكافأة البسيطة ، إنها المكافأة التراكمية.

02:35.430 --> 02:40.560
وهذا لأننا ، كما تعلمون ، نقوم بتتبع الأهلية ، وبالتالي نتعلم كل عشر خطوات

02:40.560 --> 02:44.430
، وبالتالي نتعلم بمكافأة تراكمية وليس بمكافأة بسيطة.

02:44.430 --> 02:52.440
لذا فإن وظيفة الإضافة هذه التي نحن بصدد القيام بها ستضيف المكافأة التراكمية إلى قائمة المكافآت هذه.

02:52.590 --> 02:59.220
إذن ، def ، سنسميها ADD ، بالطبع ، وستأخذ دالة ADD هذه وسيطتين.

02:59.220 --> 03:05.010
الأول هو الذات لأننا سنستخدم قائمة المكافآت هذه هنا لأننا ببساطة سنلحق المكافآت

03:05.010 --> 03:08.250
التراكمية بقائمة المكافآت هذه.

03:08.250 --> 03:11.550
لذلك نحن بحاجة إلى هذه الذات لتكون قادرة على الحصول على هذه الذات.

03:11.550 --> 03:17.760
والثاني سيكون المكافأة التي ستمثل المكافأة التراكمية.

03:18.420 --> 03:18.810
حسنا.

03:18.810 --> 03:21.620
إذن ، هاتان الوسيطتان لدالة ADD.

03:21.750 --> 03:25.230
الآن دعنا نذهب داخل الدالة ودعنا نحدد ما يجب أن تفعله.

03:25.590 --> 03:25.850
تمام.

03:25.890 --> 03:32.190
ببساطة شديدة ، أول شيء يجب أن يفعله هو عندما نحصل على مكافأة تراكمية ، مكافأة جديدة ، كما تعلم ، عندما

03:32.190 --> 03:38.160
نتقدم في عشر خطوات جديدة ، حسنًا ، ما يتعين علينا القيام به هو إضافة هذه المكافآت التراكمية إلى

03:38.160 --> 03:39.060
القائمة.

03:39.060 --> 03:40.410
وهذا بالضبط ما سنفعله.

03:40.410 --> 03:45.540
سنقوم بكتابة سطر من التعليمات البرمجية سيضيف هذه المكافأة التراكمية الجديدة التي نحصل عليها

03:45.540 --> 03:48.840
بعد التقدم في عشر خطوات إلى قائمة المكافآت هذه هنا.

03:49.050 --> 03:55.920
وللقيام بذلك ، يتعين علينا فصل شرطين ، لأننا سنعمل مع الدُفعات ، حسنًا ، ستكون المكافآت في

03:55.920 --> 04:01.440
بعض القوائم ، لكن في بعض الحالات الأخرى يمكن أن تكون المكافآت أيضًا كعنصر

04:01.440 --> 04:02.040
واحد.

04:02.040 --> 04:09.480
وبناء الجملة لإضافة عنصر إلى قائمة ، وهي قائمة المكافآت هنا ليست هي نفسها سواء

04:09.480 --> 04:13.080
كنت تضيف قائمة أو عنصرًا واحدًا.

04:13.080 --> 04:16.860
لذلك علينا فقط أن نجعل هذا الشرط الذي سيفصل بين هاتين الحالتين.

04:16.860 --> 04:22.530
ولنبدأ بالحالة الأولى ، وهي الحالة عندما يكون ما نضيفه إلى قائمة المكافآت هذه عبارة

04:22.530 --> 04:23.430
عن قائمة.

04:23.430 --> 04:29.700
وللقيام بذلك ، سنضيف مثالاً ، وفي الأقواس ، أدخل وسيطتين.

04:29.700 --> 04:34.080
الأول هو المكافأة التي نضيفها.

04:34.440 --> 04:37.170
والثاني هو القائمة.

04:37.410 --> 04:47.340
وبالتالي ، إذا كان هذا مثالًا ، فإن قائمة المكافآت تعني إذا كانت المكافآت مدرجة في قائمة ، وبالتالي إذا كانت

04:47.340 --> 04:54.870
المكافآت مدرجة في قائمة ، فإن ما نفعله هو ببساطة الذات التي نأخذها في قائمتنا.

04:55.680 --> 04:56.520
المكافآت.

04:57.450 --> 05:05.040
وسنضيف هذه القائمة لأن هذه قائمة ، ما يمكننا فعله هو استخدام عملية إضافة بسيطة

05:05.040 --> 05:08.250
لأنه يمكننا جمع قائمتين معًا.

05:08.580 --> 05:09.180
المكافآت.

05:09.180 --> 05:11.670
ها هي القائمة ، لأن هذا سيساوي صحيحًا.

05:11.700 --> 05:13.110
يعني لو كنا في هذه الحالة.

05:13.110 --> 05:21.000
وبالتالي يمكننا ببساطة تلخيص هذه القائمة في قائمة المكافآت لدينا ، وبالتالي يمكننا ببساطة إضافة قائمة المكافآت

05:21.000 --> 05:23.970
هنا بالإضافة إلى المكافآت المتساوية.

05:24.660 --> 05:30.300
ومن خلال القيام بذلك ، نقوم فقط بتوسيع القائمة بجمع هاتين القائمتين معًا.

05:30.930 --> 05:31.440
حسنا.

05:31.440 --> 05:33.390
ثم الشرط الثاني.

05:33.660 --> 05:35.910
لذلك يمكننا ببساطة إضافة آخر.

05:36.030 --> 05:41.640
هذا إذا كانت المكافأة ليست قائمة ، وبالتالي ، إذا كانت عنصرًا واحدًا.

05:41.880 --> 05:44.180
وماذا يحدث في هذه الحالة؟

05:44.190 --> 05:45.210
حسنًا ، هذا هو نفسه.

05:45.210 --> 05:52.650
نريد إضافة المكافآت إلى قائمة المكافآت الخاصة بنا ، لكن لا يمكننا استخدام هذه الصيغة لأن المكافآت لن تكون قائمة

05:52.650 --> 05:53.690
بعد الآن.

05:53.700 --> 05:55.250
سيكون عنصرًا واحدًا.

05:55.260 --> 05:59.850
ولذا فإن ما نحتاج إلى استخدامه هو بناء جملة آخر ، وهو وظيفة الإلحاق.

05:59.850 --> 06:05.040
عندما تريد إضافة عنصر واحد إلى قائمة ، يمكنك إضافة بعض العناصر التي تحتاجها لاستخدام وظيفة

06:05.040 --> 06:05.670
الإلحاق.

06:05.670 --> 06:07.770
وهذا بالضبط ما سنفعله الآن.

06:07.770 --> 06:18.110
سنأخذ قائمة مكافآت الكائن ونلصقها هنا ثم نضيف نقطة إلحاق.

06:18.120 --> 06:18.930
هناك نذهب.

06:18.930 --> 06:24.540
أول واحد وبالطبع بين قوسين نقوم بإدخال العناصر التي نريد إلحاقها.

06:24.540 --> 06:26.220
وهذا بالطبع مكافأة.

06:26.220 --> 06:29.280
لكن المكافآت في هذه الحالة لن تكون قائمة.

06:29.280 --> 06:34.110
سيكون عنصرًا واحدًا ، مثل مكافأة تراكمية واحدة ، وليس في قائمة.

06:34.740 --> 06:35.160
حسنا.

06:35.160 --> 06:39.300
ثم نريد القيام بذلك ، لكن علينا الآن إضافة شيء آخر.

06:39.300 --> 06:45.180
هذا ما يحدث عندما تحصل قائمة المكافآت هذه على أكثر من 100 عنصر.

06:45.270 --> 06:51.210
حسنًا ، في هذه الحالة ، ما يتعين علينا القيام به هو حذف العنصر الأول من قائمة المكافآت هذه

06:51.210 --> 06:56.160
للتأكد من أن قائمة المكافآت هذه دائمًا لا تحتوي على أكثر من 100 عنصر.

06:56.160 --> 07:00.330
لذلك تمامًا مثل ما فعلناه للسيارة ذاتية القيادة عند إنشاء نافذة النتيجة.

07:00.330 --> 07:08.640
وللتأكد من ذلك ، سنضيف شرطًا جيدًا يحدد أنه كلما كان طول قائمة المكافآت الخاصة بنا ، يكون

07:08.910 --> 07:15.720
هذا هو عدد العناصر في قائمة المكافآت لدينا عندما يكون هذا الرقم أكبر

07:15.720 --> 07:23.040
من الذات ، هذا الحجم ، هذا هو الحجم الذي حددناه هنا والذي سيساوي لاحقًا 100 عند

07:23.040 --> 07:25.350
إنشاء الكائن.

07:25.350 --> 07:30.180
حسنًا ، بمجرد أن يصبح عدد عناصر قائمة المكافآت هذه أكبر من 100.

07:30.180 --> 07:38.790
حسنًا ، ما نريد فعله هو حذف العنصر الأول من قائمة المكافآت التي يمكننا الحصول عليها من خلال أخذ الرقم

07:38.790 --> 07:40.320
القياسي صفرًا.

07:40.320 --> 07:43.110
هذا هو الفهرس الأول في قائمة المكافآت الخاصة بنا.

07:43.350 --> 07:50.730
هذا هو العنصر الأول في قائمة المكافآت الخاصة بنا ، ونريد حذفه عندما تحتوي قائمة المكافآت لدينا

07:50.730 --> 07:52.890
على أكثر من 100 عنصر.

07:53.340 --> 08:00.030
لذلك مع هذا مع هذا الشرط هنا ، نتأكد من أن قائمة المكافآت لدينا لا تحتوي أبدًا على

08:00.030 --> 08:01.620
أكثر من 100 عنصر.

08:01.950 --> 08:09.300
وبالتالي ، ما يمكننا فعله الآن هو إنشاء دالة جديدة لحساب متوسط قائمة المكافآت لدينا والتي

08:09.300 --> 08:16.290
ستحتوي على 100 عنصر في التشغيل ، وبالتالي سنحسب المتوسط المتحرك على 100 خطوة في كل

08:16.290 --> 08:17.280
مرة.

08:17.880 --> 08:19.590
لذلك دعونا نجعل هذه الوظيفة الجديدة.

08:19.590 --> 08:24.600
سيكون الأمر سهلاً للغاية نظرًا لوجود الوظيفة الرئيسية في Python ، وهي وظيفة

08:24.630 --> 08:27.180
من NumPy لحساب متوسط القائمة.

08:27.480 --> 08:31.710
فلنقدم هنا آخر دالة لدينا ، والتي سنسميها بالمتوسط.

08:31.980 --> 08:37.050
وستأخذ هذه الوظيفة حجة واحدة ستكون ذاتية ، لأننا بالطبع سنستخدم

08:37.050 --> 08:41.430
، قائمة المكافآت لدينا ، والتي هي متغير من أجسامنا.

08:41.430 --> 08:44.220
هكذا النفس والقولون.

08:44.490 --> 08:51.630
والآن دعونا نحسب المتوسط ، ولذا سنعيد المتوسط بشكل مباشر لأنه يمكننا الحصول عليه من خلال

08:51.630 --> 08:55.500
الدالة المتوسطة التي نطبق عليها بالطبع.

08:55.590 --> 09:00.000
حسنًا ، ما نريد حسابه ، يعني ذلك قائمة المكافآت.

09:00.000 --> 09:01.770
أعتقد أنني ما زلت نسخته.

09:01.770 --> 09:02.100
نعم.

09:02.100 --> 09:02.910
هناك نذهب.

09:02.910 --> 09:07.050
لذا فإننا ببساطة نعيد متوسط قائمة المكافآت.

09:07.050 --> 09:11.210
والمتوسط ، كما قلت ، دالة بواسطة non pi.

09:11.220 --> 09:16.500
لذلك أقوم هنا بإضافة الاختصار و p يعني قائمة المكافآت الذاتية.

09:16.500 --> 09:17.460
وها نحن ذا.

09:17.460 --> 09:20.370
لدينا متوسطنا على 100 خطوة.

09:20.850 --> 09:21.540
في احسن الاحوال.

09:21.540 --> 09:23.970
لذلك صنعنا هذا الفصل بكفاءة عالية.

09:23.970 --> 09:28.980
نحصل الآن على التعليمات الخاصة بكيفية الحصول على متوسط متحرك على 100 خطوة.

09:28.980 --> 09:36.300
ونظرًا لأننا سنستخدم كائن متوسط متحرك واحدًا عند القيام بالتدريب ، حسنًا ، فلنقم بالفعل بإنشاء

09:36.300 --> 09:38.490
كائن المتوسط المتحرك هذا.

09:38.490 --> 09:46.260
ولذا سنسميها A وببساطة سيكون Mar كائنًا من الفئة A.

09:46.260 --> 09:54.810
وكما قلنا ، نريد أن يكون الحجم 100 لأننا نريد حساب المتوسط المتحرك على 100 خطوة.

09:54.900 --> 09:55.920
مثالي جدا.

09:55.920 --> 09:56.670
هناك نذهب.

09:56.890 --> 10:01.600
نحن الآن جاهزون لتدريب الذكاء الاصطناعي لدينا لنكون أذكياء في النهاية.

10:01.630 --> 10:02.780
إنه بشأن الوقت.

10:02.800 --> 10:05.960
من هذه النقطة سيصبح الذكاء الاصطناعي لدينا ذكيًا.

10:05.980 --> 10:07.660
لذلك لا يمكنني الانتظار لتدريبها.

10:07.690 --> 10:11.190
سيكون الأمر سهلاً للغاية لأن هذا شيء فعلناه بالفعل.

10:11.200 --> 10:12.580
لكن هذا سيكون ممتعا.

10:12.580 --> 10:18.010
وإلى جانب ذلك ، سيحين الوقت للاستمتاع بمزيد من المرح لأن أعيننا ستكون جاهزة

10:18.010 --> 10:18.640
تمامًا.

10:18.640 --> 10:24.850
هذا مبني وذكي أيضًا ، وبالتالي سنقوم بتنفيذ الكود وبعد ذلك سوف يلعب الذكاء الاصطناعي الخاص بنا

10:24.850 --> 10:32.080
لعبة الموت ، وفي النهاية سنشاهد مقاطع فيديو لعبة الذكاء الاصطناعي الخاصة بنا وسنرى ما إذا كانت ستتمكن من الوصول

10:32.080 --> 10:33.240
إلى السترة.

10:33.250 --> 10:34.340
لذلك لا استطيع الانتظار.

10:34.360 --> 10:35.650
لنقم بهذا التدريب.

10:35.650 --> 10:36.460
وحتى ذلك الحين.

10:36.460 --> 10:37.360
و انا.
