أهلا ومرحبا بكم في هذا البرنامج التعليمي.
في البرنامج التعليمي السابق ، قمنا بتهيئة الخريطة والآن حان الوقت للأشياء المثيرة.
نصنع النواة ونفعل ذلك مع الفصل.
بالطبع سترى أن الفصل عملي جدًا لإنشاء بعض الأشياء التي تحتوي على الكثير من الخصائص ، لأنه كما
ترى ، لا أقوم فقط بتعريف بعض المتغيرات لسيارتي ، ولكن أيضًا بعض الوظائف ، والتي هي بالطبع
وظيفة تجعل السيارة تتحرك إلى اليسار أو اليمين أو تسير بشكل مستقيم.
إذن لدينا متغيران مهمان لوصف البيئة.
لدينا ، على سبيل المثال ، الزاوية ، وهي الزاوية بين المحور x ومحور اتجاه السيارة.
ثم لدينا الدوران ، وهو آخر دوران له ، والذي يتذكر إما درجة صفر أو 20 درجة
أو -20 درجة.
ثم لدينا السرعة ، إحداثي x لمتجه السرعة والإحداثي Y لمتجه السرعة
، ثم متجه إحداثيات السرعة X والسرعة y.
ثم لدينا أجهزة الاستشعار والإشارات ، وهذا مهم للغاية.
السيارة التي نصنعها ستحتوي على ثلاثة مستشعرات منذ حساس واحد وثلاثة مستشعرات.
سيكتشف المستشعر الأول ما إذا كان هناك أي رائحة أمام السيارة.
ثم المستشعر الثاني هو المستشعر الذي سيكتشف ما إذا كان هناك أي رائحة على يسار السيارة.
والمستشعر الثالث هو المستشعر الذي سيكتشف ما إذا كان هناك أي رائحة على يمين السيارة.
ثم من هذه المستشعرات الثلاثة ، نحصل على الإشارات ، وهي الإشارات التي يتلقاها كل جهاز من المستشعرات.
لذا فإن الإشارة الأولى هي الإشارة التي يستقبلها المستشعر الأول.
الإشارة الثانية هي الإشارة التي يستقبلها المستشعر الثاني والإشارة الثالثة هي الإشارة التي يستقبلها المستشعر الثالث.
فكيف تعمل؟
الإشارة الأولى هي كثافة الإرسال حول المستشعر الأول.
الإشارة الثانية هي كثافة الرائحة حول المستشعر الثاني ، والإشارة الثالثة هي كثافة الرمل حول المستشعر
الثالث.
وكيف نحسب كثافة الرمل هذه؟
حسنًا ، هذا بسيط جدًا.
نأخذ بعض المربعات الكبيرة حول كل من المستشعرات.
هذه في الواقع مربعات بحجم 200 في 200.
ولكل مربع من المربعات ، نقسم عدد الآحاد في المربع على إجمالي عدد الخلايا
في المربع الذي يساوي 20 في 20 يساوي 400.
وهذا يعطينا كثافة الرمال لأن تلك تتوافق مع الرمال.
نقوم بذلك لكل مستشعر وهذا يعطينا كثافة الرمل حول كل جهاز استشعار.
هذه هي الإشارات.
حسنا.
والآن لدينا كل شيء لاكتشاف الرمال ومن ثم لدينا وظيفة الحركة.
وبالطبع ، فإن وظيفة الحركة هي التي ستسمح للنواة بالذهاب إلى اليسار مستقيمة أو إلى
اليمين.
لذا دعنا ننتقل إليها بسرعة.
لدينا هنا تحديث لموضع اللب مع موضعه الأخير ، وهو الذات التي تمر
هنا ومتجه السرعة.
لذلك بفضل متجه السرعة ، سيتم تحديث الموضع في اتجاه متجه السرعة.
ثم نحصل على الدوران الذي سننزله في الكود هنا.
التناوب يساوي إجراء التناوب هنا سنحدد الإجراء ثم نحصل على الدوران.
وبالتالي فإن هذا الدوران الذاتي يساوي الدوران.
هنا هو هذا الدوران الذي نعرفه كيف نحتاج إلى تدوير اللب الذي يتجه إلى اليسار أو
اليمين.
ثم نقوم بتحديث الزاوية التي أذكرها بأنها الزاوية بين المحور x ومحور اتجاه
القلب.
وبعد ذلك ، بمجرد أن يتحرك اللب ، يتعين علينا تحديث المستشعرات والإشارة لأنه بالطبع
عندما يدور اللب للتو ، بينما تدور المستشعرات أيضًا ، وبالتالي نحتاج إلى تدويرها باستخدام
وظيفة التدوير و الذي نضيفه الوظيفة الجديدة.
ولماذا لدينا هذا المتجه 30 صفر؟
حسنًا ، هذا ببساطة لأن 30 هي المسافة بين اللب والمستشعر.
كما تعلم ، إنها المسافة بين اللب وما يكتشفه اللب.
وبمجرد تحديث المستشعرات ، حسنًا ، حان الوقت لتحديث الإشارات.
وها نحن نقوم بما أشرح بالضبط لحساب الإشارات.
نحصل على إحداثيات X لجهاز الاستشعار ، ثم نأخذ جميع الخلايا من سالب عشرة إلى زائد عشرة.
ثم نفعل الشيء نفسه بالنسبة للإحداثي Y ، حيث نأخذ جميع الخلايا من سالب عشرة إلى زائد عشرة.
لذلك نحصل على مربع 20 × 20 بكسل يحيط بالمستشعر ، وداخل هذا المربع نجمع
كل الآحاد.
لذلك نجمع كل الخلايا بشكل أساسي لأن الخلايا تحتوي على صفر أو واحد.
وبما أنه في مربع 20 في 20 ، هناك 20 في 20 يساوي 400 خلية.
حسنًا ، نقسمها على 400 لنحصل على كثافة مرة واحدة داخل المربع.
وبهذه الطريقة نحصل على إشارة كثافة الخلايا حول المستشعر.
وفعلنا الشيء نفسه بالنسبة للمستشعر الثاني والمستشعر الثالث للحصول على الإشارة الثانية والثالثة.
تمام.
لذلك هذا لاكتشاف المعنى.
ومن ثم فإن الأسطر الثلاثة للشفرة هنا مهمة للغاية.
إنها مكافأة سيئة أخرى نريد منحها لسيارتنا عندما تصل إلى أحد أطراف الخريطة.
لا نريد أن تندفع السيارة إلى بعض الجدران ، وبالتالي نريد معاقبتهم ، ومعاقبتها عندما
تقترب جدًا من الحائط.
وبالتالي ، هذا ما نفعله هنا.
إذا كان المستشعر الأول أكبر من أطول ناقص عشرة ، فهذا أكبر من هنا لأن هذه المسافة أطول
هنا.
إذاً أطول ، ناقص عشرة هنا.
لذلك إذا كان المستشعر أكبر من x واحد ، فإن ناقص عشرة يتعلق بجميع النقاط الموجودة هنا ، أي
إذا كانت السيارة تقترب من الحافة اليمنى للخريطة أو إذا كان المستشعر الذاتي X واحد أقل من عشرة.
لذلك هذا هنا.
إذا كانت السيارة تقترب من الحافة اليسرى للخريطة أو إذا كان المستشعر Y أكبر من أكبر ناقص عشرة
، فهذه هي الحافة العلوية للخريطة.
وإذا كان المستشعر الذاتي y أقل من عشرة ، فهذه هي الحافة السفلية للخريطة.
وبالتالي إذا وصل المستشعر إلى أي من هذه الحواف الأربعة ، حسنًا ، سنضع إشارة المستشعر.
الإشارة الأولى هي إشارة المستشعر الأول.
سنجعلها واحدة.
وماذا يعني ذلك؟
هذا يعني الإرسال الكامل ، مثل كثافة الرائحة الكاملة.
إنه مثل أسوأ شيء يمكن أن تحصل عليه.
هناك الكثير من الإحساس بأنه سيوقف سيارتك.
لذلك ستكون الإشارة واحدة وبالتالي ستحصل السيارة على مكافأة سيئة للغاية.
حسنا.
ثم فعلنا الشيء نفسه للإشارة الثانية والإشارة الثالثة من المستشعر الثاني والمستشعر الثالث.
حسنا.
ثم نقوم بإنشاء فئة اللعبة.
إذن هذا هو أساسًا فئة إنشاء اللعبة لأننا حتى الآن لم نخلق سوى السيارة.
والآن بالطبع ، يتعين علينا إنشاء الخريطة ، وعلينا إنشاء اللعبة نفسها حتى لا نلعب
اللعبة.
إن الذكاء الاصطناعي الخاص بنا هو الذي سيلعب اللعبة.
واللعبة في الواقع هي تجنب العقبات والذهاب من المطار إلى وسط المدينة والعكس.
لذلك في فئة اللعبة هذه ، نحتاج إلى إنشاء بعض الكائنات مثل السيارة ، ثم نحتاج إلى تحديد وظيفة
التحديث الأكثر أهمية.
وفي الواقع ، سنركز على ذلك الآن لأنه في وظيفة التحديث هذه ، سنحدد الإجراء
الذي يتعين على السيارة القيام به في كل مرة لتحقيق هدفها.
وهذا الإجراء هو بالضبط ناتج شبكتنا العصبية ، الشبكة العصبية التي ستكون في
قلب ذكائنا الاصطناعي.
وهكذا يتم إرجاع هذا الإجراء بواسطة دماغ السيارة ، والذي أذكر أنه موضوع الفصل الحالي الذي
سيتم تنفيذه في ملف AI الخاص بنا.
وهذا الكائن له أسلوب يسمى التحديث ويأخذ كمدخل آخر مكافأة وإشارة أخيرة.
لذا فإن المكافأة الأخيرة بالطبع هي آخر مكافأة تحصل عليها السيارة.
والإشارة الأخيرة هي بالطبع آخر إشارة من أجهزة الاستشعار الثلاثة.
إشارة واحدة من جهاز استشعار إشارة اثنين من جهاز استشعار إشارتين ثلاثة من جهاز استشعار ثلاثة.
ولكن بعد ذلك أقوم بإضافة مدخلين آخرين ، وهما اتجاه السيارة بالنسبة للهدف.
على سبيل المثال ، إذا كانت السيارة تتجه نحو الهدف ، فسيكون الاتجاه مساويًا للصفر.
إذا ذهب قليلاً إلى اليمين ، فسيكون الاتجاه قريبًا من 45 درجة.
وإذا ذهب قليلاً إلى اليسار ، فسيكون الاتجاه قريبًا من -45 درجة.
إذن هذا هو المدخل الرابع لحالة الإدخال.
ومن ثم هناك الإدخال الأخير وهو ناقص الاتجاه.
لذلك عادة ما تكون مدخلات الشبكة العصبية مستقلة.
لا يوجد خطي ، لكن لا يهم إذا أضفنا هذا لأن الشبكة العصبية ستصلح ذلك
بالأوزان فقط.
لكن ما زلت ألاحظ أنه بإضافة هذا الاتجاه الناقص ، حسنًا ، الذي يسمح للسيارة ، بتدريب
السيارة على تثبيت الاستكشاف.
كما تعلم ، نحن نقوم بذلك حتى لا يستكشف الذكاء الاصطناعي دائمًا في نفس الاتجاه.
بإضافة هذا الاتجاه الناقص ، نتأكد من أنه يستكشف في كلا الاتجاهين ، اليمين أو اليسار.
وبالتالي فإن هذه الإشارات الثلاث ، بالإضافة إلى الاتجاه والتوجيه الناقص هي المدخلات الخمسة لمتجهنا
المشفر ، والذي سينتقل إلى الشبكة.
هذا هو ناقل المدخلات الخاص بنا الذي سينتقل إلى الشبكة.
وبعد انتقالها إلى الشبكة ، حسنًا ، تقوم الشبكة بإرجاع المخرجات ، وهو الإجراء الذي
يجب تشغيله في كل مرة.
ويتم إرجاع الإخراج بواسطة وظيفة التحديث هذه التي تحتوي على الشبكة نفسها ومخرجات
الشبكة.
وبالتالي ، لهذا السبب يتعين علينا إدخال الإشارة الأخيرة وهي حالة الإدخال وأيضًا المكافأة الأقل
، لأن الإجراء الذي سيتم تشغيله يعتمد أيضًا على المكافأة الأقل.
حسنا.
ثم نقوم بتحديث متوسط درجات الأجنحة ، ونقوم بتحديث الدوران ، ونستخدم وظيفة الحركة لتدوير
السيارة وفقًا للإجراء الذي تم تحديده.
نقوم بتحديث مسافة السيارة عن الهدف ونقوم بتحديث مواضع المستشعرات.
تتطابق كل من الكرة الواحدة واثنتان وثلاث مع الكرات التي ستمثل المستشعرات على الخريطة.
سترى ذلك بسرعة كبيرة.
ثم هنا هذا الجزء مهم جدًا لأن هذا هو المكان الذي نعاقب فيه السيارة إذا اصطدمت
ببعض الرمال ، لأنه كما ترون ، هذا يعني أنه إذا كانت السيارة على بعض الرمال ، فسيتم إبطاء سرعتها.
هذا هو المكان الذي نخفض فيه سرعته.
كما تعلمون ، سرعتها عادة ستة ، كما ترون هنا.
وإذا سقط على بعض الرمل ، فسيكون واحدًا.
لذلك سوف يتباطأ إلى واحد.
سترى كيف ستتباطأ السيارة بمجرد أن تتسرب إلى بعض الرمال.
لذا فهو يتباطأ إلى جانب أنه يحصل على مكافأة سيئة.
يحصل على مكافأة ناقص واحدة.
وهذه في الواقع أسوأ مكافأة يمكن أن تحصل عليها.
أفضل مكافأة واحدة.
أسوأ أجر هو ناقص واحد ، والمكافأة بين ناقص واحد و زائد واحد.
وبخلاف ذلك ، إذا لم تكن السيارة على بعض الرمال ، فإنها تحافظ على سرعتها المعتادة ، وهي السرعة ستة.
ثم نضيف شيئًا آخر.
إذا اقترب من الهدف ، فسيحصل على مكافأة إيجابية بعض الشيء.
وإذا ابتعدت عن الهدف ، فستحصل على مكافأة سلبية قليلاً ، ناقص 0. 2.
ثم آخر الشروط التي تتعلق بالمكافأة.
حسنًا ، هذا إذا كان القلب يقترب جدًا من إحدى الحواف ، كما تحدثنا سابقًا.
تذكر عندما تحدثنا عن الرمال الكاملة؟
حسنًا ، إذا اقترب القلب كثيرًا من الحافة اليسرى للخريطة ، فسيحصل على مكافأة واحدة.
إذا كان قريبًا جدًا من الحافة اليمنى للخريطة ، فسيحصل على مكافأة اثنين ناقص واحد.
وإذا اقتربت كثيرًا من الحافة السفلية للخريطة ، فستحصل على مكافأة مطروحًا منها.
وإذا كانت قريبة جدًا من الجانب الأيسر العلوي من الخريطة ، فإنها تحصل على المكافآت ناقصًا واحدًا.
لذا فهذه عقوبة رهيبة.
وهكذا سترى كيف ستتعلم بسرعة ألا تتسرع في شيء آخر.
حسنا.
ثم هذا لتحديث الهدف عند الوصول إلى الهدف.
لذا ، كما تعلم ، عندما تصل السيارة إلى المطار ، وهو الهدف الأول ، هذا هو الركن الأيسر العلوي
من الخريطة ، بينما يتغير الهدف إلى الركن الأيمن السفلي من الخريطة ، وهو وسط المدينة ، وهذا بالضبط
ما نحن إفعلها هنا.
نقوم بتحديث إحداثيات X للهدف والإحداثيات Y للهدف ، ثم نقوم بتحديث المسافة من السيارة
إلى الهدف.
حسنا.
ثم هذا أقل أهمية.
هذه مجرد فئة ستضيف أدوات الرسم لنا حتى نتمكن من رسم بعض الطرق أو بعض العوائق على الخريطة
التي ترتبط أكثر بالكهف.
يمكنك إلقاء نظرة إذا كنت تريد.
سأقدم النسخة المُثنى عليها من هذا الرمز وسأقدم بعض المراجع إذا كنت تريد التعمق أكثر وكيفية القيام
بذلك باستخدام Sky V.
لكننا نبتعد عن الذكاء الاصطناعي ، لذلك لن أخوض في تفاصيله.
وهذا هو نفسه بالنسبة لقسم الرمز الأخير هنا مع فئة تطبيق السيارة.
هذا فقط لإضافة أزرار API ومسحها وحفظها وتحميلها.
هذا ما نفعله هنا.
مسح قماش حفظ.
وهذا في الواقع مهم للغاية.
هذا من أجل أن نكون قادرين على حفظ الذكاء الاصطناعي ، لحفظ الدماغ بحيث يمكنك إعادة استخدامه لاحقًا عن طريق
أخذ وظيفة التحميل ، وهي أداة أخرى نضيفها على الخريطة لتحميل دماغ السيارة
، أي تحميل ذاكرة السيارة وكيفية التنقل في الخريطة.
ثم أخيرًا لدينا آخر قسم من آخر قسم من الكود والذي يدير كل شيء وهو الذي يدير الخريطة
والذكاء الاصطناعي نفسه.
وفي الواقع ، هذا ما سنفعله الآن.
دعونا نلقي نظرة على كل شيء نصنعه في هذا الكود.
حتى الآن لم يتم تنفيذ الذكاء الاصطناعي.
لذلك سيكون للرمز حركة عشوائية جدًا.
ستبدو في الواقع مثل الحشرة.
لكن لا تقلق ، سنصلح ذلك.
لن نقوم فقط بتدريبها على التحرك مثل سيارة حقيقية وندربها على التنقل باتباع بعض الطرق وتجنب
بعض العقبات.
لذلك دعونا نفعل هذا.
سأختار كل شيء وأقوم بالتنفيذ.
وها هي الخريطة وها هي السيارة.
حسنا.
لذلك هذا شيء صغير هنا الذي تراه يبدو وكأن الحشرة هي سيارتنا.
لذا كما أخبرتك ، فإن الإجراءات عشوائية تمامًا.
لذلك في كل مرة تختار السيارة بشكل عشوائي في العمل ما إذا كانت ستذهب مباشرة إلى اليسار أو اليمين.
لذلك هذا هو السبب في أنها تقوم بحركة هراء ، وهذا هو السبب في أنها تبدو وكأنها حشرة.
لذلك سوف نصلح ذلك بالطبع.
وبالطبع ، نظرًا لتنشيط الذكاء الاصطناعي ، حسنًا ، لن يتم الانتقال ، وهو
المطار هنا أو إلى وسط المدينة في أسفل يمين الخريطة.
وسنصلح كل هذا بجعل I لذلك سنقوم بتطبيق الذكاء الاصطناعي في هذا النواة أو هذه الحشرة.
يمكنكم رؤية الكرات الثلاث هنا ، الكرات الصفراء والحمراء والكرات البيضاء.
هذه هي أجهزة الاستشعار الثلاثة لدينا.
هذا ما سيكتشف ما إذا كان هناك بعض الرائحة حوله.
وبالحديث عن الرائحة ، حسنًا ، دعنا نرمي بعضًا منها.
للقيام بذلك ، أحتاج فقط إلى النقر على اليسار هنا و.
تعلمون ، رسم بعض الإرسال عن طريق النقر على اليسار.
الآن أقوم بإضافة بعض الرمل ، يمكننا إضافة المزيد.
لذلك في كل مرة أقوم فيها بإضافة الرمل ، كما ترون ، يتم وضع الرمل في مصفوفة الرمل.
هذه هي المصفوفة الرملية ، وهي إحداثيات الصفر صفر للأصل.
وهنا يوجد الكثير منها.
وكما ترون ، حسنًا ، من الجيد رؤيته.
السيارة صعدت للتو على الرمال وتم إبطاء سرعتها.
لذا كما ترون الآن ، فقد تباطأ حقًا لأنه يتجه نحو الرمال ويحاول
الآن الهروب.
وما سنفعله هو أننا سنرسم بعض الطرق وسنرسم بعض الطرق من المطار إلى وسط المدينة ، وسنقوم بتدريب
السيارة على البقاء في الطريق وتجنب العوائق.
حسنا.
وكما ترى ، يوجد الزر الواضح لمسح الرمال.
يوجد زر الحفظ لحفظ دماغ السيارة.
وفي الواقع ، هناك منحنى النتيجة الذي تحدثنا عنه والذي يحفظ العين ، والذي يحفظ نموذجك
، في الواقع ، دماغ سيارتك.
وبعد ذلك يمكنك أن تعرف ، عندما تترك الرمز الخاص بك أو تقوم بإيقاف تشغيل جهاز الكمبيوتر
الخاص بك وتريد العودة إليه مرة أخرى ، يمكنك استخدام زر التحميل لتحميل النموذج الخاص بك ، وهذا هو لتحميل
الدماغ وهذا سوف يتم تدريبه عين سيارتك.
حسنا.
لذا الآن لا أطيق الانتظار لبدء صنع جهاز I.
سيكون مضحكا كثيرا.
سنصنع شبكتنا العصبية وسنعاقب السيارة بمجرد أن لا تفعل ما نريد.
لذلك دعونا نفعل ذلك من البرنامج التعليمي التالي.
وحتى ذلك الحين ، استمتع.
أنا.