WEBVTT

00:00.300 --> 00:06.270
مرحبًا ومرحبًا بكم في الجزء المثير من إبداعنا ، الجزء الذي نجعله ذكيًا.

00:06.270 --> 00:12.120
هذا بالضبط ما يحدث عندما يقوم تدريب الذكاء الاصطناعي بتدريب ذكاءه للوصول إلى الهدف الذي

00:12.120 --> 00:13.260
نريده أن يحققه.

00:13.260 --> 00:19.020
وللقيام بذلك ، سنقوم بشكل أساسي بتدريب الشبكة العصبية لإخراج التنبؤات الصحيحة ، وبعد ذلك

00:19.020 --> 00:24.360
يكون كل شيء جاهزًا بالفعل لأن هذه الإشارات الناتجة من الدماغ لديها بالفعل الإرسال

00:24.360 --> 00:27.510
الصحيح إلى الجسم لتشغيل الإجراءات النهائية.

00:27.510 --> 00:32.220
إذن ، ما نحن بصدد فعله الآن هو شيء فعلناه بالفعل من قبل.

00:32.220 --> 00:37.410
سنأخذ بعض الدُفعات العشوائية من الذاكرة ، ونحصل على مدخلاتنا من هذه العينات ، ونحصل

00:37.410 --> 00:42.810
على المخرجات ، ونحصل على الأهداف ، ونحصل على التنبؤات ، ونحسب المنطقة الأخيرة بين التنبؤات

00:42.810 --> 00:47.970
والأهداف ، ثم نقوم بالانتشار العكسي باستخدام العشوائية نزول التدرج لتحديث الأوزان

00:47.970 --> 00:51.660
وفقًا لمدى مساهمتها في هذا الخطأ الأخير.

00:51.750 --> 00:53.040
لذلك دعونا نفعل كل هذا.

00:53.040 --> 00:57.660
سترى كيف سيكون الأمر سهلاً للغاية لأن لدينا بالفعل جميع الأدوات لتنفيذ

00:57.660 --> 00:58.140
ذلك.

00:58.140 --> 01:04.740
ليس لدينا فقط أدوات PyTorch مثل Optimizer والوظائف المفقودة ، ولكن لدينا أيضًا جميع الفئات

01:04.740 --> 01:10.530
التي أنشأناها من قبل ، مثل عقولنا بالطبع ، والتي سنستخدمها للحصول على التنبؤات.

01:10.530 --> 01:17.640
بعد ذلك ، ستجعل تجربتنا وإعادة التشغيل والتنفيذ وتتبع الأهلية وكل هذه الأدوات مجتمعة مع أدوات

01:17.640 --> 01:23.280
PyTorch أداءً فائقًا للتدريب وبالتالي سنحصل في النهاية على ذكاء اصطناعي

01:23.280 --> 01:24.360
فائق القوة.

01:24.540 --> 01:26.340
لذلك دعونا نجعل هذا التدريب يحدث.

01:26.340 --> 01:28.260
لنجعل الذكاء الاصطناعي لدينا ذكيًا.

01:28.260 --> 01:33.390
وأول شيء سنفعله الآن هو الحصول على الوظيفة الأخيرة التي سنستخدمها أثناء

01:33.390 --> 01:37.860
التدريب عند حساب الخطأ والمحسن ، وهذا هو أول شيء سنفعله.

01:37.860 --> 01:40.590
لذلك دعونا ننشئ متغيرًا للدالة الأخيرة.

01:40.590 --> 01:42.390
سوف نسميها خسارة.

01:42.720 --> 01:50.550
وسيكون هذا مساويًا لدالة خسارة MSI من الوحدة النمطية RN.

01:50.760 --> 01:56.520
ثم خسارة MSI هذه ، هذه هي الوظيفة الأخيرة التي سنستخدمها لأن تنبؤاتنا أساسًا هي قيم

01:56.520 --> 01:56.910
Q.

01:57.120 --> 01:59.940
نحن نتوقع قيم Q للإجراءات المختلفة.

