هوش مصنوعی با پایتون – الگوریتم های ژنتیک

4 سال پیش
امتیاز دهید post

هوش مصنوعی با پایتون – الگوریتم های ژنتیک

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، الگوریتم های ژنتیک هوش مصنوعی (Genetic Algorithms) به طور مفصل مورد بحث قرار می گیرد.

الگوریتم های ژنتیک چیست؟

الگوریتم های ژنتیک (GA) الگوریتم های جستجوگر مبتنی بر مفاهیم انتخاب طبیعی و ژنتیک هستند. GA زیرمجموعه ای از شاخه محاسبات بسیار بزرگتر است که به عنوان محاسبات تکاملی شناخته می شود.

GA توسط جان هالند و دانشجویان و همکارانش در دانشگاه میشیگان، به ویژه دیوید گلدبرگ، توسعه داده شد. از آن زمان تاکنون روی موفقیت های مختلف در زمینه مشکلات مختلف بهینه سازی آزمایش شده است.

پیشنهاد ویژه : پکیج آموزش پروژه محور پایتون

در GA، ما مجموعه ای از راه حل های ممکن برای مشکل ارائه شده داریم. سپس این راه حل ها تحت ترکیب مجدد و جهش قرار می گیرند (مانند ژنتیک طبیعی)، بچه های جدیدی تولید می کنند و این روند برای نسل های مختلف تکرار می شود. به هر فرد (یا راه حل کاندیدا) مقدار تناسب اندام اختصاص داده می شود (بر اساس مقدار عملکرد هدف آن) و به افراد برازنده شانس بیشتری برای جفت گیری و تولید افراد مناسبتر می رسد. این مطابق با تئوری بقای داروین است.

بنابراین، افراد و یا راه حل های بهتر در طی نسل ها ادامه می یابد، تا زمانی که به یک معیار توقف برسد.

الگوریتم های ژنتیک ماهیت کاملاً تصادفی دارند، اما عملکرد آنها بسیار بهتر از جستجوی محلی تصادفی است (جایی که ما فقط راه حل های تصادفی را امتحان می کنیم و بهترین ها را ردیابی می کنیم)، زیرا از اطلاعات تاریخی نیز بهره برداری می کنند.

چگونه می توان از GA برای مشکلات بهینه سازی استفاده کرد؟

بهینه سازی عملی است که باعث می شود طراحی، وضعیت، منابع و سیستم تا حد ممکن موثر باشد. نمودار بلوکی زیر روند بهینه سازی را نشان می دهد –

Optimization Problems

مراحل مکانیسم GA برای فرآیند بهینه سازی

موارد زیر دنباله ای از مراحل مکانیسم GA است که برای بهینه سازی مشکلات استفاده می شود.

  • مرحله 1 – جمعیت اولیه را به طور تصادفی ایجاد کنید.
  • مرحله 2 – راه حل اولیه را با بهترین مقادیر تناسب اندام انتخاب کنید.
  • مرحله 3 – راه حلهای انتخاب شده را با استفاده از عملگرهای جهش و کراس اوور ترکیب کنید.
  • مرحله 4 – فرزندان را در جمعیت وارد کنید.
  • مرحله 5 – اکنون ، اگر شرط توقف برآورده شود ، محلول را با بهترین مقدار تناسب اندام خود برگردانید. در غیر اینصورت به مرحله 2 بروید.

نصب پکیج های ضروری

برای حل مسئله با استفاده از الگوریتم های ژنتیک در پایتون، ما قصد داریم از یک بسته قدرتمند برای GA به نام DEAP استفاده کنیم. این کتابخانه ای از چارچوب محاسبات تکاملی جدید برای نمونه سازی سریع و آزمایش ایده ها است. ما می توانیم این پکیج را با کمک دستور زیر در خط فرمان نصب کنیم –

 

اگر از محیط anaconda استفاده می کنید، برای نصب deap می توان از دستور زیر استفاده کرد –

پیاده سازی راه حل ها با استفاده از الگوریتم های ژنتیک

این بخش نحوه اجرای راه حل ها را با استفاده از الگوریتم های ژنتیک توضیح می دهد.

