WEBVTT

00:00.480 --> 00:02.730
مرحبًا ومرحبًا بكم في برنامج Python التعليمي هذا.

00:02.910 --> 00:03.960
لذلك دعونا نفعل هذا.

00:03.960 --> 00:08.370
دعونا نجعل حلقة for هذه ، بدءًا من اليمين وتنتقل إلى اليسار.

00:08.430 --> 00:11.400
وللقيام بذلك ، نضيف أربعة.

00:11.730 --> 00:17.580
إذن هذه المرة ، المتغير المتكرر سيكون خطوتنا لأننا سننتقل من الخطوة الأخيرة

00:17.580 --> 00:21.660
إلى الخطوة الأولى في سلسلة الانتقالات وما إلى ذلك.

00:21.660 --> 00:29.850
والآن ، الحيلة للانتقال من اليمين إلى اليسار هي استخدام أربع خطوات للداخل ، معكوسة ، معكوسة.

00:29.850 --> 00:31.920
والآن نحتاج فقط إلى إدخال تسلسل.

00:31.920 --> 00:35.160
وهذا التسلسل سيكون ، بالطبع ، سلسلتنا.

00:35.160 --> 00:36.930
لذلك قمنا بإدخال سلسلتنا.

00:37.020 --> 00:41.730
لكن كما ترون في الورقة ، ننتقل من T ناقص واحد إلى بداية T.

00:41.730 --> 00:43.890
لذلك نحن لا ننتقل من الخطوة الأخيرة والأخيرة.

00:43.890 --> 00:48.120
هذه هي الحالة النهائية ، لكن الحالة قبل ذلك ، أي t ناقص واحد.

00:48.120 --> 00:50.160
لكن اثنين للبدء فهذه هي الخطوة الأولى.

00:50.160 --> 00:57.930
ولذا ، هنا للانتقال ليس من الحالة الأخيرة بل الحالة السابقة ، نحتاج إلى إضافة قوسين ، العمود

00:57.960 --> 00:58.980
ناقص واحد.

00:59.160 --> 01:03.630
أنا متأكد من أنه بالنسبة لأولئك الذين اتبعوا الآلات ودورة التعلم العميق

01:03.630 --> 01:10.140
، كما تعلمون ، فإن هذه الحيلة ، كولين ، ناقص واحد ، تعني أنك ستنتقل إلى العنصر قبل العنصر الأخير ، ولكن ليس

01:10.140 --> 01:11.850
إلى العنصر الأخير.

01:11.850 --> 01:14.610
وبالتالي نحصل على التسلسل الذي نريده.

01:14.610 --> 01:20.820
سننتقل من العنصر قبل العنصر الأخير إلى العنصر الأول ، ونقوم بأشياء لعكسه

01:20.820 --> 01:23.790
، للانتقال من اليمين إلى اليسار.

01:23.940 --> 01:24.330
حسنا.

01:24.330 --> 01:26.850
لذلك نحن جاهزون للدخول في الحلقة الكاملة.

01:26.850 --> 01:29.580
وهكذا داخل حلقة for ، أين سنفعل؟

01:29.610 --> 01:32.670
حسنًا ، سنفعل تمامًا كما في الورقة.

01:32.670 --> 01:39.300
سنقوم بتحديث المكافأة التراكمية بضربها في جاما وإضافة المكافأة التي تم الحصول عليها في الخطوة

01:39.300 --> 01:42.120
الحالية الموجودة في خطوة الحلقة for.

01:42.480 --> 01:45.330
حسنًا ، لنفعل هذا ، نعود إلى بايثون.

01:45.330 --> 01:52.710
ولذا نريد تحديث مكافأتنا التراكمية بالطريقة التالية أولاً.

01:53.410 --> 01:54.790
ضربها.

01:55.520 --> 01:56.510
وداعا جيما.

01:57.650 --> 01:58.430
هناك نذهب.

01:58.460 --> 02:00.140
هنا نضربها في جيما.

02:00.260 --> 02:03.830
ثم نضيف مكافأة.

02:04.490 --> 02:09.220
الخطوة التي يمكننا الوصول إليها بهذه الطريقة مع الهيكل الخاص.

02:09.230 --> 02:12.890
تذكر أن المكافأة هي سمة من سمات كائن الخطوة.

02:12.890 --> 02:15.710
وهنا ، بالطبع ، نضيف موجب.

02:15.800 --> 02:16.190
حسنا.

02:16.190 --> 02:22.610
إذن المكافأة التراكمية تساوي مكافأة الخطوة التي نحن فيها الآن ، الحلقة بالإضافة إلى أوقات جاما ،

02:22.610 --> 02:25.490
المكافأة التراكمية السابقة قبل تحديثها.

02:25.970 --> 02:26.720
في احسن الاحوال.

02:26.720 --> 02:27.980
لذا أعتقد الآن أننا بخير.

02:27.980 --> 02:30.050
نحن نتابع الخوارزمية بدقة.

02:30.260 --> 02:32.480
والآن حان الوقت للخطوات التالية.

02:32.600 --> 02:34.850
حسنًا ، الآن ستصبح سهلة جدًا.

02:34.850 --> 02:40.890
نعود إلى الحلقة for الأولى ، لأن هذه الحلقة for هي فقط لحساب المكافأة التراكمية التي نعرفها من اليمين

02:41.000 --> 02:45.140
إلى اليسار عن طريق التحديث بهذه الطريقة ، باتباع الخوارزمية.

02:45.680 --> 02:51.950
والآن ، كما تتذكر ، الهدف من القيام بكل هذا هو إعداد مدخلاتنا وأهدافنا جاهزة حتى نتمكن

02:51.950 --> 02:55.670
من تقليل الفرق التربيعي بين الاثنين للتدريب.

02:55.670 --> 03:00.890
والآن ، الشيء الوحيد الذي يتعين علينا القيام به هو تجهيز هذه المدخلات والأهداف.

03:00.950 --> 03:03.170
لذلك دعونا نفعل هذا أولاً.

03:03.170 --> 03:08.330
ما يتعين علينا القيام به هو إضافة الحالة الأولى من السلسلة في قائمة المدخلات الخاصة بنا.

03:08.330 --> 03:14.030
حتى الآن ، حالة الإدخال هذه موجودة في متغير الإدخال هذا ، ولكن كان ذلك فقط لحساب الإخراج.

03:14.030 --> 03:19.340
لذلك سنحصل على حالة الإدخال هذه للخطوة الأولى بشكل منفصل لأن هذا هو بالضبط ما نحتاج إلى إلحاقه

03:19.340 --> 03:21.170
في قائمة المدخلات الخاصة بنا.

03:21.170 --> 03:23.090
لذلك دعونا نحصل على هذا بشكل منفصل.

03:23.120 --> 03:25.520
لذلك ، سوف نسميها حالة.

03:25.760 --> 03:28.100
وهكذا بالضبط نفس الشيء هنا.

03:28.100 --> 03:34.370
يمكننا الحصول عليها بهذه الطريقة بأخذ الفهرس الأول من السلسلة ، والذي يحتوي على الانتقال الأول ، ثم

03:34.370 --> 03:37.880
إضافة تلك الحالة للحصول على حالة هذا الانتقال الأول.

03:38.120 --> 03:40.760
لذلك هذا هو الشيء الذي نحتاجه بعد ذلك.

03:40.760 --> 03:46.580
سنحصل بشكل منفصل على الهدف المرتبط بحالة الإدخال هذه للانتقال الأول.

03:46.580 --> 03:53.330
ولذا فإنني أقدم هنا متغيرًا جديدًا هو الهدف الذي سيكون مساويًا لقيمة Q للخطوة الأولى.

03:53.330 --> 03:58.670
ونظرًا لإرجاع قيمة Q بواسطة الشبكة العصبية ، يتم تضمينها في الإخراج.

03:58.670 --> 04:05.660
ونظرًا لأن الإخراج هو الناتج المرتبط بهذا المدخل الذي يحتوي على العنصر الأول من الانتقال ، حسنًا

04:05.660 --> 04:12.830
، يمكننا الحصول على قيمة Q هذه للحالة الأولى بمجرد أخذ الإخراج هنا وأخذ الرقم القياسي صفر.

04:12.830 --> 04:20.780
ثم نضيف البيانات النقطية التي ستحصل ببساطة على قيمة Q لحالة الإدخال في الانتقال الأول.

04:20.780 --> 04:22.850
وهذه هي بالضبط قيمة Q المستهدفة.

04:22.850 --> 04:24.740
لهذا السبب نأخذها.

04:25.100 --> 04:31.370
ثم سنقوم بتحديث هذا المتغير الهدف ، ولكن فقط للإجراء الذي تم تحديده في الخطوة الأولى

04:31.370 --> 04:32.900
من السلسلة.

04:32.900 --> 04:39.650
وللوصول إلى هذه الخطوة الأولى من السلسلة ، حسنًا ، نحتاج إلى أخذ السلسلة صفر الأولى لأن هذه

04:39.650 --> 04:42.680
هي بالضبط الخطوة الأولى في السلسلة صفر.

04:42.680 --> 04:47.270
وللوصول إلى الإجراء المقابل لهذه الخطوة الأولى من السلسلة.

04:47.270 --> 04:48.950
حسنًا ، علينا أن نضيف هنا.

04:49.730 --> 04:51.000
عمل نقطي.

04:51.030 --> 04:54.930
مرة أخرى ، هذا هو هيكل السمات الذي نستخدمه.

04:55.290 --> 04:58.740
الإجراء هو سمة من سمات الخطوة الأولى من السلسلة.

04:58.740 --> 05:04.590
هذا هو الانتقال الأول للسلسلة لأن كل انتقال للسلسلة يحتوي على الهيكل التالي ، وعمل

05:04.590 --> 05:08.340
الحالة ، والمكافأة ، والقيام بهذا الإجراء هنا.

05:08.340 --> 05:13.500
يعني إجراء السمة هذا هنا أننا نحصل ببساطة على إجراء هذا التاريخ الأول.

05:14.170 --> 05:21.310
وبالتالي فإن الهدف من هذا الإجراء المحدد من الخطوة الأولى هو بالضبط ما يجب تحديثه بالمكافأة

05:21.310 --> 05:22.540
التراكمية.

05:22.570 --> 05:29.260
لذلك سنكتب هنا بشكل أساسي أن الهدف المرتبط بالإجراء الذي تم لعبه في الخطوة

05:29.260 --> 05:35.560
الأولى من السلسلة هو المكافأة التراكمية التي حسبناها للتو.

05:35.950 --> 05:36.670
حسنا.

05:36.670 --> 05:45.010
والآن نحن مستعدون أخيرًا لتحديث مدخلاتنا من خلال إلحاق حالة الإدخال الأولى هنا وهذا الهدف الأول

05:45.010 --> 05:45.730
هنا.

05:45.730 --> 05:51.130
بالنسبة للخطوة الأولى ، نحتاج فقط إلى تحديث الخطوة الأولى من السلسلة لأننا ، كما تعلم ، نقوم بتدريب

05:51.130 --> 05:55.930
العين على عشر خطوات ، وبالتالي فإن الإدخال هو الخطوة الأولى من الخطوات العشر.

05:55.930 --> 06:01.000
وأيضًا نحصل على الهدف في هذه الخطوة الأولى ، ولكن بعد ذلك لا نحتاج إلى الحصول على أي مدخلات أو

06:01.000 --> 06:06.150
أي أهداف في الخطوات التالية من الخطوات العشر ، لأن التعلم يحدث في الأساس عشر خطوات بعد ذلك.

06:06.160 --> 06:11.110
لهذا السبب نحن الآن نحصل فقط على الحالة والهدف من الخطوة الأولى من السلسلة.

06:11.620 --> 06:13.240
لذلك من المهم أن نفهم ذلك.

06:13.240 --> 06:18.280
وبالتالي ، إذا فهمنا ذلك ، فإننا نفهم الآن أنه يتعين علينا إدخالها في قائمة المدخلات

06:18.280 --> 06:20.170
وقائمة الأهداف الخاصة بنا.

