الدراجات العصبية: سفر التكوين

قبل أيام ، اعتقدت يوتيوب أنني سأجد أنه من المثير للاهتمام مشاهدة مقطع فيديو بعنوان "AI Learns to play Hill Climb Racing". إنه أمر مضحك ، لأنني قبل ذلك بدقيقتين كنت قد ارتكبت التغييرات التالية على المشروع ، حيث أعمل أنا وزملائي على حل هذه المشكلة بين العمل والعمل. صحيح ، لم يكن هناك "ذكاء اصطناعي" في هذا الفيديو - المؤلف سلى الجمهور بتسامح مع Box2D وهدأ على ذلك. ومع ذلك ، أقترح اعتبار هذه الحقيقة دليلاً مقنعًا على أهمية الموضوع وتفكيك جهاز حشرجة الموت لدينا.

باختصار حول المهمة: يجب أن تقود السيارة - في حالتنا إما أجنبي ، أو آلة الخياطة Singer على عجلات ، فلنطلق عليها ببساطة "وكيل" - على طول الكثبان الرملية بنفس ضجيج الاسم من البداية إلى النهاية. هذا ما يبدو عليه الوكيل في وضع الحماية:



الوكيل الذي يلمس الجزء الخلفي من المسار أو لا يظهر حماسة مناسبة في التحرك نحو الهدف تتم إزالته من المسار.

سنحل المشكلة باستخدام الشبكات العصبية ، ولكن تم تحسينها من خلال الخوارزمية الجينية (GA) - تسمى هذه العملية التطور العصبي . استخدمنا طريقة NEAT (NeuroEvolution of Augmenting الطوبولوجيا) التي اخترعها كينيث ستانلي وريستو ميكلولينن في بداية القرن [1] : أولاً ، لقد عمل جيدًا في مشاكل مهمة للاقتصاد الوطني ، وثانيًا ، بدأنا العمل على المشروع بالفعل لديها إطارها الخاص تنفيذ NEAT. لذا ، بصراحة ، لم نختار طريقة حل - بل اخترنا مهمة حيث يمكنك قيادة ما هو جاهز بالفعل.

يوضح الشكل مخططًا تقريبيًا للخوارزميات الجينية:



يمكن ملاحظة أن أي GA محترم يبدأ من السكان الأوليين ( السكان عبارة عن مجموعة من الحلول المحتملة). سنشارك في إنشائه وفي نفس الوقت نتعرف على المبدأ الأول لـ NEAT . وفقًا لهذا المبدأ ، يجب أن يكون لدى جميع العوامل في المجموعة السكانية الأولى طبولوجيا "الحد الأدنى" للشبكة العصبية. ما علاقة الطوبولوجيا به؟ والحقيقة هي أنه في NEAT جنبًا إلى جنب مع تحسين أوزان الاتصال ، تتطور أيضًا بنية الشبكة. هذا ، بالمناسبة ، يلغي الحاجة إلى تصميمها للمهمة. الانتقال من البنيات البسيطة إلى البنى المعقدة ليس منطقيًا فحسب ، بل عمليًا أيضًا (هناك مساحة بحث أقل) ، لذلك تحتاج إلى البدء بالحد الأدنى من الطوبولوجيا الممكنة - هذه هي الطريقة التي فكر بها مؤلفو الطريقة.

بالنسبة لحالاتنا وجميع الحالات المماثلة ، يتم اشتقاق هذا الحد الأدنى من الطوبولوجيا من الاعتبارات التالية. للقيام بشيء مفيد ، يحتاج الوكيل إلى:

  • الحصول على معلومات حول البيئة وحالتها ،
  • معالجة هذه المعلومات
  • تتفاعل مع عالمك.

يتم لعب الدور الأول بواسطة أجهزة الاستشعار - الخلايا العصبية في طبقة الإدخال ، والتي سنزودها بمعلومات مفيدة للعامل. ستعالج الخلايا العصبية لطبقة الإخراج البيانات من أجهزة الاستشعار. الجهات الفاعلة - الأجهزة التي تؤدي إجراءات ميكانيكية استجابة لإشارة من الخلايا العصبية "الخاصة بها" لطبقة الإخراج - مسؤولة عن التفاعل مع البيئة. وبالتالي ، فإن المبدأ العام لبناء التكوين الأولي هو كما يلي: نحدد مع أجهزة الاستشعار والمشغلات ، ونبدأ خلية عصبية واحدة لكل مشغل ، ونربط جميع أجهزة الاستشعار وخلايا عصبية خاصة أخرى - خلية عصبية الإزاحة ( التحيز ، حولها أدناه) بأوزان عشوائية لجميع الخلايا العصبية طبقة الإخراج. شيء من هذا القبيل:



ب - التحيز ، ق - أجهزة الاستشعار ، س - الخلايا العصبية من طبقة الإخراج ، أ - المحركات ، ن - عدد أجهزة الاستشعار ، ك - عدد المحركات

وهنا الحد الأدنى NS لمهمتنا:



لدينا محرك واحد فقط - هذا هو محرك ابتكاراتنا ذات العجلات. لا يعرف حتى الآن كيفية إطلاق النار والقفز وتشغيل الأنابيب. يتم توفير القيمة التالية للمحرك من خلية عصبية واحدة من طبقة الإخراج (من العار أن نطلق عليها طبقة):

و (w_b + \ sum \ limits_ {i = 1} ^ {n} {s_iw_i})

هنا w b هي قيمة وزن الاتصال الذي ينتقل من التحيز إلى الخلايا العصبية الناتجة ، مضروبة في حقيقة أن أي تحيز "ينتج" ، أي +1 ، s i هي القيمة المقيسة للنطاق [0،1] على المستشعر الأول ، و w i هي قيمة وزن الاتصال من المستشعر الأول إلى العصبون الناتج ، و f هي وظيفة التنشيط.

كدالة تنشيط ، نستخدم هذا الخيال الناعم:

و (س) = \ frac {1} {2} + \ frac {1} {2} \ left (\ frac {x} {0.2 + | x |} \ right)

- أظهرت أفضل أداء في اختبارات عالم التطور العصبي المعروف في الدوائر الضيقة [2] . وليس من المنطقي مقارنة ليونة الانحناءات وتماثل الرسم البياني لهذه الوظيفة مع LLeaky ReLU المنحني الزاوي:



يوضح هذا الشكل رد فعل الوكيل على القيم المختلفة لوظيفة التنشيط. عند القيم القريبة من الوحدة ، يقوم المحرك بتدوير العجلات في اتجاه عقارب الساعة ، مما يسرع العامل إلى الأمام ويميل بشدة السكن للخلف ، بحيث ينقلب الضعفاء ، ولكن الشجعان ، بسرعة على ظهورهم ويموت. مع القيم القريبة من 0 ، يكون العكس صحيحًا ، ومع القيمة 0.5 ، لا يعمل محرك العامل.

يوضح الشكل نفسه دور العصبون المتحيز - وزن الرابطة التي تنتقل منه إلى العصبون في طبقة الإخراج مسؤول ، على النحو التالي من (1) ، عن حجم واتجاه الانحياز f (x) على طول الخراج. يوضح الخط المنقط في الشكل رسمًا بيانيًا لوظيفة التنشيط عند w b = -1. اتضح أنه حتى في حالة عدم وجود إشارة على أجهزة الاستشعار ، فإن العامل الذي لديه مثل هذا الاتصال سيعود بسرعة: f (x) = f (-1 + 0) ≈0.083 <0.5. بشكل عام ، يسمح تغيير قيم الوظيفة أفقيًا لاتصال التحيز بمهارة (جيدًا أو كثيفًا ، اعتمادًا على الوزن) لضبط رد فعل المحرك على جميع قيم المستشعر ووزن اتصالاتها في وقت واحد. يبدو أنه تمت إضافة بُعد جديد إلى مساحة البحث (يجب البحث عن القيمة "الصحيحة" لـ w b ) ، ولكن الفوائد في شكل درجة إضافية من الحرية تفوق إمكانية حدوث مثل هذه النزوح.

حسنًا ، قدمنا ​​الشبكات العصبية لوكلاء المجتمع الأولي المستقبلي. لكن NEAT خوارزمية جينية ، وهي تعمل مع الأنماط الجينية - الهياكل التي تتكون منها الشبكات ، أو بشكل عام ، الأنماط الظاهرية في عملية فك التشفير. منذ أن بدأنا بالنمط الظاهري ، سنفعل كل شيء إلى الوراء: حاول ترميز الشبكة المعروضة أعلاه في النمط الجيني. هنا لا يمكنك الاستغناء عن مبدأ NEAT الثاني ، الذي يتمثل جوهره الرئيسي في ما يلي: في النمط الجيني ، بالإضافة إلى بنية الشبكة العصبية وأوزان اتصالاتها ، يتم تخزين المعلومات حول تاريخ أصل جميع عناصرها. وباستثناء هذا الجانب التاريخي ، يتم ترميز النمط الظاهري في النمط الجيني تقريبًا "واحد لواحد" ، وبالتالي ، سنوضح الآن المبدأ الثاني مع أجزاء من الشبكات العصبية.

