Стратегия естественной эволюции - Natural evolution strategy

Стратегии естественной эволюции ( NES ) - это семейство алгоритмов численной оптимизации для задач черного ящика . Сходные по духу со стратегиями эволюции , они итеративно обновляют (непрерывные) параметры поискового распределения , следуя естественному градиенту в сторону более высокой ожидаемой пригодности.

Метод

Общая процедура заключается в следующем: параметризованное распределение поиска используется для создания пакета точек поиска, и функция пригодности оценивается в каждой такой точке. Параметры распределения (включая параметры стратегии ) позволяют алгоритму адаптивно фиксировать (локальную) структуру функции приспособленности. Например, в случае гауссова распределения оно включает среднее значение и ковариационную матрицу . По выборкам NES оценивает градиент поиска по параметрам в сторону более высокой ожидаемой пригодности. Затем NES выполняет шаг подъема градиента по естественному градиенту , метод второго порядка, который, в отличие от простого градиента, перенормирует обновление относительно неопределенности. Этот шаг имеет решающее значение, поскольку он предотвращает колебания, преждевременное схождение и нежелательные эффекты, возникающие из-за заданной параметризации. Весь процесс повторяется до тех пор, пока не будет выполнен критерий остановки.

Все члены семейства NES работают по одним и тем же принципам. Они различаются типом распределения вероятностей и используемым методом градиентной аппроксимации . Для разных пространств поиска требуются разные распределения поиска; например, при низкой размерности может быть очень полезно моделировать полную матрицу ковариации. С другой стороны, для больших измерений более масштабируемой альтернативой является ограничение ковариации только диагональю . Кроме того, многомодальные пространства поиска могут выиграть от распределений с более тяжелыми хвостами (таких как Коши , в отличие от гауссовых). Последнее различие возникает между распределениями, в которых мы можем аналитически вычислить естественный градиент, и более общими распределениями, где нам нужно оценить его по выборкам.

Поиск градиентов

Обозначим через параметры поискового распределения и функцию пригодности, вычисленную в . Затем NES преследует цель максимизировать ожидаемую пригодность при поисковом распределении.

через градиентный подъем . Градиент можно переписать как

то есть, ожидаемое значение из времен лог-производные в . На практике можно использовать приближение Монте-Карло на основе конечного числа выборок.

.

Наконец, параметры поискового распределения могут обновляться итеративно.

Естественный градиентный подъем

Вместо использования простого стохастического градиента для обновлений NES следует естественному градиенту , который, как было показано, обладает многочисленными преимуществами по сравнению с обычным ( ванильным ) градиентом, например:

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

Поэтому обновление NES

,

где - информационная матрица Фишера . Матрицу Фишера иногда можно вычислить точно, в противном случае она оценивается по выборкам с повторным использованием логарифмических производных .

Фитнес-шейпинг

NES использует формирование пригодности на основе рангов , чтобы сделать алгоритм более надежным и инвариантным по отношению к монотонно возрастающим преобразованиям функции приспособленности. Для этого приспособленность населения преобразуется в набор ценностей полезности . Пусть обозначает i- го лучшего человека. Заменяя приспособленность полезностью, оценка градиента становится

.

Выбор функции полезности - свободный параметр алгоритма.

Псевдокод

input: 

1  repeat
   
2     for   do                                              // λ is the population size
       
3         draw sample 
       
4         evaluate fitness 
       
5         calculate log-derivatives 
       
6     end
   
7     assign the utilities                                           // based on rank
   
8     estimate the gradient 
   
9     estimate            // or compute it exactly 
   
10    update parameters                         // η is the learning rate

11 until stopping criterion is met

Смотрите также

Библиография

внешние ссылки