تکامل عصبی توپولوژی‌های تقویت‌کننده

**تکامل عصبی توپولوژی‌های افزایشی (NEAT)** یک الگوریتم ژنتیک (GA) برای تولید شبکه‌های عصبی مصنوعی در حال تکامل (یک تکنیک تکامل عصبی) است که توسط کنت استنلی و ریستو میکولاینن در سال ۲۰۰۲ در دانشگاه تگزاس در آستین توسعه یافته است. این تکنیک پارامترهای وزنی و ساختارهای شبکه‌ها را تغییر می‌دهد و سعی می‌کند تعادلی بین تناسب راه‌حل‌های تکامل‌یافته و تنوع آن‌ها پیدا کند. این روش بر اساس استفاده از سه تکنیک کلیدی است: ردیابی ژن‌ها با نشانگرهای تاریخی برای اجازه دادن به تلاقی بین توپولوژی‌ها، اعمال گونه‌زایی (تکامل گونه‌ها) برای حفظ نوآوری‌ها، و توسعه تدریجی توپولوژی‌ها از ساختارهای اولیه ساده ("پیچیده‌سازی").

## عملکرد
در وظایف کنترلی ساده، الگوریتم NEAT معمولاً سریع‌تر از سایر تکنیک‌های تکامل عصبی معاصر و روش‌های یادگیری تقویتی به شبکه‌های مؤثر دست می‌یابد.

## الگوریتم
به طور سنتی، توپولوژی یک شبکه عصبی توسط یک آزمایش‌کننده انسانی انتخاب می‌شود و مقادیر وزنی مؤثر از طریق یک فرایند آموزشی یاد گرفته می‌شوند. این وضعیت ممکن است به یک فرایند آزمون و خطا نیاز داشته باشد تا یک توپولوژی مناسب تعیین شود. NEAT نمونه‌ای از یک شبکه عصبی مصنوعی تکاملی با توپولوژی و وزن متغیر (TWEANN) است که تلاش می‌کند به طور همزمان مقادیر وزن و یک توپولوژی مناسب برای یک شبکه عصبی را یاد بگیرد.

برای رمزگذاری شبکه به یک فنوتیپ برای الگوریتم ژنتیک (GA)، NEAT از یک طرح رمزگذاری مستقیم استفاده می‌کند که به این معنی است که هر اتصال و نورون به طور صریح نمایانده می‌شود. این در تضاد با طرح‌های رمزگذاری غیرمستقیم است که قوانینی را تعریف می‌کنند که اجازه می‌دهد شبکه بدون نمایاندن صریح هر اتصال و نورون ساخته شود و نمایندگی فشرده‌تری را فراهم کند.

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

**کنوانسیون های متضاد**

مسئله کنوانسیون‌های متضاد زمانی بروز می‌کند که بیش از یک راه برای نمایاندن اطلاعات در یک فنوتیپ وجود داشته باشد. به عنوان مثال، اگر یک ژنوم شامل نورون‌های A، B و C باشد و به صورت [A B C] نمایانده شود، اگر این ژنوم با یک ژنوم مشابه (از نظر عملکرد) اما به ترتیب [C B A] متقاطع شود، فرایند تلاقی فرزندان را تولید می‌کند که اطلاعاتی را از دست داده‌اند ([A B A] یا [C B C])، در واقع ۱/۳ از اطلاعات در این مثال گم شده است. NEAT این مشکل را با ردیابی تاریخچه ژن‌ها از طریق استفاده از یک شماره نوآوری جهانی که با اضافه شدن ژن‌های جدید افزایش می‌یابد، حل می‌کند. هنگام افزودن یک ژن جدید، شماره نوآوری جهانی افزایش می‌یابد و به آن ژن اختصاص داده می‌شود. بنابراین هر چه شماره بالاتر باشد، ژن اخیراً اضافه شده است. برای یک نسل خاص، اگر یک جهش مشابه در بیش از یک ژنوم رخ دهد، هر دو شماره یکسانی دریافت می‌کنند؛ اما شماره جهش به طور نامحدود تغییر نخواهد کرد.

این شماره‌های نوآوری به NEAT اجازه می‌دهند که ژن‌هایی را که می‌توانند با یکدیگر تلاقی کنند، مطابقت دهد.

## گسترش‌ها
**rtNEAT**