01:59.940 --> 02:05.970
وبالتالي ، نظرًا لأن هذه أرقام حقيقية ، حسنًا ، فإننا نقوم نوعًا ما ببعض الشبكات العصبية للانحدار ، وبالتالي

02:05.970 --> 02:09.060
فإن الوظيفة الأخيرة هي متوسط الخطأ التربيعي.

02:09.060 --> 02:12.090
هذه هي الوظيفة الأخيرة التي نستخدمها بشكل عام للانحدار.

02:12.420 --> 02:13.020
حسنا.

02:13.020 --> 02:16.290
والآن بعد أن أصبح لدينا آخر وظيفة ، دعنا نحصل على المُحسِّن الخاص بنا.

02:16.440 --> 02:21.240
إذن المحسن هنا ، هذا هو المتغير الذي أنشأناه للمحسن.

02:21.240 --> 02:23.940
وسنأخذ كالمعتاد.

02:23.940 --> 02:30.840
أما بالنسبة للسيارة ذاتية القيادة ، فإن Atom Optimizer ، هو مُحسِّن قوي للغاية سيعمل على عجائب

02:30.840 --> 02:31.950
التدريب.

02:31.950 --> 02:36.060
لذلك دعونا نصل إلى هذه الذرة.

02:36.780 --> 02:39.990
وتذكر ، هذا بالضبط بالنسبة للسيارة ذاتية القيادة.

02:39.990 --> 02:42.930
علينا إدخال حجتين أساسيتين.

02:42.930 --> 02:49.200
الأول هو الذي سيجعل الاتصال بين المُحسِّن ومعلمات شبكتنا العصبية

02:49.200 --> 02:52.890
، أي أوزان الخلايا العصبية في دماغنا.

02:52.890 --> 02:56.880
وللقيام بذلك ، نأخذ عقولنا ، والتي نسميها CNN.

02:56.880 --> 02:59.220
هذا هو الشيء الذي صنعناه لأدمغتنا.

02:59.220 --> 03:03.210
ولذا فإن CNN لا تتذكر المعلمات.

03:03.450 --> 03:04.320
هناك نذهب.

03:04.320 --> 03:06.120
وبعض الأقواس.

03:06.270 --> 03:11.970
وهذا يجعل الاتصال بين المُحسِّن وأوزان الخلايا العصبية في دماغ الذكاء الاصطناعي

03:12.000 --> 03:12.660
لدينا.

03:12.690 --> 03:18.870
ثم الحجة الثانية هي معدل التعلم ، وهذا معطى بالخطأ.

03:18.870 --> 03:24.480
ولذا علينا أن نأخذ معدل تعليمي صغير لأننا لا نريد أن نتقارب بسرعة كبيرة ونريد أن يكون

03:24.480 --> 03:29.340
لدينا بعض الاستكشاف ، وبالتالي فإن معدل التعلم الجيد الذي يمكننا أن نأخذه

03:29.340 --> 03:33.360
هنا هو معدل صغير يساوي 0. 01 هذا مفتوح بنسبة 1٪.

03:33.360 --> 03:36.450
أعتقد أن هذا هو نفسه الذي استخدمناه في السيارة ذاتية القيادة.

03:37.390 --> 03:40.570
حسنًا ، لدينا الآن وظيفة أخيرة ، مُحسِّن.

03:40.570 --> 03:43.450
لذلك نحن جاهزون تقريبًا لبدء الحلقة الكاملة.

03:43.450 --> 03:46.060
حسنًا ، في الواقع ، سنبدأ الحلقة الكاملة الآن.

03:46.060 --> 03:51.250
لكن قبل أن نفعل ذلك بقليل ، سنقرر حجم عدد الحقب.

03:51.250 --> 03:57.040
سنقوم بتدريب الذكاء الاصطناعي ، وبالتالي أقوم بإنشاء متغير جديد هنا يتوافق مع هذا

03:57.040 --> 03:58.390
العدد من العهود.

03:59.290 --> 04:02.360
ولنجعلها تساوي 100.

04:02.380 --> 04:04.790
سيكون هذا وسيلة كافية لتدريب العين.

04:04.810 --> 04:11.350
وحتى أنني أراهن أن الذكاء الاصطناعي سينجح في الوصول إلى أفضل طريقة قبل 100 ، مثل 20 أو 30.

04:11.380 --> 04:12.010
دعونا نرى.

04:12.010 --> 04:13.870
لكن في الوقت الحالي ، لنأخذ 100.

04:13.870 --> 04:16.060
وإذا احتجنا إليها ، فسنزيدها.

04:16.060 --> 04:17.980
لكنني لا أعتقد أن ذلك سيكون ضروريًا.

04:18.420 --> 04:18.620
تمام.

04:18.640 --> 04:24.580
والآن بعد أن أصبح لدينا عدد الحقب الخاصة بنا ، يمكننا البدء في جعل حلقة for هذه الحلقة الرئيسية

04:24.580 --> 04:26.880
للتدريب عندما نتدرب على العصور.

04:26.890 --> 04:31.520
لذلك سيكون المتغير المتكرر حقبة.

04:31.540 --> 04:34.450
هذا ما نختاره للعصر.

04:34.930 --> 04:41.740
الآن بالطبع ، سنستخدم دالة النطاق لنقول إننا نريد الانتقال من العصر

04:41.740 --> 04:44.710
الأول الأول إلى عدد من الحقب.

04:47.130 --> 04:51.960
زائد واحد ، لأن تذكر ، لا يتم تضمين الحد العلوي للنطاق.

04:51.960 --> 04:58.080
وبالتالي ، إذا أردنا الصعود إلى 100 ، فعلينا أن نحدد ونكون مربعًا زائد واحد لنرتفع

04:58.080 --> 04:58.920
إلى 100.

04:59.400 --> 05:00.960
حسنًا ، كولين.

05:00.960 --> 05:03.030
والآن دعنا ندخل في الحلقة.

05:03.600 --> 05:03.930
حسنا.

05:03.930 --> 05:08.550
لذا فإن أول شيء سنفعله هو إجراء 200 مرة من عشر خطوات.

05:08.550 --> 05:13.810
لذلك ستكون كل فترة 200 جولة ، واحدة تلو الأخرى من عشر خطوات.

05:13.830 --> 05:18.420
وللقيام بذلك ، لدينا وظيفة خطوات التشغيل هذه من فئة إعادة التشغيل ذات الخبرة.

05:18.420 --> 05:23.400
وبالتالي ، لاستخدام هذه الوظيفة ، والتي هي في الواقع طريقة لأننا سنحصل

05:23.400 --> 05:30.540
عليها من كائن ذاكرتنا ، وهو كائن من فئة ذاكرة إعادة التشغيل لتوليد 200 عملية من عشر خطوات حيث يتعين علينا

05:30.540 --> 05:32.520
أخذ كائن ذاكرتنا.

05:33.350 --> 05:36.140
أذكر أننا أنشأنا هنا.

05:36.140 --> 05:43.520
الذاكرة هي كائن من فئة ذاكرة إعادة التشغيل بخطوات MN وهي عشر خطوات وسعة 10000.

05:43.790 --> 05:52.250
لقد أنشأنا هذا الكائن ومن هذا الكائن نأخذ بشكل جيد ، هذا التشغيل ، الخطوة ، الوظيفة ، تشغيل الخطوات

05:52.250 --> 05:56.630
ونحدد 200 عملية متتالية من عشر خطوات.

05:56.930 --> 06:00.680
لذلك ، في كل حقبة ، سيجري بشكل أساسي 200 خطوة.

06:00.740 --> 06:07.970
والآن بعد أن أصبح لدينا 200 خطوة تعمل في كل مرحلة ، حسنًا ، حان الوقت لأخذ عينات من بعض المجموعات من

06:07.970 --> 06:09.110
هذه الأشواط.

06:09.110 --> 06:10.610
وأخذ عينات من هذه الدفعات.

06:10.610 --> 06:16.700
لدينا وظيفة أخرى من ذاكرتنا ، وهي عينة دفعة ، والتي ستنشئ بالضبط بعض الدُفعات

06:16.700 --> 06:19.100
من 200 عملية تشغيل.