06:20.500 --> 06:22.300
لذلك دعونا نفعل هذا أولاً.

06:22.300 --> 06:25.000
دعنا نلحق الحالات بمدخلاتنا.

06:25.000 --> 06:33.640
لذلك نأخذ قائمة المدخلات الخاصة بنا ونستخدم وظيفة الإلحاق لإضافة الحالة التي تتذكر حالة الإدخال للخطوة

06:33.640 --> 06:35.950
الأولى من السلسلة.

06:36.820 --> 06:42.260
وبعد ذلك سنلحق هدف الخطوة الأولى بقائمة الأهداف.

06:42.280 --> 06:48.340
وللقيام بذلك ، نأخذ قائمة الأهداف الخاصة بنا ونفس الشيء نستخدم وظيفة الإلحاق لإلحاق هذا الهدف

06:48.340 --> 06:49.000
الأول.

06:49.330 --> 06:50.260
هناك نذهب.

06:50.290 --> 06:51.190
يكاد ينتهي.

06:51.190 --> 06:55.990
والآن نحن بحاجة إلى إعادة آخر الأشياء ، والتي هي بالطبع ما نحتاجه.

06:55.990 --> 06:58.300
هذا ما قلناه في بداية الدرس.

06:58.330 --> 07:01.600
المدخلات والأهداف التي تم تحديثها الآن.

07:01.840 --> 07:03.550
لذلك سنضيف هنا العودة.

07:04.000 --> 07:06.280
ثم سنحصل على مدخلاتنا أولاً.

07:06.280 --> 07:07.480
ولكن هذا هو نفسه.

07:07.480 --> 07:14.230
نحتاج إلى تحويلهم إلى مصفوفة عددية أولاً ، ثم إجراء تحويل نوع

07:14.230 --> 07:21.550
للتأكد من أن لدينا نوعًا واحدًا بنوع D يساوي و P يساوي 30 عائمًا.

07:21.640 --> 07:27.940
ثم نقوم بتحويل هذا إلى موتر شعلة لأننا بالطبع نعمل مع PyTorch ، لذلك هذا

07:27.940 --> 07:29.440
إلزامي تمامًا.

07:29.440 --> 07:33.280
ولذا فأنا أستخدم الشعلة من NumPy.

07:33.730 --> 07:36.010
الوظيفة مرة أخرى.

07:36.990 --> 07:38.980
وهذا يعطينا مدخلاتنا.

07:39.000 --> 07:39.510
في احسن الاحوال.

07:39.510 --> 07:42.060
والآن لنفعل الشيء نفسه بالنسبة للهدف.

07:42.330 --> 07:44.440
الآن سنستخدم هذه الحيلة ، وهي أسرع.

07:44.460 --> 07:46.710
سنقوم بتكديس الأهداف معًا.

07:46.710 --> 07:53.730
وللقيام بذلك ، نحتاج أولاً إلى استخدام مكتبة الشعلة الخاصة بنا ، لأننا سنستخدم وظيفة المكدس

07:53.820 --> 07:56.700
بواسطة الكشاف لتكديس الأهداف.

07:57.060 --> 07:57.450
حسنا.

07:57.450 --> 08:03.960
ولذا فإن هذا السطر من الكود يُرجع بشكل أساسي المدخلات والهدف الذي قمنا بتحديثه للتو من خلال

08:03.960 --> 08:09.000
خوارزمية مصدر تتبع الأهلية ، أو يمكننا تسميته والتعلم التدريجي.

08:09.000 --> 08:14.910
والآن تهانينا ، نحن جاهزون لإجراء التدريب النهائي لأن التدريب يتكون

08:14.910 --> 08:20.910
أساسًا من تقليل الفروق التربيعية بين تنبؤات مدخلاتنا والأهداف.

08:20.910 --> 08:22.710
لذلك دعونا نجعل الذكاء الاصطناعي لدينا ذكيًا.

08:22.710 --> 08:25.050
سوف تصبح ذكية في البرنامج التعليمي التالي.

08:25.050 --> 08:26.910
وحتى ذلك الحين ، استمتع بـ i.
