WEBVTT

00:00.330 --> 00:02.640
مرحبًا ومرحبًا بكم في برنامج Python التعليمي هذا.

00:02.670 --> 00:05.400
حسنًا ، لدينا دروس تعليمية مثيرة للغاية أمامنا.

00:05.430 --> 00:08.830
سنبدأ بإنشاء بنية الشبكة العصبية.

00:08.850 --> 00:14.760
أي أننا سنصنع الشبكة العصبية التي ستكون في قلب الذكاء الاصطناعي لدينا والتي ستعيد الإجراء

00:14.760 --> 00:16.230
للعب في كل مرة.

00:16.230 --> 00:16.490
نرى؟

00:16.740 --> 00:17.970
لذلك دعونا نفعل هذا.

00:17.970 --> 00:22.950
لذلك بما أننا نريد أن تكون شبكتنا العصبية كائنًا ، فسنقوم بعمل فصل دراسي.

00:22.950 --> 00:25.020
وهذا لأنه أكثر ملاءمة.

00:25.170 --> 00:28.280
معرفة أن الفصل هو نموذج لشيء نريد بناءه.

00:28.290 --> 00:33.420
نريد بناء شبكة عصبية ، ونحتاج إلى عمل نوع من التعليمات التي سيتم تضمينها

00:33.420 --> 00:34.820
جميعًا في الفصل.

00:34.830 --> 00:37.740
وفي هذا الفصل سنقوم بعمل وظيفتين.

00:37.740 --> 00:43.050
أولاً ، وظيفة init ، وهي الوظيفة التي تظهر طوال الوقت عند إنشاء فئة والتي

00:43.050 --> 00:46.500
تحدد بشكل أساسي متغير الكائن الخاص بك.

00:46.500 --> 00:51.600
هذه هي الشبكة العصبية ، كما تعلمون ، المتغيرات المرتبطة بالكائن بدلاً من المتغيرات

00:51.600 --> 00:52.410
العامة.

00:52.590 --> 00:57.840
وهذا في وظيفة init هذه التي ستحدد بنية الشبكة العصبية ، وتحديد طبقة الإدخال

00:57.840 --> 01:03.630
التي ستتألف من خمسة عصبونات إدخال لأن لدينا خمسة أبعاد للمتجه المشفر لحالة

01:03.630 --> 01:07.920
الإدخال ، ثم سنقوم بتعريف بعض الطبقات المخفية .

01:07.920 --> 01:12.870
ربما سنبدأ بطبقة واحدة مخفية وبعد ذلك سيكون موضع ترحيب لتجربة بعض البنى الأخرى

01:12.870 --> 01:13.950
للشبكة العصبية.

01:13.950 --> 01:20.040
وبعد ذلك بالطبع سننتهي بطبقة المخرجات التي ستحتوي على الإجراءات المحتملة التي يمكننا

01:20.040 --> 01:21.780
لعبها في كل مرة.

01:21.990 --> 01:24.570
هذا ما سنفعله بالضبط في هذه الدالة init.

01:24.570 --> 01:30.390
وبعد ذلك سنقوم بعمل وظيفة أخرى لا تزال داخل الفصل ، والتي ستكون وظيفة الأمام والتي

01:30.390 --> 01:35.460
ستكون الوظيفة التي ستنشط الخلايا العصبية في الشبكة العصبية ، كما تعلم

01:35.460 --> 01:37.290
، والتي ستنشط الإشارات.

01:37.290 --> 01:43.320
ولذا سوف نستخدم وظيفة تنشيط المعدل لأننا بالطبع نتعامل مع مشكلة غير خطية

01:43.320 --> 01:46.710
بحتة وهذه وظيفة المعدل تكسر الخطية.

01:46.950 --> 01:52.410
لكن في الغالب نقوم بعمل هذه الوظيفة الأمامية لإرجاع قيم Q ، وهي مخرجات الشبكة

01:52.410 --> 01:53.280
العصبية.

