تکامل عصبی

**Neuroevolution** یا **تکامل عصبی،** یک شکل از هوش مصنوعی است که با استفاده از الگوریتم‌های تکاملی برای تولید شبکه‌های عصبی مصنوعی (ANN)، پارامترهای، توپولوژی و قوانین استفاده می‌شود. این ماده معمولاً در زندگی مصنوعی، بازی عمومی و evolutionary robotics استفاده می‌شود. مزیت اصلی این است که تکامل عصبی می‌تواند به‌طور گسترده‌تری از الگوریتم‌های یادگیری تحت نظارت، که به برنامه از جفت‌های ورودی و خروجی صحیح نیاز دارند، استفاده شود. در مقابل ، تکامل عصبی فقط به اندازه‌گیری عملکرد شبکه در یک کار نیاز دارد. به عنوان مثال، نتیجه یک بازی (یعنی اینکه یک بازیکن برنده است یا باخته‌است) به راحتی قابل اندازه‌گیری است بدون ارائه نمونه‌هایی با برچسب از استراتژی‌های مورد نظر. تکامل عصبی معمولاً به عنوان بخشی از الگوی یادگیری تقویتی مورد استفاده قرار می‌گیرد و می‌توان آن را با تکنیک‌های متداول یادگیری عمیق که از نزول شیب دار در یک شبکه عصبی با توپولوژی ثابت استفاده می‌کنند ربط داد.

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

می‌توان بین روشهایی که ساختار ANNها را به موازات پارامترهای آن (که از الگوریتم‌های تکاملی استاندارد استفاده می‌کنند) و روشهایی که آنها را جداگانه توسعه می‌دهند (از طریق memetic algorithms)، تفاوت قائل شد.

## مقایسه با نزول شیب دار
اکثر شبکه‌های عصبی به جای تکامل عصبی از نزولی شیب دار استفاده می‌کنند. با این حال، حدود سال ۲۰۱۷ محققان در Uber اظهار کردند که آنها الگوریتم‌های ساده تکامل عصبی ساختاری با الگوریتم‌های پیچیده یادگیری عمیق شیب نزول استاندارد صنعتی مدرن قابل رقابت هستند را پیدا کردند، به این دلیل که تکامل عصبی احتمال کمتری برای گیر افتادن در حداقل‌های محلی را دارد. در *[[ساینس|علوم پایه]]*، روزنامه‌نگار متیو هاتسون حدس زد که بخشی از دلیل موفقیت تکامل عصبی در جایی که قبلاً شکست خورده بود، به دلیل افزایش قدرت محاسباتی موجود در سالهای ۲۰۱۰ است.

## رمزگذاری مستقیم و غیرمستقیم
الگوریتم‌های تکاملی بر روی جمعیتی از ژنوتیپ‌ها (که به آنها ژنوم نیز گفته می‌شود) عمل می‌کنند. در تکامل عصبی، یک ژنوتیپ به یک فنوتیپ شبکه عصبی ترسیم می‌شود که برای بدست آوردن fitness آن در برخی از کارها ارزیابی می‌شود.

در طرح‌های رمزگذاری *مستقیم*، ژنوتیپ مستقیماً به فنوتیپ نگاشت می‌شود. یعنی هر نورون و ارتباط در شبکه عصبی به‌طور مستقیم و صریح در ژنوتیپ مشخص شده‌است. در مقابل، در طرح‌های رمزگذاری *غیر مستقیم*، ژنوتیپ به‌طور غیر مستقیم نحوه تولید آن شبکه را مشخص می‌کند.

رمزگذاری‌های غیر مستقیم غالباً برای دستیابی به چندین هدف استفاده می‌شوند:
* modularity and other regularities
* فشرده سازی فنوتیپ به ژنوتیپ کوچکتر، فضای جستجوی کمتری را فراهم می‌کند.
* نگاشت فضای جستجو (ژنوم) به دامنه مشکل.

### طبقه‌بندی embryogenic systems برای رمزگذاری غیر مستقیم
رمزگذاری‌های غیرمستقیم سنتی که از embryogeny مصنوعی استفاده می‌کنند (که به عنوان embryogeny نیز شناخته می‌شود) در امتداد یک *رویکرد دستوری* در مقابل یک *روش شیمی سلولی* دسته‌بندی شده‌اند. مورد اول مجموعه قوانینی را در قالب سیستم‌های بازنویسی دستوری تکامل می‌بخشد. مورد دوم تلاش می‌کند تا از طریق بیان ژن، چگونگی ظهور ساختارهای فیزیکی در زیست‌شناسی را تقلید کند. سیستم‌های رمزگذاری غیر مستقیم غالباً از جنبه‌های هر دو روش استفاده می‌کنند.

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

## مثال‌ها

## جستارهای وابسته
* یادگیری ماشین خودکار (AutoML)
* محاسبه تکاملی
* سازگاری ماتریس کوواریانس با الگوریتم شبکه تطبیقی مرتب شده با حجم فوق‌العاده (CMA-HAGA)
* NeuroEvolution از توپولوژی‌های افزوده (NEAT)
* نوژنز
* HyperNEAT (نسخه تولیدی NEAT)
* ES-HyperNEAT (نسخه عمومی NEAT که پارامترها و ساختار شبکه را تعیین می‌کند)
* اکتساب تکاملی توپولوژی‌های عصبی (EANT / EANT2)
* طیف متنوعی معماری تکامل عصبی متحد (SUNA)

## منابع

## پیوند به بیرون
* 
*   (دارای مقالات قابل دانلود دربارهٔ NEAT و برنامه‌ها)
*  پروژه تکامل عصبی متن باز بالغ اجرا شده در C # /. Net.
* ANNEvolve یک پروژه تحقیقاتی AI با منبع باز است (کد منبع قابل بارگیری در C و Python همراه با آموزش و نوشتارها و تصاویر مختلف)
*   صفحه وب در مورد یادگیری تکاملی با EANT / EANT2] (اطلاعات و مقالات در مورد EANT / EANT2 با برنامه‌هایی برای یادگیری ربات)
* جعبه ابزار NERD. جعبه ابزار Neurodynamics and Evolutionary Robots. یک مجموعه نرم‌افزار منبع باز رایگان و رایگان برای آزمایش‌های مختلف در زمینه کنترل عصبی و تکامل عصبی. شامل یک شبیه‌ساز قابل نوشتن، چندین الگوریتم تکامل عصبی (به عنوان مثال) ICONE)، پشتیبانی خوشه، طراحی و تجزیه و تحلیل شبکه بصری.
*  کد منبع برای سیستم عصبی تکاملی DXNN.
* 
رده:شبکه‌های عصبی مصنوعی
رده:الگوریتم‌های فرگشتی