06:19.340 --> 06:25.010
لكن تذكر أن هذه الدُفعات هي مجموعات زمنية من سلسلة التحولات.

06:25.010 --> 06:30.440
هذه سلسلة من عشر خطوات على عكس ما كانت عليه من قبل ، حيث كانت الدُفعات عبارة عن مجموعات من التحولات

06:30.440 --> 06:31.640
الفردية هنا.

06:31.640 --> 06:37.130
هذه المرة ستكون مجموعات من عشر خطوات ، عشر انتقالات ، وبالتالي حان الوقت الآن

06:37.130 --> 06:45.230
للحصول على هذه الدُفعات العشوائية من ذاكرتنا والحصول عليها ، نستخدم وظيفة الدُفعة النموذجية التي يتعين علينا تطبيق

06:45.230 --> 06:47.060
حجم الدُفعة عليها.

06:47.060 --> 06:53.690
وبالنسبة لحجم الدُفعة ، يمكننا أن نأخذ 32 أو حتى 64 أو حتى 128.

06:54.050 --> 06:57.140
تذكر ، بالنسبة لأحجام الدُفعات ، من الشائع استخدامها.

06:57.140 --> 07:03.620
32 هذا ما ستراه بشكل عام في معماريات الشبكات العصبية عند القيام ببعض التعلم الجماعي.

07:03.620 --> 07:05.600
لكن الأمر مختلف هذه المرة.

07:05.600 --> 07:11.630
نحن فقط نأخذ عينات من بعض الدُفعات المكونة من عشر خطوات ، لذلك من الأفضل أخذ دفعات بأحجام أكبر.

07:11.630 --> 07:14.990
لهذا السبب يمكننا أخذ 64 أو 128.

07:14.990 --> 07:17.000
لذلك سنأخذ 128.

07:17.240 --> 07:24.770
وفي الواقع ، سيكون هذا داخل حلقة من أربع حلقات لأننا نريد أن نأخذ عدة دفعات ونأخذها في ما

07:24.770 --> 07:29.090
يتم إرجاعه بواسطة دالة الدُفعة النموذجية هذه.

07:29.330 --> 07:38.750
لذا فإن هذه الحلقة الخاصة بالدفعة في عينة الذاكرة 128 تعني أن كل 128 خطوة ، حسنًا ، ستعطينا

07:38.750 --> 07:47.390
ذاكرتنا دفعة بحجم 128 ، والتي ستحتوي في الواقع على آخر 128 خطوة تم تشغيلها للتو.

07:47.810 --> 07:54.230
لقد حصلنا للتو على بعض المجموعات بحجم 128 وسيحدث التعلم على هذه المجموعات.

07:54.230 --> 07:58.700
وإلى جانب ذلك ، داخل هذه المجموعات ، سيكون لدينا الأهلية ، تتبع التشغيل ، كما تعلم ، لتعلم

07:58.700 --> 07:59.660
كل عشر خطوات.

08:00.200 --> 08:00.620
حسنا.

08:00.620 --> 08:06.920
إذن الآن داخل هذه الحلقة ، والتي لا تزال تحدث في حقبة واحدة ، ولكن هذه المرة نحن في مجموعة

08:06.920 --> 08:07.550
محددة.

08:07.670 --> 08:14.300
والآن أول شيء سنفعله هو أننا سنحصل على مدخلاتنا وأهدافنا بشكل منفصل.

08:14.450 --> 08:16.610
وهذا ، كما أخبرتك ، سهل للغاية.

08:16.610 --> 08:21.500
يمكننا القيام بذلك باستخدام إحدى الأدوات التي طبقناها ، وهي تتبع الأهلية.

08:21.500 --> 08:28.160
كما ترون هنا ، تأخذ وظيفة تتبع الأهلية هذه دفعة كمدخلات والآن لدينا الدُفعة

08:28.160 --> 08:32.270
وإرجاعها كمخرجات ومدخلات وأهداف.

08:32.270 --> 08:37.640
إذن ما يمكننا فعله الآن هو إنشاء متغيرين جديدين سيكونان المدخلات

08:37.640 --> 08:42.290
والهدف والقيام بهذه المدخلات في الهدف.

08:43.220 --> 08:44.000
يساوي.

08:44.030 --> 08:48.840
ما يُرجع بالضبط وظيفة تتبع الأهلية هذه ينطبق على الدُفعة.

08:48.860 --> 08:52.190
لذلك سنطبق هذه الوظيفة على دفعة الحلقة.

08:52.190 --> 08:55.340
ولذا فإن ما سنفعله هو مجرد الأهلية.

08:56.410 --> 09:00.340
تم تطبيق التتبع على دفعة الحلقة الخاصة بنا.

09:00.640 --> 09:04.210
حسنًا ، هذا يمنحنا المدخلات والأهداف.

09:04.210 --> 09:08.020
ولكن في PyTorch ، هناك دائمًا شيء آخر يتعين علينا القيام به.

09:08.020 --> 09:13.510
وبالطبع ، هذا هو تحويل مدخلات الشبكة العصبية والأهداف أيضًا إلى بعض متغيرات التعذيب

09:13.510 --> 09:15.220
، ولكن بدون تحرير.

09:15.220 --> 09:16.140
لا يوجد شئ جديد.

09:16.150 --> 09:17.430
نحن نعرف كيف نفعل ذلك.

09:17.440 --> 09:18.460
يمكننا أن نفعل ذلك بهذه الطريقة.

09:18.460 --> 09:26.740
نأخذ مدخلاتنا ، ثم أهدافنا ، وستكون مساوية للمدخلات المتغيرة.

09:27.740 --> 09:33.800
هذا للمدخلات والأهداف المتغيرة وهذا للأهداف.

09:34.070 --> 09:34.880
حسنا.

09:35.210 --> 09:42.680
لذلك يتم تحويل مدخلات الدماغ إلى بعض متغيرات الشعلة ويتم تحويل الأهداف أيضًا إلى بعض متغيرات

09:42.680 --> 09:44.130
الشعلة.

09:44.150 --> 09:48.530
الآن يمكننا إدخال المدخلات في الشبكة العصبية.

09:48.530 --> 09:50.120
ولماذا نحن بحاجة للقيام بذلك؟

09:50.150 --> 09:55.430
ذلك لأن الخطوة التالية هي الحصول على التنبؤات التي لدينا ، والمدخلات التي علينا استهدافها.

09:55.460 --> 10:00.110
الآن ، بالطبع ، نحتاج إلى تنبؤاتنا ، لأن ما يحدث بعد ذلك هو أننا سنحسب الخسارة

10:00.110 --> 10:02.360
بين التوقعات والأهداف.

10:02.900 --> 10:06.570
لذلك دعونا نحصل على هذه التنبؤات للحصول عليها.

10:06.590 --> 10:07.910
حسنًا ، مرة أخرى ، هذا بسيط جدًا.

10:07.910 --> 10:14.750
الآن نحتاج فقط إلى أخذ دماغنا ، وهو CNN ، شبكتنا العصبية التلافيفية ، وتطبيقها

10:14.750 --> 10:16.970
على مدخلاتنا.

10:17.240 --> 10:18.140
هناك نذهب.

10:18.230 --> 10:23.480
تدخل المدخلات إلى الشبكة العصبية ، وستقوم الشبكة العصبية بإخراج التنبؤات.

10:24.150 --> 10:24.870
في احسن الاحوال.

10:24.870 --> 10:28.560
الآن لدينا التوقعات ، لدينا الأهداف حتى نحصل على الخسارة.

10:28.560 --> 10:30.030
وهذه هي الخطوة التالية.

10:30.210 --> 10:35.070
سنقوم بإدخال متغير جديد لأننا سنحصل الآن على الخطأ الأخير ، والذي يختلف عن الوظيفة

10:35.070 --> 10:39.900
السابقة ، لأننا نستخدم الوظيفة الأخيرة للحصول على الخطأ الأخير.

10:39.930 --> 10:48.960
لذا أقل خطأ هنا وأننا سنحصل عليه مع الوظيفة الأخيرة المطبقة على تنبؤاتنا.

10:49.650 --> 10:51.360
والأهداف.

10:52.170 --> 10:52.980
هناك نذهب.