01:53.280 --> 01:59.670
لكن لدينا قيمة جديلة واحدة لكل إجراء ، وبعد ذلك سنعيد الإجراء النهائي إما بأخذ الحد

01:59.670 --> 02:03.810
الأقصى لقيم جديلة أو باستخدام طريقة soft max.

02:03.810 --> 02:05.190
سنرى ذلك بعد ذلك.

02:05.190 --> 02:10.260
لذلك في هذا البرنامج التعليمي سنبدأ بتنفيذ وظيفة init وفي المرحلة التالية

02:10.260 --> 02:12.360
سنقوم بتنفيذ وظيفة الأمام.

02:12.600 --> 02:13.710
لذلك دعونا نفعل هذا.

02:13.710 --> 02:16.980
أولاً ، نحتاج إلى تقديم صفنا.

02:16.980 --> 02:18.180
لذلك نبدأ بالصف.

02:18.180 --> 02:22.800
ثم نعطي اسمًا لفصلنا وهو اسم جيد يمكننا تسميته بالشبكة.

02:23.400 --> 02:30.060
وبعد ذلك في فئة الشبكات هذه ، سأستخدم تقنية برمجة الكائنات والتي تسمى الميراث

02:30.060 --> 02:34.980
، وهذا فقط للتوريث من جميع الأدوات الخاصة بالفئة الأم.

02:34.980 --> 02:42.990
لذا فإن فئة الشبكة التي نحن على وشك تكوينها هي فئة فرعية من فئة أكبر ، وهي وحدة

02:42.990 --> 02:43.950
RN DOT.

02:44.250 --> 02:50.250
هذا مجرد وراثة من جميع أدوات فئة الوحدة هذه ، والتي هي بالطبع الأدوات اللازمة لتنفيذ

02:50.250 --> 02:51.660
شبكة عصبية.

02:51.660 --> 02:57.720
هذه خدعة قوية وفعالة للغاية في البرمجة الشيئية التي تسمى الوراثة.

02:57.720 --> 03:02.310
والآن نحن نرث من فئة الأصل هذه الوحدة.

03:02.610 --> 03:03.360
حسنا.

03:03.360 --> 03:05.910
والآن نحن جاهزون للدخول إلى الفصل.

03:05.910 --> 03:12.270
أضغط على مفتاح الإدخال مرتين ، لأننا سنصنع دالتين ونبدأ

03:12.300 --> 03:14.040
بالدالة init.

03:14.040 --> 03:20.370
لذا ، يجب أن نسميها بهذه الطريقة بشرطتين سفليتين ثم بداخلها.

03:20.370 --> 03:26.520
ثم مرة أخرى للتأكيد على أن هذا مجرد بناء جملة بايثون ، هذه هي الطريقة التي يتعين علينا القيام بها

03:26.520 --> 03:28.440
ومن ثم نحتاج إلى إدخال الحجج.

03:28.440 --> 03:30.180
إذن لدينا ثلاث حجج.

03:30.180 --> 03:35.700
الأول هو حجة إلزامية هي في الواقع الذات والذات.

03:35.700 --> 03:42.750
لا يوجد لغز حوله يشير إلى الكائن الذي سيتم إنشاؤه من هذه الفئة التي نحن على وشك صنعها.

03:42.750 --> 03:44.280
كما تعلم ، نحن نصنع هذا الفصل.

03:44.280 --> 03:48.900
إنها مثل بعض التعليمات ، نموذج ما لهذه الشبكة العصبية التي نريد بناءها.

03:48.900 --> 03:53.400
وبعد ذلك بمجرد أن يصبح الفصل جاهزًا ، يمكننا إنشاء العديد من الشبكات العصبية كما نريد.

03:53.400 --> 03:57.450
وستكون كل شبكة من هذه الشبكات العصبية شيئًا من هذه الفئة.

03:57.600 --> 04:04.830
ونظرًا لأننا سنستخدم الكائن في بعض الأغراض الأخرى ، فنحن بحاجة إلى تحديد متغيرات

04:04.830 --> 04:05.670
الكائن.

04:05.670 --> 04:11.820
ولإكتشاف ذلك ، نستخدم هذه الذات هنا لتحديد أننا نشير إلى الكائن.

04:11.820 --> 04:18.210
لذلك عندما أرغب في استخدام متغير من الكائن الخاص بي ، سأستخدم self قبل المتغير لتحديد

04:18.210 --> 04:20.400
أن هذا متغير من الكائن.

04:21.180 --> 04:21.480
حسنا.

04:21.480 --> 04:22.770
هذه هي الحجة الأولى.

04:22.770 --> 04:28.500
ومن ثم لدينا حجتان أخريان هما ، بالطبع ، عدد الخلايا العصبية المدخلة وعدد الخلايا

04:28.500 --> 04:30.120
العصبية الناتجة.

04:30.300 --> 04:34.170
إذاً عدد الخلايا العصبية المدخلة ، سنسميها حجم الإدخال.

04:35.430 --> 04:42.870
وهذا في الواقع خمسة لأن متجهات الإدخال لدينا لها خمسة أبعاد ، الإشارات الثلاث زائد الاتجاه

04:42.870 --> 04:44.730
زائد ناقص الاتجاه.

04:44.880 --> 04:50.970
هذا هو متجهنا للقيم المشفرة التي تصف حالة واحدة من البيئة.

04:51.000 --> 04:54.750
هذه القيم الخمس كافية لوصف حالة البيئة.

04:54.750 --> 04:59.400
كان من الممكن أن نفكر في قيم أقل أو قيم أكثر ، لكن هذا ما جربته.

04:59.400 --> 05:04.410
وهذا منطقي بالفعل لأننا نحتاج في الواقع إلى إشارة واحدة من اليسار ، واحدة أمامنا وواحدة

05:04.410 --> 05:05.300
على اليمين.

05:05.310 --> 05:10.560
كما تعلم ، عندما نقود سيارة ، كان من الممكن أن نذهب للحصول على إشارة 360 ، كما تعلمون ، مثل الإشارات الموجودة

05:10.560 --> 05:12.090
أعلى سيارات Google.

05:12.090 --> 05:15.510
لكن يمكننا القيادة الذاتية تمامًا باستخدام ثلاثة أجهزة استشعار.

05:15.780 --> 05:20.970
ومن ثم لدينا هذا التوجه والتوجيه الناقص ، كما تعلمون ، لتتبع الهدف الذي نحاول

05:20.970 --> 05:22.050
الوصول إليه.

05:22.290 --> 05:28.680
ثم لدينا بالطبع الخلايا العصبية الناتجة من شبكتنا العصبية التي تتوافق مع الإجراءات.

05:28.680 --> 05:32.700
ولدينا ثلاثة أفعال محتملة تتجه يسارًا ، أو مستقيمًا أو يمينًا.

05:32.700 --> 05:36.240
وبالتالي سأسميها وأكون عملاً.

05:36.240 --> 05:37.800
وسيكون هناك ثلاثة منهم.

05:38.370 --> 05:38.670
حسنا.

05:38.670 --> 05:44.790
لكن حتى الآن ، علينا فقط إعطاء أسماء للمدخلات وبعد ذلك سنستخدم هذه المتغيرات لإجراء الحسابات داخل

05:44.790 --> 05:46.110
الشبكة العصبية.

05:46.930 --> 05:48.400
حسنا إذا.

05:49.000 --> 05:52.150
سأبدأ باستخدام خدعة أخرى من PyTorch.

05:52.180 --> 05:54.340
هذه الحيلة هي الوظيفة الفائقة.

05:54.460 --> 05:59.170
هذه وظيفة ترث بالفعل من وحدة RN.

05:59.170 --> 06:02.560
لهذا السبب كان علينا استخدام الوراثة لوراثة أداة الوحدة النمطية.

06:02.560 --> 06:04.300
هذه هي الأداة الأولى التي نستخدمها.

