متى يجب أن أستخدم الخوارزميات الوراثية بدلاً من الشبكات العصبية؟ [مغلق

StackOverflow https://stackoverflow.com/questions/1402370

سؤال

هل هناك قاعدة من الإبهام (أو مجموعة من الأمثلة) لتحديد وقت استخدام الخوارزميات الجينية بدلاً من الشبكات العصبية (والعكس بالعكس) لحل مشكلة ما؟

أعلم أن هناك حالات يمكنك من خلالها خلط كلتا الطريقتين ، لكنني أبحث عن مقارنة عالية المستوى بين الطريقتين.

هل كانت مفيدة؟

المحلول

من ويكيبيديا:

أ الخوارزمية الوراثية (GA) هي تقنية بحث تستخدم في الحوسبة تجد دقيق أو تقريبي حلول لتحسين المشكلات والبحث.

و:

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

إذا كان لديك مشكلة حيث يمكنك تحديد قيمة الحل ، أ الخوارزمية الوراثية يمكن القيام البحث الموجهة من مساحة الحل. (على سبيل المثال ، أوجد أقصر طريق بين نقطتين)

عندما يكون لديك عدد من العناصر في فئات مختلفة ، أ الشبكة العصبية يمكن "التعلم" ل تصنيف العناصر التي لم ترها "من قبل. (مثل التعرف على الوجه ، والتعرف على الصوت)

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

نصائح أخرى

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

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

إنهما كيانان مختلفان بشكل أساسي ، لكن في بعض الأحيان تكون المشكلات التي يمكنهم حل التداخل.

يولد الغاز أنماط جديدة في هيكل تحدده.

تصنيف NNS (أو التعرف) الأنماط الحالية بناءً على بيانات التدريب التي تقدمها.

يؤدي الغاز بشكل جيد في البحث بكفاءة في مساحة كبيرة من الحلول ، والتقارب في أحد الحلول الجيدة أو أكثر ، ولكن ليس بالضرورة الحل "الأفضل".

يمكن لـ NNS أن تتعلم التعرف على الأنماط (عبر التدريب) ، ولكن من الصعب تحديد ما تعلموه ، أي لاستخراج المعرفة منها بمجرد تدريبها ، وإعادة استخدام المعرفة في بعضها البعض (غير NN).

أنت تقارن شيئين مختلفين تمامًا هنا.

تُستخدم الشبكات العصبية للانحدار/التصنيف - بالنظر إلى مجموعة من الأمثلة (x ، y) ، فأنت تريد تراجع y غير معروف لبعض x.

الخوارزميات الجينية هي تقنية التحسين. بالنظر إلى وظيفة f (x) ، فأنت تريد تحديد x الذي يقلل/يزيد من F (x).

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

الشبكات العصبية

قادرون على تحليل الأنماط عبر الإنترنت (تلك التي تتغير بمرور الوقت). بشكل عام ، هذه عينة متغيرة بالوقت تحتاج إلى مطابقة والتنبؤ.

أمثلة:

  • الرسم البياني استقراء
  • التعرف على الوجه

الخوارزميات الوراثية

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

أمثلة:

  • جدولة الطائرات/الشحن
  • الجداول الزمنية.
  • إيجاد أفضل الخصائص لعامل بسيط في بيئة اصطناعية
  • تقديم تقريب صورة مع مضلعات عشوائية

يمكنك استخدام الخوارزميات الوراثية كبديل لـ خوارزمية backpropagation لتحديث الأوزان في الشبكات العصبية. للحصول على مثال على ذلك ، يرجى الرجوع إلى:http://www.ai-junkie.com/ann/evolved/nnt1.html.

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

الشبكات العصبية ، من ناحية أخرى ، (عادة) تعمل على البيانات المستمرة (العوامات ، إلخ). تطبيق نموذجي لـ NNS هو تقريب الوظيفة ، حيث لديك مجموعة X من المدخلات ومجموعة Y من المخرجات ذات الصلة ، ولكن الوظيفة التحليلية F: X → Y.

بالطبع ، هناك الآلاف من المتغيرات من كليهما ، وبالتالي فإن الخط بينهما غير واضح إلى حد ما.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top