Нейроэволюция

Из Википедии, бесплатной энциклопедии

Нейроэволюция — форма машинного обучения, которая использует эволюционные алгоритмы для тренировки нейросети. Этот подход используется в таких отраслях как игры и управление приводами роботов. В этих случаях достаточно просто измерить производительность нейросети, в то время как реализовать обучение с учителем очень тяжело или практически невозможно. Этот метод обучения относится к категории методов обучения с подкреплением.

Возможности[править | править код]

Существует большое количество нейроэволюционных алгоритмов, которые делятся на две группы. К первой относятся алгоритмы, которые производят эволюцию весов при заданной топологии сети, к другой — алгоритмы, которые помимо эволюции весов также производят эволюцию топологии сети. Хотя и не существует общепринятых условий для проведения различий, принято, что добавление либо удаление связей в сети в ходе эволюции называется усложнение либо упрощение соответственно. Сети, в которых производится эволюция как связей, так и топологии, называются TWEANNs (Topology & Weight Evolving Artificial Neural Networks).

Прямое и непрямое кодирование нейросетей[править | править код]

Эволюционные алгоритмы манипулируют множеством генотипов. В нейроэволюции генотип — это представление нейросети. В схеме с прямым кодированием генотип эквивалентен фенотипу, нейроны и связи непосредственно указаны в генотипе. Напротив, в схеме с непрямым кодированием в генотипе указаны правила и структуры для создания нейросети.

Непрямое кодирование применяется для достижения следующих целей:

  • возможность формирования и использования рекурсивных структур и паттернов
  • преобразование фенотипа в генотип меньшего размера, уменьшение пространства поиска
  • отображение пространства поиска на модель проблемной области знаний

См. также[править | править код]