06:04.300 --> 06:10.450
وبالتالي نحن نستخدم هذه الخدعة الفائقة فقط ، هذه الوظيفة الفائقة لنكون قادرين على استخدام أدوات

06:10.450 --> 06:11.320
الوحدة.

06:11.380 --> 06:13.060
لذلك هذا أكثر كفاءة.

06:13.450 --> 06:18.280
وداخل هذه الوظيفة الفائقة ، أريد فقط تحديد الشبكة أولاً.

06:18.400 --> 06:24.460
هذه هي فئة الشبكة الفرعية الخاصة بنا ، كما تعلمون ، لأن هذا موروث من فئة

06:24.460 --> 06:35.020
أصل الوحدة النمطية ثم الكائن الخاص بنا ، ثم أقوم فقط بإضافة نقطة و / أو وظيفة init مثل هذه تمامًا كما أطلقنا عليها.

06:35.380 --> 06:35.740
حسنا.

06:35.740 --> 06:41.740
هذه مجرد خدعة لاستخدام جميع الأدوات في تلك الوحدة ، ثم يمكننا الانتقال

06:41.740 --> 06:46.150
إلى الخطوة التالية ، وهي تحديد طبقة الإدخال.

06:46.300 --> 06:53.230
لذلك ، ما علي فعله هو تقديم متغير جديد سيتم إرفاقه بالكائن وسيحتوي هذا المتغير

06:53.230 --> 06:56.950
على عدد الخلايا العصبية المدخلة.

06:56.950 --> 07:00.160
حتى لا يتم الخلط بينه وبين حجم المدخلات.

07:00.160 --> 07:07.090
حجم الإدخال هو وسيطة دالة init ، ولكن هذا ليس المتغير المرتبط بالكائن

07:07.090 --> 07:10.270
ولكن المتغير المرتبط بالكائن.

07:10.270 --> 07:15.190
حسنًا ، كما ذكرت للتو ، نحتاج إلى تحديد أنه مرتبط بالكائن بدلاً من ذلك.

07:15.190 --> 07:22.000
لذلك نستخدم نقطة ذاتية ونعطي الآن اسمًا لهذا المتغير الأول المرتبط بالكائن.

07:22.000 --> 07:24.730
ولذا يمكننا ببساطة إعطاء نفس اسم الإدخال.

07:24.730 --> 07:31.900
يمكننا أن نسميها حجم الإدخال ، وسنقول إنها تساوي وسيطة دالة init التي هي حجم

07:31.900 --> 07:32.980
الإدخال.

07:33.520 --> 07:33.880
حسنا.

07:33.880 --> 07:39.430
لذلك في كل مرة أقوم فيها بإنشاء كائن من فئة الشبكة وأحدد حجم الإدخال ، على سبيل المثال

07:39.430 --> 07:45.190
، أقوم بإدخال خمسة ، سيكون هناك خمسة هنا ، وبالتالي فإن متغير حجم الإدخال في الكائن سيكون

07:45.190 --> 07:51.250
له القيمة من خمسة لأن حجم المدخلات هنا سيكون خمسة ، وبالتالي فإن شبكتنا العصبية ستحتوي على

07:51.250 --> 07:54.850
خمسة عصبونات مدخلات في طبقة الإدخال.

07:55.300 --> 07:55.690
حسنا.

07:55.690 --> 08:01.990
ومن ثم فإن هذا هو نفسه بالنسبة للمتغير الآخر الذي نريد ربطه بالكائن.

08:01.990 --> 08:07.930
وكما قد تكون خمنت ، سيكون هذا متغيرًا لعدد الخلايا العصبية الناتجة.

08:08.080 --> 08:15.040
وللقول إننا نأخذ ذاتنا للشيء ثم نعطي اسمًا لهذا المتغير الثاني من الكائن

08:15.040 --> 08:17.620
الذي سنطلق عليه اسم الفعل.

08:17.950 --> 08:23.200
وسيكون هذا مساويًا لهذه الحجة هنا ، مع إعطاء عدد الإجراءات ، أي عدد الخلايا العصبية

