Нейроеволю́ція — форма машинного навчання, яка використовує еволюційні алгоритми для тренування нейронних мереж. Цей підхід використовується наприклад в таких галузях як ігри і керування приводами роботів. У цих випадках досить просто вимірювати продуктивність нейромережі, у той час, як реалізувати кероване навчання дуже важко або практично неможливо. Цей метод навчання відноситься до категорії методів навчання з підкріпленням.
Існує велика кількість нейроеволюціонних алгоритмів, які діляться на дві групи. До першої відносяться алгоритми, які моделюють еволюцію ваг зв'язків між елементами нейромережі при заданій топології, до іншої — алгоритми, які крім еволюції ваг також моделюють еволюцію топології мережі.[1] Хоча і не існує загальноприйнятих термінів, прийнято додавання або видалення зв'язків в мережі в ході еволюції називається ускладненням або спрощенням відповідно. Мережі, в яких здійснюється еволюція як зв'язків, так і топології, називаються TWEANNs (англ. Topology & Weight Evolving Artificial Neural Networks).
Еволюційні алгоритми маніпулюють безліччю генотипів. У нейроеволюціі генотип — це певне представляння нейромережі (фенотип). У схемі з прямим кодуванням генотип еквівалентний фенотипу, нейрони і зв'язки безпосередньо вказані в генотипі. Навпаки, у схемі з непрямим кодуванням в генотипі вказані правила і структури для створення нейромережі[2].
Непряме кодування застосовується для досягнення наступних цілей[2][3][4][5]: