WEBVTT

00:00.180 --> 00:02.580
مرحبًا ومرحبًا بكم في برنامج Python التعليمي هذا.

00:02.730 --> 00:08.160
حسنًا ، لقد قمنا للتو ببناء بنية الشبكة العصبية بوظيفة init الخاصة بفئة الشبكة الخاصة

00:08.160 --> 00:12.870
بنا ، وسنقوم الآن بعمل وظيفة ثانية ، والتي ستكون وظيفة الأمام.

00:12.870 --> 00:15.630
وهذه هي الوظيفة التي ستنشط الخلايا العصبية.

00:15.630 --> 00:19.200
أي أنها الوظيفة التي ستقوم بالانتشار الأمامي.

00:19.710 --> 00:20.730
لذلك دعونا نفعل هذا.

00:20.730 --> 00:25.500
لنجعل هذه الوظيفة ، دعنا نسميها إلى الأمام ، كما قلنا للتو.

00:25.500 --> 00:29.420
وستأخذ هذه الوظيفة حجتين.

00:29.430 --> 00:34.830
الأول هو ، كالعادة ، الذات ، كما تعلم ، لتكون قادرًا على استخدام متغيرات الكائن

00:34.830 --> 00:37.250
لأننا سنستخدم FC واحد و FC 2.

00:37.260 --> 00:38.640
لذلك نحن بحاجة إلى الذات.

00:39.320 --> 00:41.120
لتتمكن من استخدام هذه المتغيرات.

00:41.120 --> 00:46.910
ومن ثم سنحتاج إلى حجة ثانية ، وهي مدخلاتنا ، وسنسميها الحالة لأن الحالة

00:46.910 --> 00:50.480
هي بالضبط مدخلات شبكاتنا العصبية.

00:50.720 --> 00:54.560
هذه هي الحالات التي هي المدخلات التي تدخل الشبكة العصبية.

00:54.560 --> 00:59.720
وبعد ذلك ، كمخرجات ، سيكون لدينا قيم الإشارة التي تشير إلى أن الإجراءات الثلاثة الممكنة تتحرك يسارًا أو مستقيمًا

00:59.720 --> 01:00.470
أو يمينًا.

01:00.470 --> 01:05.620
لكننا لسنا بحاجة إلى إدخاله كحجة هنا لأن هذا هو بالضبط ما نريد العودة إليه.

01:05.630 --> 01:11.270
لذلك لن تقوم وظيفة التوجيه هذه بتنشيط الخلايا العصبية فحسب ، بل ستعيد أيضًا في الغالب

01:11.270 --> 01:15.860
قيم التلميح لكل إجراء محتمل اعتمادًا على حالة الإدخال هنا.

01:16.430 --> 01:18.920
حسنًا ، هذه هي الحجتان اللتان نحتاجهما.

01:18.920 --> 01:24.020
والآن دعنا ننتقل إلى داخل الدالة ونحدد ما نريده أن يفعله.

01:24.650 --> 01:24.920
تمام.

01:24.920 --> 01:30.110
لذا فإن أول شيء سنفعله هو تنشيط الخلايا العصبية المخفية وسنقوم باستدعاء الخلايا العصبية

01:30.110 --> 01:32.030
المخفية بواسطة المتغير X.

01:32.030 --> 01:34.550
إذن X تمثل الخلايا العصبية المخفية.

01:34.550 --> 01:36.620
فكيف سنقوم بتنشيطها؟

01:36.650 --> 01:39.890
حسنًا ، بالطبع ، سنأخذ الخلايا العصبية المدخلة.

01:39.920 --> 01:45.320
سنستخدم أول اتصال كامل باتصال FC للحصول على الخلايا العصبية المخفية ، ثم سنقوم

01:45.320 --> 01:49.430
بتطبيق وظيفة تنشيط عليها ، والتي ستكون وظيفة المعدل.

01:49.580 --> 01:51.160
إذن كيف سنفعل ذلك؟

01:51.170 --> 01:59.720
تذكر أننا قمنا باستيراد الوحدة الوظيفية torch dot net dot التي تحتوي على جميع الوظائف في PyTorch لتنفيذ

01:59.720 --> 02:02.570
شبكة عصبية وأعطيناها الاختصار.

02:02.570 --> 02:08.060
F في الواقع ، ما سنفعله الآن هو أننا سنستخدم إحدى هذه الوظائف من الوحدة الوظيفية

02:08.060 --> 02:11.180
وهذه الوظيفة هي الوظيفة الحقيقية.

02:11.180 --> 02:12.290
إذن ما هي القيمة؟

02:12.320 --> 02:16.370
القيمة هي وظيفة المعدل التي رأيتها في محاضرات الحدس.

02:16.370 --> 02:18.950
هذا مجرد الاسم الذي يطلق على وظيفة المعدل.

02:18.950 --> 02:26.060
ولكن بما أن هذه الوظيفة مأخوذة من دالة في تلك الوظيفة التي أعطيت الاختصار f ، فنحن

02:26.060 --> 02:31.730
بحاجة إلى كتابة f نقطة أولاً ، ومن ثم يمكننا أخذ هذه الوظيفة.

02:31.730 --> 02:36.140
وفي الواقع ، إذا قمت بكتابة r e ، فهنا نبدأ ، لدينا دالة القيمة.

02:36.410 --> 02:41.600
هذه هي وظيفة المعدل التي ستنشط الخلايا العصبية المخفية وهي X.

02:41.780 --> 02:46.160
إذن في دالة القيمة هذه ، نفهم الآن تمامًا ما يتعين علينا إدخاله.

02:46.160 --> 02:50.570
هذه هي الخلايا العصبية التي نريد تنشيطها ، تلك هي الخلايا العصبية المخفية.

02:50.570 --> 02:54.290
ومن أجل الحصول على هذه الخلايا العصبية المخفية ، سنأخذ أول اتصال كامل لنا.

02:54.290 --> 03:01.430
FC One الذي سنطبقه على الخلايا العصبية المدخلة للانتقال من الخلايا العصبية المدخلة إلى الخلايا العصبية المخفية.

03:01.580 --> 03:03.710
لذلك لنأخذ أول اتصال كامل.

03:03.710 --> 03:07.970
FC one لكن أول اتصال كامل لدينا هو متغير من موضوعنا.

03:07.970 --> 03:13.460
لذلك علينا أن نكتب هنا أول نقطة ذاتية FC واحدة هنا.

03:13.460 --> 03:16.670
هذا هو أول اتصال كامل لشبكتنا العصبية.

03:16.700 --> 03:22.820
وداخل هذا الاتصال الأول ، سنقوم بإدخال حالات الإدخال الخاصة بنا للانتقال من الخلايا العصبية المدخلة إلى الخلايا

03:22.820 --> 03:24.080
العصبية المخفية.

03:24.170 --> 03:30.530
وبما أننا أعطيناها حالة الاسم ، حسنًا هنا علينا إدخال الحالة وهناك نذهب.

03:30.530 --> 03:33.530
نحصل الآن على تنشيط الخلايا العصبية المخفية.

03:34.390 --> 03:34.900
حسنا.

03:34.900 --> 03:40.300
والآن بعد أن أصبح لدينا الخلايا العصبية المخفية ، سنعيد الخلايا العصبية الناتجة.

03:40.420 --> 03:46.180
إذن السطر التالي وكما فهمت ، تتوافق الخلايا العصبية الناتجة مع أفعالنا.

03:46.180 --> 03:48.060
لكن هذه ليست الأفعال مباشرة.

03:48.070 --> 03:54.190
هذه هي قيم Q ، لأننا نبني نموذج التعلم العميق الذي يجمع بين نموذج التعلم العميق

03:54.190 --> 03:55.840
لمواصلة التعلم.

03:55.840 --> 04:00.820
وبالتالي ، فإننا نستخدم التعلم الأساسي هنا للحصول على قيم Q لكل إجراء من أعمالنا.

04:00.820 --> 04:05.770
وبعد ذلك باستخدام soft max أو ARG max ، سنحصل على الإجراء النهائي.