08:23.200 --> 08:24.220
الناتجة.

08:24.220 --> 08:28.060
ولذا فإننا نساويها ونكون فعلًا.

08:28.150 --> 08:30.640
إذن في الواقع سيكون الإجراء يساوي ثلاثة.

08:30.640 --> 08:37.480
لذلك ، فإن المتغير والإجراء المرتبطين بكائننا بشبكة سيحصلان على قيمة ثلاثة.

08:38.080 --> 08:39.670
في الواقع ، يمكننا أن نرى تحذيرًا هنا.

08:39.670 --> 08:47.470
يقول اسم غير محدد ثم حسنًا ، لأننا هنا نستخدم اختصار RN ونحتاج إلى استخدام الاختصار

08:47.470 --> 08:52.690
هنا ثم في النهاية في الوحدة النمطية ثم يختفي.

08:52.690 --> 08:53.470
ها نحن ذا.

08:53.500 --> 08:54.340
في احسن الاحوال.

08:54.340 --> 08:55.840
الآن ليس لدينا تحذيرات.

08:55.840 --> 09:01.420
جميع التحذيرات هنا هي فقط لتحديد أن ما نستورده لم يتم استخدامه بعد.

09:01.420 --> 09:02.020
لكن لا مشكلة.

09:02.020 --> 09:03.940
سنستخدمهم بعد ذلك.

09:04.510 --> 09:07.870
حسنًا ، لدينا متغيرين آخرين.

09:07.870 --> 09:09.880
نريد تحديد أربعة أشياء.

09:09.880 --> 09:15.790
وستكون هذه هي الاتصالات الكاملة ، الروابط الكاملة بين الطبقات المختلفة لشبكتنا

09:15.790 --> 09:16.510
العصبية.

09:16.510 --> 09:21.580
لذلك بما أننا نريد الآن إنشاء شبكة عصبية تتكون من طبقة مخفية واحدة فقط ، حسنًا ، سيكون

09:21.580 --> 09:23.380
هناك اتصالان كاملان.

09:23.380 --> 09:29.380
سيكون هناك اتصال كامل 1/1 بين طبقة الإدخال والطبقة المخفية ، و 1/2 اتصال كامل

09:29.380 --> 09:32.200
بين الطبقة المخفية وطبقة الإخراج.

09:32.200 --> 09:34.630
لذلك لنبدأ بأول اتصال كامل.

09:34.630 --> 09:37.900
سنسميها FC one.

09:37.900 --> 09:43.420
ومرة أخرى ، أستخدم self هنا لتحديد أن FC one هو متغير الكائن الخاص بي.

09:43.570 --> 09:45.190
حتى النفس هذا FC واحد.

09:45.800 --> 09:47.440
الذي سيكون مساويا ل.

09:47.450 --> 09:53.870
والآن نستخدم الوحدة RN وسنستخدم دالة تسمى الخطية.

09:54.020 --> 10:00.530
وهذا بالضبط لجعل هذا الاتصال الكامل بين الخلايا العصبية في طبقة الإدخال والخلايا العصبية للطبقة

10:00.530 --> 10:01.580
المخفية.

10:01.940 --> 10:03.910
وماذا أعني بالارتباط الكامل؟

10:03.920 --> 10:09.230
هذا يعني أن جميع الخلايا العصبية في طبقة الإدخال سيتم توصيلها جميعًا بجميع الخلايا العصبية في الطبقة

10:09.230 --> 10:09.770
المخفية.

10:09.980 --> 10:16.010
ولإجراء هذا الاتصال الكامل ، نستخدم هذه الدالة الخطية التي نحتاج إلى إدخال بعض الحجج لها.

10:16.010 --> 10:19.670
وكما ترون ، هذه الحجج في الميزات.

10:19.670 --> 10:23.800
هذا هو عدد الخلايا العصبية في الطبقة الأولى التي نريد توصيلها.

