WEBVTT

00:00.150 --> 00:02.370
مرحبًا ومرحبًا بكم في برنامج Python التعليمي هذا.

00:02.400 --> 00:06.150
الآن علينا تحديد المتغيرات الخمسة لوظيفة init هذه.

00:06.150 --> 00:09.420
هذه هي التلافيفات الثلاثة والوصلتان الكاملتان.

00:09.510 --> 00:11.040
لنبدأ بالأول.

00:11.070 --> 00:15.960
الالتواء الأول يطبق الالتواء على الصور المدخلة.

00:15.960 --> 00:17.970
هذه هي الصور الأصلية.

00:17.970 --> 00:22.580
والآن سترون كيف سيصبح كل شيء بهذه البساطة لإنشاء هذا الالتفاف.

00:22.590 --> 00:29.010
حسنًا ، ما يتعين علينا فعله هو في الواقع إنشاء كائن من فئة معينة ، وهذه الفئة

00:29.010 --> 00:32.400
مأخوذة من RN ومن ثم يمكن للفئات.

00:33.000 --> 00:34.260
إلى DH.

00:34.380 --> 00:34.830
إلى DH.

00:34.830 --> 00:37.260
لأننا نعمل مع صورتين DH.

00:37.620 --> 00:40.670
والآن ، كما ترى ، نحتاج إلى إدخال العديد من الحجج.

00:40.680 --> 00:45.450
الأول موجود في القنوات ، لذلك دعونا نضعه في القنوات.

00:45.870 --> 00:48.810
والثاني هو خارج القنوات.

00:49.200 --> 00:56.910
والثالث هو حجم النواة ويتم تدمير ما تبقى منها ، مما يؤدي إلى تبطين مجموعات التمدد والتحيز.

00:56.910 --> 00:59.040
ولدينا قيم افتراضية لكل هذه القيم.

00:59.040 --> 01:00.450
لذلك لن نقوم بإدخالها.

01:00.450 --> 01:02.220
سنحتفظ بالقيم الافتراضية.

01:02.220 --> 01:07.560
لكن المهم هو هذه الحجج الثلاث في القنوات والقنوات البديلة وحجم العمود.

01:07.560 --> 01:09.660
فهل تخمن ما يتوافقون معه؟

01:09.690 --> 01:15.570
حسنًا ، ببساطة في القنوات تتوافق مع مدخلات الالتفاف والقنوات البديلة تتوافق

01:15.570 --> 01:17.670
مع ناتج الالتواء.

01:17.670 --> 01:19.850
إذن في القنوات ، ماذا سيكون؟

01:19.860 --> 01:24.330
حسنًا ، بكل بساطة ، سيكون هذا هو عدد القنوات في صورنا.

01:24.330 --> 01:29.670
وفي الواقع ، سنعمل مع الصور بالأبيض والأسود لأننا في الأساس لا نحتاج إلى ألوان

01:29.670 --> 01:31.230
للتعرف على الوحوش.

01:31.260 --> 01:36.780
الذكاء الاصطناعي قادر تمامًا على التعرف على الوحوش بالأبيض والأسود ، لذلك لا نحتاج إلى الألوان.

01:36.780 --> 01:41.550
سوف يتعرف عليهم فقط من خلال شكلهم ، وبالتالي سنستخدم قناة واحدة.

01:41.550 --> 01:46.650
إذن ، هناك قناة واحدة عندما يكون لديك صور بالأبيض والأسود وثلاث قنوات عندما يكون لديك صور ملونة.

01:46.650 --> 01:51.270
وبالتالي ، نظرًا لأننا نعمل مع الصور بالأبيض والأسود في القنوات ، فسيكون ذلك مساويًا

01:51.270 --> 01:51.720
لواحد.

01:52.580 --> 01:54.010
ثم قنواتنا.

01:54.020 --> 02:00.500
لذا فإن قنواتنا ستكون مساوية للصور التي تريدها في الطبقة التلافيفية ،

02:00.500 --> 02:02.750
وهي ناتج هذا الالتفاف.

02:02.750 --> 02:08.960
وبالتالي فإن هذا يساوي عدد الميزات التي تريد اكتشافها في صورك الأصلية ، لأننا

02:08.960 --> 02:14.870
سننشئ صورة واحدة لكل ميزة نريد اكتشافها لأنك تعرف أساسًا كيفية عملها.

02:14.870 --> 02:21.290
نقوم بتطبيق كاشف ميزة واحد على صورة الإدخال لاكتشاف ميزة معينة في صورة الإدخال وبالتالي

02:21.290 --> 02:23.000
عدد صور الإخراج.

02:23.000 --> 02:25.970
إليك عدد الميزات التي نريد اكتشافها.

02:26.210 --> 02:29.990
إذن السؤال الآن هو كم عدد الميزات التي نريد اكتشافها؟

02:30.020 --> 02:34.640
حسنًا ، من الممارسات الشائعة أن تبدأ بـ 32 جهازًا للكشف عن الميزات.

02:34.850 --> 02:41.240
وهذا يقودنا إلى 32 صورة معالجة في هذه الطبقة التلافيفية الأولى.

02:41.240 --> 02:45.710
إذن المدخل هو صورة واحدة بالأبيض والأسود ، صورة حقيقية.

02:45.710 --> 02:51.200
والمخرج في الطبقة التلافيفية الأولى هو 32 صورة معالجة.

02:51.200 --> 02:57.530
ومن خلال المعالجة ، أعني بالطبع أنه تم تطبيق الالتفاف على الصورة المدخلة للحصول على 32 صورة

02:57.530 --> 02:59.510
جديدة مع الميزات المكتشفة.

02:59.960 --> 03:06.440
ثم نحتاج إلى تحديد حجم النواة ، وهو ليس سوى أبعاد المربع الذي

03:06.440 --> 03:09.350
يمر عبر الصورة الأصلية.

03:09.350 --> 03:16.610
وفي الممارسة الشائعة ، نستخدم إما اثنين في اثنين أو ثلاثة في ثلاثة أو خمسة في خمسة

03:16.610 --> 03:20.720
، ولأول واحد سنستخدم كاشف خاص بخمسة في خمسة.

03:20.840 --> 03:24.410
هذا هو مكشاف ميزة سيكون له خمسة في خمسة أبعاد.

03:24.560 --> 03:28.910
وبعد ذلك سنقوم بتصغير حجم هذه النواة للطبقات التلافيفية التالية.

03:29.090 --> 03:32.150
وبالحديث عن ذلك ، هذا بالضبط ما سنفعله الآن.

03:32.150 --> 03:37.490
سنقوم بنسخ هذا لتحديد الالتفاف الثاني.

03:37.790 --> 03:40.820
وبالتالي ، أنا أسند ذلك هنا والآن.

03:40.820 --> 03:42.080
إنه مضحك للغاية وسهل للغاية.

03:42.080 --> 03:43.280
إنه مثل الدومينو.

03:43.310 --> 03:49.700
قناة الإدخال للطبقة التلافيفية الثانية هي قناة الإخراج للطبقة التلافيفية الأولى.

03:49.700 --> 03:55.250
إذن هذا العدد من المخرجات 32 هنا هو نفس عدد المدخلات 32 هنا.

03:55.250 --> 04:01.160
وذلك لأن لدينا 32 صورة في الطبقة التلافيفية المدخلة لهذا الالتواء الثاني.

04:01.160 --> 04:10.280
وهكذا يتم تطبيق الالتفاف الثاني على هذه الطبقة التلافيفية الثانية لإرجاع طبقة تلافيفية ثالثة.

04:10.280 --> 04:15.860
والسؤال الآن هو كم عدد الصور الجديدة التي نريدها بينما نفس الشيء ، فلنقم بإنشاء 32 صورة جديدة.

04:15.860 --> 04:19.760
32 هو في الواقع رقم شائع جدًا في الشبكات العصبية التلافيفية.

04:19.760 --> 04:23.630
إذا نظرت إلى الأبنية ، ستجد 32 في العديد منها.

04:23.780 --> 04:29.360
ثم بالنسبة لجانب النواة ، حسنًا ، نحتاج إلى تقليل حجم النواة ، وهذا هو أبعاد كاشف

04:29.360 --> 04:30.530
الميزات لدينا.