10:53.370 --> 10:55.020
شاهد كيف أصبح كل شيء سلسًا الآن.

10:55.050 --> 10:56.160
كل شيء منطقي.

10:56.160 --> 10:58.230
نحصل على المدخلات أولا الهدف.

10:58.230 --> 11:00.540
ثم بفضل المدخلات ، نحصل على التنبؤات.

11:00.540 --> 11:03.960
ثم بفضل التوقعات والأهداف ، نحصل على خطأ أقل.

11:04.990 --> 11:07.200
لذلك منطقي جدا وسلس.

11:07.210 --> 11:09.040
والآن ما هي الخطوة التالية؟

11:09.070 --> 11:10.770
حسنًا ، نفس المسار المنطقي.

11:10.780 --> 11:16.420
الآن بعد أن حصلنا على آخر ما يمكننا العودة إليه ، قم بنشر هذا الخطأ الأقل مرة أخرى في الشبكة العصبية لتحديث

11:16.420 --> 11:17.080
الأوزان.

11:17.080 --> 11:22.150
ونفعل ذلك باستخدام النسب المتدرج العشوائي ولإجراء هبوط التدرج العشوائي ، نحتاج إلى

11:22.150 --> 11:26.290
مُحسِّننا ، لكننا حصلنا عليه بالفعل هنا ، مُحسِّن الذرة الخاص بنا.

11:26.290 --> 11:29.230
لكن الآن في هذه المرحلة ، تذكر ما يتعين علينا القيام به.

11:29.230 --> 11:32.380
يجب أن نقوم بتهيئته وتهيئته.

11:32.380 --> 11:40.780
تذكر أننا نأخذ كائن المحسن الخاص بنا ثم نطبق طريقة الشبكة الصفرية.

11:41.460 --> 11:41.920
ثم نذهب.

11:41.920 --> 11:45.240
لا ننسى القوس الذي يهيئها.

11:45.360 --> 11:50.900
والآن الخطوة التالية هي إعادة نشر الخطأ الأخير مرة أخرى في الشبكة العصبية.

11:50.910 --> 11:58.960
وللقيام بذلك حيث نأخذ خطأنا الأخير ونطبق عليه طريقة الرجوع.

11:58.980 --> 12:02.010
لذلك هذا بالضبط لتطبيق التكاثر العكسي.

12:02.010 --> 12:07.530
ثم أخيرًا ، الآن بعد أن تم نشر الخطأ الأخير في الشبكة الجديدة ، حسنًا ، يمكننا تحديث الأوزان

12:07.530 --> 12:09.780
باستخدام نزول متدرج عشوائي.

12:10.260 --> 12:17.190
وللقيام بذلك ، تذكر ، أخذنا المحسن الخاص بنا ثم طبقنا طريقة الخطوة هذه.

12:17.370 --> 12:18.310
هناك نذهب.

12:18.330 --> 12:20.120
يتم الآن تحديث الأوزان.

12:20.130 --> 12:25.740
كما أخبرتك ، لم نقم بذلك بالفعل ، ولكن الآن يبدو بسيطًا جدًا وطبيعيًا.

12:26.070 --> 12:28.520
لذا الآن سنقوم بشيء ممتع.

12:28.530 --> 12:34.620
سنقوم بطباعة متوسط المكافأة ، كل فترة حتى نتمكن من تتبع كيف يسير الذكاء الاصطناعي ، وكيف

12:34.620 --> 12:36.040
يسير التدريب.

12:36.060 --> 12:40.530
نريد أن نرى متوسط المكافأة يتزايد على مدى خطوات العصور.

12:40.530 --> 12:44.040
وفي البداية ، بالطبع ، هناك مرحلة الاستكشاف هذه.

12:44.040 --> 12:49.680
لذلك قد لا يزداد متوسط المكافأة في البداية ، ولكن بمجرد وصولها إلى مرحلة الاستغلال

12:49.680 --> 12:56.190
، سنرى أن متوسط المكافأة يزداد بالتأكيد وسيزداد إلى مستوى معين ، وهو عندما تصل إلى السترة