ایجاد الگوهای بیت

مثال زیر به شما نشان می دهد که چگونه بر اساس مشکل One Max یک رشته بیتی که شامل 15 رشته باشد را ایجاد کنید.

پکیج های لازم را همانطور که نشان داده شده وارد کنید –

 

تابع ارزیابی را تعریف کنید. این اولین قدم برای ایجاد یک الگوریتم ژنتیک است.

 

اکنون جعبه ابزار را با پارامترهای مناسب ایجاد کنید –

 

جعبه ابزار را اولیه کنید

ثبت اپراتور ارزیابی –

اکنون، اپراتور کراس اوور را ثبت کنید –

ثبت یک اپراتور جهش –

اپراتور را برای پرورش مشخص کنید –

کل جمعیت را ارزیابی کنید –

ایجاد و تکرار در طول نسل –

انتخاب افراد نسل بعدی –

اکنون، افراد انتخاب شده را شبیه سازی کنید –

کراس اوور و جهش را بر روی فرزندان اعمال کنید –

ارزش تناسب اندام کودک را حذف کنید

اکنون، جهش را اعمال کنید –

افراد دارای تناسب اندام نامعتبر را ارزیابی کنید –

اکنون، جمعیت را با نسل بعدی جایگزین کنید –

 

چاپ آمار برای نسل های فعلی –

خروجی نهایی را چاپ کنید –

 

مشکل رگرسیون نمادین

این یکی از بهترین مشکلات شناخته شده در برنامه نویسی ژنتیکی است. تمام مشکلات رگرسیون نمادین از توزیع دلخواه داده استفاده می کنند و سعی می کنند دقیق ترین داده ها را با یک فرمول نمادین متناسب کنند. معمولاً برای اندازه گیری تناسب اندام فردی از معیارهایی مانند (RMSE (Root Mean Square Error  استفاده می شود. این یک مسئله رگرسیون کلاسیک است و در اینجا ما از معادله 5×3-6×2 + 8x = 1 استفاده می کنیم. ما باید تمام مراحل را مانند مثال بالا دنبال کنیم ، اما قسمت اصلی ایجاد مجموعه های ابتدایی است زیرا آنها عناصر سازنده افراد هستند تا ارزیابی شروع شود. در اینجا ما از مجموعه کلاسیک بدوی استفاده خواهیم کرد.

توجه داشته باشید که تمام مراحل اساسی همان مراحل استفاده شده هنگام تولید الگوهای بیت است. این برنامه پس از 10 تعداد نسل، خروجی را به صورت min ، max ، std (انحراف معیار) به ما می دهد.

منبع.

لیست جلسات قبل آموزش هوش مصنوعی با برنامه نویسی پایتون

  1. آموزش هوش مصنوعی با برنامه نویسی پایتون – مفهوم کلی
  2. شروع آموزش هوش مصنوعی با برنامه نویسی پایتون
  3. یادگیری ماشین در هوش مصنوعی با برنامه نویسی پایتون
  4. هوش مصنوعی با برنامه نویسی پایتون، آماده ‌سازی داده ها
  5. هوش مصنوعی با پایتون، یادگیری نظارت شده و طبقه بندی
  6. هوش مصنوعی با برنامه نویسی پایتون – یادگیری تحت نظارت: رگرسیون
  7. هوش مصنوعی با برنامه نویسی پایتون – برنامه نویسی منطقی
  8. هوش مصنوعی با پایتون – یادگیری بدون نظارت: خوشه بندی
  9. هوش مصنوعی با پایتون – پردازش زبان طبیعی
  10. هوش مصنوعی با پایتون – پکیج NLTK
  11. هوش مصنوعی با پایتون – تجزیه و تحلیل داده های سری زمانی
  12. هوش مصنوعی با پایتون – تشخیص گفتار
  13. هوش مصنوعی با پایتون – جستجوی کاشف
  14. هوش مصنوعی با پایتون – بازی
  15. هوش مصنوعی با پایتون – شبکه های عصبی
  16. هوش مصنوعی با پایتون – یادگیری Reinforcement

 

امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه