Нейроэволюция — это подход, при котором используются эволюционные алгоритмы для оптимизации нейронных сетей с точки зрения их топологии и весов.
Формально популяция P_t сетей в поколении t преобразуется с помощью операторов отбора S, операторов мутации M и рекомбинации R:
P_{t+1} = R(M(S(P_t)))
Каждый индивид i ∈ P_t оценивается с помощью функции приспособленности f(i), которая измеряет эффективность сети в целевой задаче.
Нейроэволюция включает методы, такие как NEAT, который инкрементально расширяет топологии сетей и одновременно оптимизирует веса, а также CPPN (Compositional Pattern Producing Networks) для разработки сложных структур.
Эти методы позволяют адаптивно формировать как архитектуру, так и параметры нейронных сетей, что особенно полезно при задачах с недифференцируемыми целевыми функциями или динамическими средами.
Определение:
«Нейроэволюция — это применение эволюционных алгоритмов для одновременной оптимизации структуры и параметров нейронных сетей на основе оценки их производительности.»
Источник:
Stanley, K. O., & Miikkulainen, R. (2002). Evolving Neural Networks through Augmenting Topologies. Evolutionary Computation, 10(2), 99-127.