12:56.190 --> 12:58.860
بأسرع ما يمكن المستطاع.

12:59.310 --> 13:01.470
لذلك لنبدأ بالطباعة.

13:01.980 --> 13:07.500
كما تعلمون ، نحن نقوم بذلك في فترة واحدة ، لذلك علينا أن نعود إلى الحلقة

13:07.500 --> 13:15.270
هنا ونطبعها ثم نطبع بشكل جيد أولًا عمودًا ثم نسبة مئوية لأننا سنقوم بتحويل كل شيء إلى سلسلة

13:15.270 --> 13:16.380
أفضل.

13:16.710 --> 13:21.300
ثم نضيف متوسط المكافأة.

13:22.540 --> 13:25.300
ثم نضيف النسب المئوية أيضًا.

13:25.600 --> 13:27.880
ثم سنغلق الاقتباس.

13:28.960 --> 13:30.700
ثم نضيف نسبة مئوية.

13:30.700 --> 13:36.670
وعلى الجانب الآخر ، كما تعلم ، نقوم بإدخال المتغيرات التي ستكون هذا الشخص الأول

13:36.670 --> 13:42.940
الذي سيكون EPC هنا والمتغير الثاني المقابل لمتوسط المكافأة الذي سنحسبه الآن.

13:42.940 --> 13:45.670
لذا فإن متوسط متغير المكافأة غير موجود بعد.

13:45.670 --> 13:47.770
سنقوم بإنشائه الآن.

13:48.010 --> 13:52.120
لذلك سنستخدم عصر STR.

13:52.450 --> 13:55.450
حتى لو كانت الفترة رقمًا ، فسنحولها إلى سلسلة.

13:55.450 --> 13:57.340
هذا أفضل و.

13:58.030 --> 14:02.080
سنضيف نجمة يمكن أن تكون متوسط المكافأة.

14:02.080 --> 14:08.140
ولذا سننشئ متغيرًا نسميه مكافأة VG ، والآن سننشئ هذا المتغير

14:08.140 --> 14:10.000
ونحسبه.

14:10.960 --> 14:12.430
لذلك دعونا نفعل هذا.

14:12.430 --> 14:13.930
هذا هو الشيء الوحيد الذي كان علينا فعله.

14:13.930 --> 14:16.090
هذه حقبة لدينا بالفعل.

14:16.120 --> 14:20.140
الآن دعونا نحسب متوسط المكافأة ونحتاج إلى حسابها هنا.

14:20.140 --> 14:27.100
ما زلنا في الحلقة ولكن خارج حلقة الدُفعة لأننا الآن لدينا مجموعة عينات لدينا ولدينا تدريبنا يحدث

14:27.100 --> 14:28.210
في الدُفعة.

14:28.210 --> 14:32.080
ولكن يتم الآن الانتشار الأمامي بالإضافة إلى الانتشار العكسي في الدُفعة.

14:32.080 --> 14:38.890
لذلك نحن نعود إلى حلقة العصر ويمكننا الآن حساب المكافآت التراكمية التي يمكننا القيام بها باستخدام

14:38.890 --> 14:44.920
كائن خطوات النهاية لأن كائن الخطوة النهائية لدينا يحتوي على هذه الوظيفة.

14:44.920 --> 14:51.490
سنقوم بالخطوات التي تسمح لنا بالحصول على المكافآت التراكمية التي تحدث في الخطوات أثناء تشغيل الخطوات.

14:51.490 --> 14:59.500
لذلك سنستخدمه الآن لتحديث المكافآت الجديدة للخطوات ، ثم سنقوم بتحديث كائن المتوسط

14:59.500 --> 15:07.750
المتحرك بإضافة المكافآت التراكمية إلى كائن المتوسط المتحرك ثم إعادة حساب المتوسط.

15:07.750 --> 15:10.090
وهذه هي الطريقة التي نحصل بها على متوسط المكافأة.

15:10.480 --> 15:11.500
لذلك دعونا نفعل هذا.

15:11.500 --> 15:14.890
أول شيء نحتاجه هو المكافآت التي يتم تحديثها.

15:14.890 --> 15:17.140
لذلك دعونا نسميها مكافآت.

15:18.080 --> 15:19.010
خطوات.

15:19.250 --> 15:24.000
وبعد ذلك ، كما قلنا ، نتخذ خطوات PN الخاصة بنا.

15:24.020 --> 15:30.830
الكائن الذي كان بمثابة تذكير تم إنشاؤه هنا وهو كائن من فئة PN Step Progress من ملف إعادة التشغيل

15:30.830 --> 15:33.530
الخاص بنا ، لذلك كائن خطوات PN.

15:33.920 --> 15:39.710
ثم نضيف خطوات المكافآت ثم بعض الأقواس.

15:39.710 --> 15:43.930
حسنًا ، حتى نحصل على المكافآت التراكمية الجديدة للخطوات.

15:43.940 --> 15:50.930
حسنًا ، ولكن بعد ذلك نحتاج إلى إضافة هذه المكافآت التراكمية الجديدة في كائن المتوسط المتحرك.

15:50.930 --> 15:57.320
وللقيام بذلك ، لدينا طريقة ، هذه المرة في فئة المتوسط المتحرك ، وهي طريقة ADD.

15:57.410 --> 15:58.220
لذلك هذا بسيط للغاية.

15:58.220 --> 16:05.330
نأخذ كائن المتوسط المتحرك ، الذي أنشأناه هنا بـ 100 خطوة ، ثم سنستخدم طريقة ADD الخاصة

16:05.330 --> 16:13.400
بنا ، ثم في طريقة الإعلان ، نقوم بإدخال خطوات المكافأة ، وهذا سيضيف مكافآت الخطوات إلى المتوسط

16:13.400 --> 16:15.350
المتحرك .

16:15.950 --> 16:16.340
حسنا.

16:16.340 --> 16:21.680
وأخيرًا ، يمكننا حساب متوسط المكافأة ، وهذا جيدًا ، كما تعلمون ، هذا هو نفس المتغير

16:21.680 --> 16:22.220
هنا.

16:22.640 --> 16:26.720
هذا ما سيساوي متوسط المكافأة.

16:26.720 --> 16:33.440
وللحصول عليها ، نحتاج فقط إلى استخدام طريقة المتوسط هذه المرة من جسم المتوسط المتحرك.

16:33.590 --> 16:42.320
وهذا هو أننا نقوم بعمل متوسط النقاط تمامًا مثل ذلك لأن المتوسط المتحرك لدينا تم تحديثه بالفعل بخطوات المكافأة الجديدة

16:42.320 --> 16:45.650
التي أضفناها للتو بفضل طريقة ADD.

16:46.350 --> 16:46.930
رائعة.

16:46.970 --> 16:50.130
إذن لدينا الآن متوسط المكافأة حتى نتمكن من ملئها هنا.

16:50.130 --> 16:53.160
وستتم طباعة هذا كل حقبة.

16:53.430 --> 16:53.850
حسنا.

16:53.850 --> 16:54.960
لذلك انتهينا.

16:54.960 --> 16:57.150
لذلك أنا متحمس جدًا لرؤية النتائج.

16:57.150 --> 17:01.620
وفي الواقع ، سأواجهك مفاجأة في البرنامج التعليمي التالي أثناء مشاهدة النتائج.

17:01.620 --> 17:03.600
لذلك سيكون الأمر مثيرًا للغاية.

17:03.600 --> 17:06.960
والآن أعتقد أن الوقت قد حان للعب مع الذكاء الاصطناعي والاستمتاع.

17:07.620 --> 17:11.380
حسنًا ، أعد لنفسك قهوة جيدة أو شايًا جيدًا.

17:11.400 --> 17:16.950
حان الوقت الآن للجلوس بشكل مريح على كرسينا ومشاهدة بعض مقاطع الفيديو الرائعة جدًا للذكاء الاصطناعي وهو يلعب Doom.

17:16.980 --> 17:18.750
لذلك دعونا نفعل ذلك في البرنامج التعليمي التالي.

17:18.750 --> 17:20.040
وحتى ذلك الحين ، استمتع.

17:20.040 --> 17:20.460
أنا.