در سال 2003، کنت استنلی یک گسترش برای NEAT طراحی کرد که اجازه می‌دهد تکامل در زمان واقعی اتفاق بیفتد، به جای تکرار نسل‌ها که در بیشتر الگوریتم‌های ژنتیکی استفاده می‌شود. ایده اصلی این است که جمعیت تحت ارزیابی مداوم قرار گیرد با یک تایمر "عمر" بر روی هر فرد در جمعیت. وقتی تایمر یک شبکه منقضی می‌شود، معیار تناسب فعلی آن بررسی می‌شود تا ببیند آیا در نزدیکی پایین جمعیت قرار دارد یا خیر، و اگر چنین باشد، آن رد می‌شود و با یک شبکه جدید که از دو والد با تناسب بالا پرورش یافته است، جایگزین می‌شود. برای شبکه جدید یک تایمر تنظیم می‌شود و آن در جمعیت قرار می‌گیرد تا در ارزیابی‌های جاری شرکت کند.

اولین کاربرد rtNEAT یک بازی ویدیویی به نام Neuro-Evolving Robotic Operatives یا NERO است. در مرحله اول بازی، بازیکنان فردی ربات‌ها را در یک "محیط آزمایش" مستقر می‌کنند و آن‌ها را برای یک دکترین تاکتیکی مطلوب آموزش می‌دهند. پس از آموزش مجموعه‌ای از ربات‌ها، مرحله دوم بازی به بازیکنان اجازه می‌دهد تا ربات‌های خود را در نبردی علیه ربات‌های آموزش‌دیده توسط بازیکن دیگر قرار دهند تا ببینند چگونه رژیم‌های آموزشی آن‌ها ربات‌هایشان را برای نبرد آماده کرده است.

**هرس مرحله‌ای**

یک گسترش از NEAT کنت استنلی که توسط کالین گرین توسعه یافته است، هرس دوره‌ای توپولوژی‌های شبکه‌های راه‌حل‌های کاندید را در طول فرایند تکامل اضافه می‌کند. این افزودنی به نگرانی که رشد خودکار نامحدود ساختارهای غیرضروری تولید می‌کند، پاسخ می‌دهد.

**HyperNEAT**

مقاله اصلی: HyperNEAT  

HyperNEAT برای تکامل ساختارهای بزرگ مقیاس تخصصی شده است. این در ابتدا بر اساس نظریه CPPN بوده و یک زمینه فعال تحقیقاتی است.

**cgNEAT**

Content-Generating NEAT (cgNEAT) محتویات سفارشی بازی‌های ویدیویی را بر اساس ترجیحات کاربر تکامل می‌دهد. اولین بازی ویدیویی که cgNEAT را پیاده‌سازی کرده، Galactic Arms Race است، یک بازی تیراندازی فضایی که در آن سلاح‌های سیستم ذره‌ای منحصر به فرد بر اساس آمار استفاده بازیکنان تکامل می‌یابند. هر سلاح سیستم ذره‌ای در بازی توسط یک CPPN تکامل‌یافته کنترل می‌شود، مشابه تکنیک تکامل در برنامه هنری تعاملی NEAT Particles.

**odNEAT**

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

## همچنین ببینید
تکامل کسب توپولوژی‌های عصبی (Evolutionary acquisition of neural topologies)

## منابع
- کنت O. استنلی و ریستو میکولاینن (2002). "تکامل شبکه‌های عصبی از طریق افزایش توپولوژی‌ها". محاسبات تکاملی 10 (2): 99-127

- متیو E. تیلور، شیمون وایتسون و پیتر استون (2006). "مقایسه روش‌های تکاملی و تفاوت زمانی در یک دامنه یادگیری تقویتی". GECCO 2006: مجموعه مقالات کنفرانس محاسبات ژنتیکی و تکاملی.

- ارین J. هسینگس، راتان K. گوها و کنت O. استنلی (2009). "تولید محتوای خودکار در بازی ویدیویی Galactic Arms Race". نشریه IEEE در مورد هوش محاسباتی و هوش مصنوعی در بازی‌ها، جلد 4، شماره 1، صفحات 245-263، نیویورک: انتشارات IEEE، 2009.

- سیلوا، فرناندو؛ اوربانو، پائولو؛ کورهیا، لوئیز؛ کریستنسن، آندرس لینه (2015-09-15). "odNEAT: یک الگوریتم برای تکامل آنلاین غیرمتمرکز کنترل‌کننده‌های رباتیک". محاسبات تکاملی. 23 (3): 421–449. doi:10.1162/evco_a_00141. hdl:10071/10504. . S2CID 20815070.

رده:شبکه‌های عصبی مصنوعی
رده:الگوریتم‌های فرگشتی
رده:محاسبات فرگشتی
رده:الگوریتم‌های ژنتیک