04:30.530 --> 04:37.400
والآن سننتقل من خمسة إلى عيون بأربعة أو حتى ثلاثة ، وبعد ذلك سننتقل إلى أعين أصغر.

04:37.700 --> 04:38.090
حسنا.

04:38.090 --> 04:40.520
لذا فإن الالتفاف الثاني جاهز.

04:40.580 --> 04:48.350
يأخذ كمدخلات ، 32 صورة معالجة ، كل واحدة تكتشف الميزة الأولى لصورة الإدخال الأصلية.

04:48.350 --> 04:54.650
ويقوم بإنشاء 32 صورة جديدة بفضل هذه الأبعاد المخفّضة لجهاز الكشف عن الميزات.

04:54.890 --> 04:57.140
والآن دعونا ندفع هذا أكثر.

04:57.140 --> 05:05.120
لذلك أقوم بنسخ هذا ولصقه هنا لإنشاء التفاف ثالث لاكتشاف بعض الميزات.

05:05.210 --> 05:07.940
والآن هذه هي نفسها قنوات الإدخال.

05:07.940 --> 05:13.640
هذا هو عدد الصور المدخلة على يسار وصلة الالتفاف وهذا هو عدد الصور المعالجة

05:13.640 --> 05:17.570
التي كانت على يمين وصلة الالتفاف السابقة.

05:17.580 --> 05:18.620
هذا هو 32.

05:18.620 --> 05:19.970
لذلك نحتفظ بـ 32 هنا.

05:19.970 --> 05:20.900
هذا ممتاز.

05:20.900 --> 05:24.950
والسؤال الآن ، مرة أخرى ، كم عدد الصور الجديدة التي نريد اكتشافها؟

05:25.040 --> 05:30.980
سنأخذ الآن 64 هناك لـ 64 ناتجًا ، صور معالجة.

05:30.980 --> 05:36.170
وبالطبع ، نأخذ الآن حجم نواة أصغر وسنأخذ اثنين.

05:36.560 --> 05:42.620
ومن ثم فهذه بنية كلاسيكية للغاية لطبقة تلافيفية وهي فعالة للغاية في الحصول على مستوى

05:42.620 --> 05:45.620
عالٍ من اكتشاف الميزات داخل الصور.

05:46.070 --> 05:46.550
حسنا.

05:46.550 --> 05:52.940
والآن بعد أن أصبح لدينا ثلاث طبقات تلافيفية ، بفضل روابط الالتفاف الثلاثة لدينا هنا ، حسنًا

05:52.940 --> 05:57.350
، حان الوقت الآن للحصول على صلاتنا الكاملة التي أذكرها.

05:57.350 --> 06:04.430
سنأخذ هذا المتجه الضخم الذي حصلنا عليه بعد تسطيح كل الـ 64 مرة ، 32 ضرب 32.

06:04.430 --> 06:07.910
مرة أخرى ، الصور التي حصلنا عليها من كل هذه التلافيف.

06:07.910 --> 06:14.000
لذلك قمنا بتسوية جميع وحدات البكسل في هذه الصور ويمكننا متجهًا ضخمًا واحدًا سيصبح مدخلات

06:14.000 --> 06:16.580
لشبكة عصبية جديدة متصلة بالكامل.

06:16.580 --> 06:21.800
وهذا عندما يتعين علينا إجراء هذه الروابط الكاملة بين هذا المتجه الضخم والطبقة المخفية

06:21.800 --> 06:27.170
أولاً ، ثم اتصال كامل ثانٍ بين الطبقة المخفية وطبقة الإخراج المكونة من الخلايا العصبية

06:27.170 --> 06:31.580
الناتجة ، كل واحدة تتوافق مع قيمة q من الممكن أجراءات.

06:31.700 --> 06:33.830
لذلك دعونا نجعل هاتين الوصلتين الكاملتين.

06:33.830 --> 06:35.060
أنت تعرف كيف تفعل ذلك.

06:35.060 --> 06:37.400
هذا بالضبط ما فعلناه للسيارة ذاتية القيادة.

06:37.400 --> 06:38.720
لذلك دعونا نفعل ذلك مرة أخرى.

06:38.720 --> 06:46.340
حسنًا ، أولاً نأخذ وحدة RN الخاصة بنا ، ثم نأخذ الفئة الخطية لأن الاتصال الكامل الذي ننشئه هو كائن

06:46.340 --> 06:48.830
من الفئة الخطية مرة أخرى.

06:49.040 --> 06:52.100
ثم بين قوسين ، حسنًا ، هذا هو نفسه أولاً.

06:52.240 --> 06:58.210
أدخل ميزات الإدخال ، أي عددها ثم ميزات الإخراج.

06:58.630 --> 07:03.060
وبالتالي فإن ميزات الإدخال لأول اتصال كامل ، ماذا سيكون؟

07:03.070 --> 07:09.610
حسنًا ، سيكون هذا مساويًا لعدد البكسلات الموجودة وهذا المتجه الضخم الذي تم الحصول عليه بعد

07:09.610 --> 07:13.420
تسوية جميع الصور المعالجة بعد التلافيف الثلاثة.

07:13.540 --> 07:14.970
إذن ما هو هذا الرقم؟

07:14.980 --> 07:17.170
حسنًا ، في الواقع ، هناك خدعة هنا.

07:17.220 --> 07:19.390
من الصعب الحصول على هذا الرقم.

07:19.420 --> 07:22.690
نحتاج بالفعل إلى عمل دالة لحساب هذا الرقم.

07:22.690 --> 07:25.510
ليس لدينا متغير سيحصل على هذا الرقم.

07:25.510 --> 07:26.680
علينا أن نحسبها.

07:26.680 --> 07:32.470
وبالتالي ، ما سنفعله الآن والآن ، من المهم جدًا فهم عقلية البرمجة التي يجب

07:32.470 --> 07:33.910
أن تكون لدينا.

07:33.910 --> 07:40.900
أحاول أن أعود إلى العقلية التي يجب أن تفكر بها الآن لتتغلب على هذه العقبة.

07:40.900 --> 07:45.610
لأنه في المرة الأولى التي قد تقول فيها ، مرحبًا ، ليس لدي هذا العدد من الخلايا العصبية في المتجه المسطح

07:45.610 --> 07:46.450
، فماذا أفعل؟

07:46.450 --> 07:47.500
انا عالق هنا.

07:47.500 --> 07:54.760
حسنًا ، لا ، في الواقع ، لأن ما يمكنك فعله الآن هو ببساطة إدخال أي اسم هنا يمثل هذا العدد من الخلايا

07:54.760 --> 07:56.140
العصبية.

07:56.140 --> 07:58.180
لذلك أنا أسميها عدد الخلايا العصبية.

07:58.180 --> 07:59.320
عدد الخلايا العصبية.

07:59.320 --> 08:05.620
وبعد ذلك سنقوم ببساطة بعمل دالة ترجع في هذا العدد من متغير الخلايا العصبية ، هذا العدد من البكسل

08:05.620 --> 08:07.030
الذي نبحث عنه.

08:07.120 --> 08:08.800
لذلك يمكننا فعل ذلك تمامًا.

08:08.800 --> 08:10.540
يمكننا وضع هذا المتغير بالكامل.

08:10.540 --> 08:15.970
حسنًا ، بالطبع سوف نتلقى تحذيرًا لأنه غير موجود بعد ، لكننا سننشئه بعد ذلك باستخدام

08:15.970 --> 08:20.920
الوظيفة ويسمح لنا تمامًا بفعل ذلك حتى إذا جاءت الوظيفة بعد ذلك.

08:20.920 --> 08:25.780
إذن ، هذا هو تفكير البرمجة النموذجي الذي يجب أن يكون لديك عندما تواجه هذا النوع من العوائق.

08:25.780 --> 08:28.840
حسنًا ، يمكنك عمل دالة للحصول على ما ينقصك.

08:29.560 --> 08:29.980
حسنا.

08:29.980 --> 08:36.130
ثم خارج الميزات والميزات ، هذا هو عدد الخلايا العصبية في الطبقة المخفية وهذه

08:36.130 --> 08:37.720
المرة متروك لك.

08:37.720 --> 08:40.960
يعتمد ذلك على بنية الشبكة العصبية التي تريد إنشاءها.

08:40.960 --> 08:44.050
وبالتالي فإن العدد الجيد سيكون من أجل عدد صغير.

08:44.050 --> 08:46.900
لذلك على سبيل المثال ، 40 خلية عصبية قد تكون بخير.

08:46.900 --> 08:48.610
يمكننا محاولة زيادته.

08:48.610 --> 08:51.100
إذا لم يكن التدريب بطيئًا جدًا ، يمكنك محاولة زيادته.

08:51.100 --> 08:53.560
ربما سيحسن ذلك التوقعات.

08:53.560 --> 08:54.760
لكن لنبدأ بـ 40.

08:54.760 --> 08:56.530
ربما سنزيد ذلك بعد ذلك.

08:56.950 --> 08:57.280
حسنا.

08:57.280 --> 08:59.800
هذا كل شيء لأول اتصال كامل.

08:59.800 --> 09:05.290
ثم سنقوم بنسخ هذه الصفحة هنا للوصلة الكاملة الثانية.

09:05.290 --> 09:09.040
هذا هو الاتصال بين الطبقة المخفية وطبقة الإخراج.

09:09.040 --> 09:15.610
وهكذا تصبح الميزات الداخلية هنا هي الميزات الخارجية للطبقة السابقة وهي 40.

09:15.610 --> 09:17.830
لذلك نضع هنا 40.

09:18.010 --> 09:22.900
هذا بالطبع هو عدد الخلايا العصبية في الطبقة المخفية وستكون ميزاتنا هنا

09:22.900 --> 09:27.070
مساوية لعدد الخلايا العصبية الناتجة في شبكتنا العصبية.

09:27.070 --> 09:32.950
وبما أن كل خلية عصبية ناتجة تتوافق مع قيمة رئيسية واحدة وقيمة رئيسية واحدة تتوافق مع إجراء واحد ، حسنًا

09:32.950 --> 09:36.730
، عدد الخلايا العصبية الناتجة هنا ، بالطبع ، هو عدد الإجراءات.

09:36.730 --> 09:39.820
ولدينا متغير واحد لهذا ، وهو الإجراءات العددية.

09:39.820 --> 09:42.970
وبالتالي نقوم هنا بإدخال الرقم.

09:43.880 --> 09:44.750
أجراءات.

09:44.840 --> 09:45.950
وها نحن ذا.

09:45.980 --> 09:47.160
تهانينا.

09:47.180 --> 09:50.540
حددنا بنية شبكتنا العصبية.

09:50.750 --> 09:55.880
تتكون شبكتنا العصبية من ثلاث طبقات تلافيفية وطبقة واحدة مخفية.

09:55.910 --> 09:59.030
كل هذا في شبكة سي إن إن كبيرة وهذا.

09:59.030 --> 10:04.490
ستكتشف CNN الميزات الموجودة في اللعبة حتى يعرف الذكاء الاصطناعي ما عليه القيام به ، وأين يجب أن

10:04.490 --> 10:06.380
يتجه ، وأين يحتاج إلى التصوير.

10:06.650 --> 10:08.180
إذن ها نحن ذاهبون لهذه الخطوة.

10:08.180 --> 10:10.430
هذه هي الخطوة الأولى المهمة جدًا التي تم القيام بها.

10:10.460 --> 10:15.860
الآن سننتقل إلى الخطوة التالية ، وهي ، بالطبع ، الحصول على هذا العدد من الخلايا العصبية الذي لا

10:15.860 --> 10:16.820
يزال مفقودًا.

10:16.820 --> 10:18.710
لهذا السبب في الواقع لدينا التحذير هنا.

10:18.710 --> 10:21.720
عدد غير معروف من الخلايا العصبية ، ولكن لا داعي للقلق.

10:21.740 --> 10:26.720
سنقوم الآن بعمل دالة تعيد عدد الخلايا العصبية في هذا المتجه الضخم ، وسنضع هذا

10:26.720 --> 10:30.030
الرقم في متغير نسميه الخلايا العصبية الرقمية.

10:30.050 --> 10:31.940
لذلك دعونا نفعل هذا في البرنامج التعليمي التالي.

10:31.940 --> 10:33.020
هذه خطوتنا التالية.

10:33.020 --> 10:34.280
وحتى ذلك الحين ، استمتع.

10:34.280 --> 10:34.640
أنا.