10:23.810 --> 10:28.400
ثم الميزات الخارجية ، وهي عدد الخلايا العصبية للطبقة الثانية التي نريد توصيلها.

10:28.400 --> 10:32.240
هذه هي الطبقة الموجودة على اليمين ، وهي الطبقة المخفية والانحياز يساوي true.

10:32.270 --> 10:33.470
متحيز لذلك يساوي صحيح.

10:33.500 --> 10:39.440
سنحتفظ بالقيمة الافتراضية التي من أجل الحصول على تحيز وليس فقط طريقة ما للربط بالخلايا

10:39.440 --> 10:43.130
العصبية ، سيكون لدينا وزن وتحيز واحد لكل طبقة.

10:43.370 --> 10:46.040
حسنًا ، دعونا نرى ما نحتاج إلى إدخاله.

10:46.040 --> 10:51.770
لذا فإن الحجة الأولى في الميزات هي عدد الخلايا العصبية المدخلة في طبقة الإدخال.

10:51.770 --> 10:52.820
وماذا إذن؟

10:52.820 --> 10:54.860
حسنًا ، هذا في الواقع حجم المدخلات.

10:54.860 --> 11:02.000
هذه هي سعة دالة init ، والتي ستساوي فيما بعد خمس إشارات اتجاه الاتجاه وسالب

11:02.000 --> 11:03.440
الاتجاه.

11:03.950 --> 11:04.880
حسنا هيا بنا.

11:04.910 --> 11:08.780
نقوم بإدخال حجم إدخال الوسيطة الأولى.

11:09.700 --> 11:12.730
ثم الحجة الثانية حول الميزات.

11:12.730 --> 11:18.100
هذا هو عدد الخلايا العصبية التي نريد الحصول عليها في الطبقة الثانية ، الطبقة الثانية التي سيتم

11:18.100 --> 11:20.120
توصيلها بالكامل بالطبقة الأولى.

11:20.140 --> 11:24.820
والسؤال المطروح الآن هو ، كم عدد الخلايا العصبية التي نريدها في هذه الطبقة المخفية؟

11:25.000 --> 11:27.340
حسنًا ، لقد أجريت الكثير من ضبط المعلمات.

11:27.340 --> 11:28.930
لقد قمت بالكثير من التجارب.

11:28.930 --> 11:31.870
هذا ما نفعله في الذكاء الاصطناعي أو هذا ما نفعله في التعلم العميق.

11:31.870 --> 11:38.890
بشكل عام ، نقوم بالكثير من التجارب لمعرفة ما هي أفضل شبكة عصبية لمشكلتنا المحددة.

11:38.890 --> 11:44.980
وهكذا جربت العديد من القيم وانتهى بي الأمر باختيار 30 ، 30 خلية عصبية في طبقة مخفية.

11:44.980 --> 11:48.160
وسترون أنه بهذا الرقم ، سنحصل على بعض النتائج الجيدة.

11:48.160 --> 11:51.520
لكن بعد ذلك لا تتردد في تغيير بنية الشبكة العصبية.

11:51.520 --> 11:52.870
لا تتردد في اللعب بها.

11:52.870 --> 11:57.460
لا يمكنك فقط تغيير عدد الخلايا العصبية المخفية في الطبقة المخفية ، ولكن يمكنك

11:57.460 --> 12:01.090
أيضًا إضافة المزيد من الطبقات حتى تحصل على سيارة أفضل.

12:01.090 --> 12:05.740
لكن 3000 خلية عصبية ستوفر لنا شبكة عصبية جيدة وسيارة جيدة.

12:05.740 --> 12:07.270
لذلك هذا ما نسعى إليه.

12:07.270 --> 12:08.320
وها نحن ذا.

12:08.320 --> 12:13.240
لدينا أول اتصال كامل مع هذه الدالة الخطية.

12:13.240 --> 12:16.840
نجعل الاتصال الكامل بين طبقة الإدخال والطبقة المخفية.

12:17.080 --> 12:21.040
والآن حان الوقت لإجراء الاتصال الكامل الثاني.

12:21.040 --> 12:25.030
هذا هو الاتصال الكامل بين الطبقة المخفية وطبقة الإخراج.

12:25.270 --> 12:26.260
لذا ها نحن ذا.

12:26.470 --> 12:30.100
سنقوم باستدعاء هذا الاتصال الكامل الثاني.

12:30.100 --> 12:32.140
FC two ها نحن ذا.

12:32.140 --> 12:34.900
ولا يزال هذا متغيرًا من موضوعنا.

12:34.900 --> 12:41.140
لذلك أنا أستخدم الأشياء هنا ثم نستخدمها جيدًا في الواقع يمكننا نسخ هذا لأننا

12:41.140 --> 12:49.060
سنستخدم الوحدة RN ثم الوظيفة الخطية ، ولكن بعد ذلك نحتاج إلى تغيير الحجج بالطبع أولاً.

12:49.060 --> 12:49.810
نفس الشيئ.

12:49.810 --> 12:55.000
الأول هو عدد الخلايا العصبية التي نريد الحصول عليها في الطبقة الأولى من اتصال الطعام.

12:55.000 --> 12:58.960
إذن هذه هي الطبقة المخفية ، وبالتالي فهي 30.

12:59.380 --> 13:05.080
ثم الحجة الثانية هي عدد الخلايا العصبية في الطبقة الثانية لاتصال الطعام والتي

13:05.080 --> 13:06.910
تتوافق مع طبقة الإخراج.

13:06.910 --> 13:13.120
وطبقة المخرجات تحتوي على خلايا عصبية فعلية وستكون لاحقًا ثلاثة لأن لدينا ثلاثة أفعال

13:13.120 --> 13:13.840
محتملة.

13:13.840 --> 13:19.420
لكن حتى الآن علينا استخدام الأسماء التي حددناها ، وهي أسماء وسيطة الدالة

13:19.570 --> 13:23.200
init وبالتالي فإننا ندخلها هنا ونكون إجراءً.

13:23.590 --> 13:24.700
وها نحن ذا.

13:24.700 --> 13:30.910
بادئ ذي بدء ، اتصلانا الكاملان جاهزان وثانيًا ، وظيفة init جاهزة.

13:31.120 --> 13:36.850
إذن هذا ما سنهيئ كائننا كلما أنشأنا كائنًا من فئة الشبكة.

13:36.850 --> 13:43.180
وبمجرد إنشاء كائن ، حسنًا ، كل هذه المتغيرات ، سيتم تحديد المتغيرات الأربعة

13:43.180 --> 13:46.930
هنا حجم الإدخال ويكون الإجراء FC واحد و FC 2.

13:46.930 --> 13:50.200
وهذه هي الطريقة التي سنحصل بها على بنية شبكتنا العصبية.

13:50.200 --> 13:56.350
لكل كائن نقوم بإنشائه ، سيتوافق كل كائن مع شبكة عصبية مكونة من خمسة عصبونات إدخال

13:56.350 --> 14:00.040
و 30 خلية عصبية مخفية وثلاث خلايا عصبية ناتجة.

14:00.220 --> 14:01.210
لذا ها نحن ذا.

14:01.240 --> 14:06.520
لقد انتهينا من وظيفة init الأولى والآن يمكننا الانتقال إلى الوظيفة الثانية ،

14:06.520 --> 14:12.460
وهي الوظيفة الأمامية والتي سيتم استخدامها لتنشيط الخلايا العصبية في الشبكة العصبية باستخدام

14:12.460 --> 14:19.210
وظيفة تنشيط المعدل ، وفي الغالب لإرجاع Q في النهاية القيم التي هي نواتج شبكتنا العصبية.

14:19.300 --> 14:21.640
لذلك لا يمكنني الانتظار للقيام بذلك في البرنامج التعليمي التالي.

14:21.640 --> 14:22.960
وحتى ذلك الحين ، استمتع.

14:22.960 --> 14:23.530
أنا.