من الصعب المبالغة في قيمة هذا المبدأ - فهو يوفر للعملاء إمكانية التكاثر الجنسي. الموضوع دقيق نوعًا ما ، لذلك سننظر أولاً في التكاثر اللاجنسي . يحدث مثل هذا: يتم عمل نسخة من جميع جينات العامل ، ويتم إجراء واحد من عدة أنواع من التغييرات عليها - الطفرات . في نسختنا من NEAT ، يمكن حدوث الطفرات التالية:

  • تغيير وزن الاتصال
  • إلغاء الارتباط
  • إضافة رابط
  • إدخال الخلايا العصبية.

الأنواع الثلاثة الأولى من الطفرات بسيطة ومفهومة دون مزيد من التوضيح. يظهر إدخال الخلايا العصبية في الشكل أدناه ، ويتم دائمًا بدلاً من الاتصال الحالي ، ويتم إزالة الاتصال ، ويظهر مكانان جديدان في مكانه:



هنا هو عصبون مخفي .

هناك عاملان متورطان في التكاثر الجنسي أو التهجين - الآباء ، ونتيجة لذلك يظهر الثالث - طفل. في عملية تكوين النمط الجيني للطفل ، يحدث تبادل ، على سبيل المثال ، جينات أو مجموعات من جينات الآباء المتماثلة في المعنى . المبدأ الثاني هو فقط ما تحتاجه للبحث عن جينات بنفس المعنى.

تخيل أننا نريد أن نتقاطع مع الأنماط الجينية التي مرت بسلسلة مختلفة من الطفرات من القائمة أعلاه:



يبدو من المنطقي البحث عن بعض الأجزاء الشائعة من حيث الطوبولوجيا في كلا الوالدين وتأخذ قطعة من هذه الأجزاء للنمط الجيني للطفل الذي لم يولد بعد. سيكون من الصعب القيام بذلك ، حتى NP صعب في الحالة العامة ، ولكن افترض أننا تمكنا. في هذه الحالة ، نجد أنه في الأصل على اليمين هناك نوعان من الرسوم البيانية الفرعية متماثلان في الرسم البياني للوالد الأيسر. في الشكل أدناه ، يتم تمييز أقواس هذه الرسومات الفرعية بألوان مختلفة:



أي واحد تختار لإعادة التركيب مع جينات الوالدين اليسرى؟

دعونا ننتقل إلى تاريخ ظهور هذه الأنماط الجينية:



بدأ كلا أسلاف الوكلاء الرئيسيين ، كما هو متوقع ، بحد أدنى من NS (T 0 ). تغيرت جينوماتهم بطريقة ما هناك ، وفي الوقت T 1 ، تم إدخال العصبون المخفي في الاتصال s 1 -> o في سلف الوالد الأيسر. في هذه اللحظة المأساوية ، الجينات ترميز الروابط s 1 -> h و h -> o تجد معناها في سلف الوالد الأيسر: استبدال الرابط s 1 -> o .
الجينات s 1 -> h 1 و h 1 -> o في النمط الوراثي للوالد المناسب في الوقت T 2 لها نفس المعنى بالضبط. المصير الإضافي لأسلافنا ليس له أهمية خاصة بالنسبة لنا - نحن نعرف بالفعل ما نختلط به:



كيفية كتابة التاريخ الجيني بشكل صحيح ، سيكون من الممكن تحديده في المرة القادمة ، خاصة وأن لدينا بعض الاكتشافات الصغيرة في هذا المجال ، فهي مرتبطة بتكييف التقنية الأصلية مع مخطط تكاثر مستقر.

حان الوقت للانتهاء. بدأ المقال بـ Youtube - وسنكمله. في إصدار سابق من المحاكي ، أنهى أحد الزملاء الذين كتبوا رمز إنشاء المسار بدون شيء ، هاوية بلا قاع. يمكن أن يطلق على رد فعل الشبكة العصبية التي تطورت لفترة طويلة في وجود جسم أرضي تحت عجلات إلى مثل هذا التصميم لكونها الصغير "كسر قالب":


يمكن العثور على مجموعة واسعة من القصص القصصية الأخرى من حياة علماء الطبيعة السيبرانية في [3] .

مصادر


[1] KO Stanley and R .. Miikkulainen ، تطور الشبكات العصبية من خلال تعزيز الطوبولوجيا التطورية ، المجلد. 10 ، لا. 2 ، ص. 99-127 ، 2002.
[2] سي جرين ، "مراجعة لوظائف التنشيط في SharpNEAT" ، 19 يونيو 2017.
[3] جيه ليمان وآخرون ، "الإبداع المدهش للتطور الرقمي: مجموعة من الحكايات من الحوسبة التطورية ومجتمعات البحث في الحياة الاصطناعية" ، arXiv: الحوسبة العصبية والتطورية ، 2018.

Source: https://habr.com/ru/post/ar426783/


All Articles