04:06.590 --> 04:11.060
إذن هنا المتغير الذي أنا بصدد تقديمه سوف يتوافق مع الخلايا العصبية الناتجة.

04:11.060 --> 04:17.360
وبما أن الخلايا العصبية الناتجة هي قيم Q ، حسنًا ، سأطلق على هذا المتغير قيم Q.

04:18.030 --> 04:18.710
هناك نذهب.

04:18.720 --> 04:24.470
إذن قيم جديلة والآن نأخذ مباشرة اتصالنا الكامل ، وهو المتغير.

04:24.480 --> 04:26.850
FC two لكن متغير من كائننا.

04:26.850 --> 04:28.500
لذلك نحن نأخذ الذات هنا.

04:28.920 --> 04:34.660
FC two وبالطبع هنا نقوم بإدخال الخلايا العصبية في الجانب الأيسر من هذا الاتصال.

04:34.680 --> 04:38.010
هذا ما حصلنا عليه من السطر الأول ، وهو x.

04:38.010 --> 04:40.600
إذن X ، ها نحن ذا.

04:40.620 --> 04:42.510
نحصل الآن على قيم Q الخاصة بنا.

04:42.510 --> 04:45.570
هذه هي الخلايا العصبية الناتجة من شبكتنا العصبية.

04:46.800 --> 04:48.700
ثم السطر الأخير من الرموز.

04:48.720 --> 04:55.140
بالطبع ، تُستخدم هذه الوظيفة الرابعة لإرجاع قيم Q هذه ، لذلك علينا فقط إضافة

04:55.710 --> 04:57.840
إرجاع و Q ببساطة.

04:58.750 --> 05:03.370
القيم والتي ستعيد قيم Q لكل إجراء محتمل.

05:03.370 --> 05:05.500
إتجه يسارا ، إذهب مباشرة أو إتجه يمينا.

05:06.240 --> 05:08.280
حسنًا ، تهانينا.

05:08.280 --> 05:09.990
لقد انتهينا من صفنا الأول.

05:09.990 --> 05:13.440
وفي الواقع ، انتهينا من صنع بنية الشبكة العصبية.

05:13.470 --> 05:15.390
تذكر ، هذه ليست وظيفة منتهية.

05:15.390 --> 05:19.800
يمكنك دائمًا تحسين بنية الشبكة العصبية من خلال تجربة شبكات مختلفة.

05:19.800 --> 05:22.710
لذلك لا تتردد في القيام بذلك عن طريق إضافة المزيد من الخلايا العصبية هنا.

05:22.710 --> 05:28.020
على سبيل المثال ، إذا كنت تريد إضافة 50 خلية عصبية مخفية ، يمكنك فقط استبدال

05:28.020 --> 05:30.270
30 هنا و 30 هنا بـ 50 و 50 و 50.

05:30.480 --> 05:34.740
وبعد ذلك يمكنك إضافة المزيد من الطبقات المخفية عن طريق إجراء بعض الاتصالات الكاملة الجديدة.

05:34.740 --> 05:37.440
حسنًا ، هذه حقًا وظيفة الفنان.

05:37.440 --> 05:41.790
لا توجد قاعدة عامة لما يمكن أن يكون أفضل تصميم معماري في كل موقف.

05:41.790 --> 05:43.620
لهذا السبب علينا أن نجرب.

05:43.620 --> 05:45.780
لكن دعونا نجرب ذلك بالفعل.

05:45.780 --> 05:49.530
سترى أننا سنحصل في النهاية على سيارة ذاتية القيادة جيدة جدًا.

05:50.010 --> 05:50.520
حسنا.

05:50.520 --> 05:54.570
والآن سنحضر الفصل التالي ، وهو عبارة عن إعادة التجربة.

05:54.570 --> 05:57.420
وسوف نقوم بذلك في الدروس الثلاثة القادمة.

05:57.420 --> 05:58.620
حتى ذلك الحين ، استمتع.

05:58.620 --> 05:59.160
أنا.
