Перейти к основному содержимому

Ковариационная адаптация (CMA-ES)

КлассВоспроизводимостьСтартовая точкаСвёртка по полосе
глобальныйпри seed ≠ 0используется (начальное среднее)любая

Ниже приведено окно настроек метода:

Назначение

Устойчивый глобальный поиск на изрезанном ландшафте. Метод адаптирует ковариационную матрицу распределения проб, «подстраивая» форму и масштаб шага под локальную геометрию целевой функции. Работает поколениями: за один шаг рассчитывается батч из λ проб (размер поколения), по которому обновляются среднее и ковариация. Наиболее эффективен на 10–40 непрерывных переменных.

Стартовая точка (текущая геометрия) используется как начальное среднее распределения.

Воспроизводимость управляется зерном: при зерне ГСЧ ≠ 0 повторный запуск с теми же настройками даёт идентичную траекторию; при зерне ГСЧ = 0 зерно берётся по времени, и каждый запуск получается новым.

Алгоритм

Поиск пробами из многомерного нормального распределения. На поколении g генерируется λ проб

xi=mg+σgN(0,Cg),i=1λx_i = m_g + \sigma_g N(0, C_g), \qquad i = 1 \ldots \lambda

где m_g — среднее (текущая оценка положения оптимума), σ_g — общий масштаб шага, C_g — ковариационная матрица, задающая форму и ориентацию облака проб. Начальное m_0 — стартовая точка (текущая геометрия), σ_0 — поле Начальный шаг.

Пробы упорядочиваются по F, и μ = λ/2 лучших дают новое среднее взвешенной суммой m_{g+1} = Σ w_i x_i. По той же выборке обновляется C: слагаемое ранга μ подстраивает форму облака под геометрию отобранных проб, слагаемое ранга 1 вытягивает её вдоль пути эволюции — накопленной суммы последних сдвигов среднего. Масштаб σ управляется отдельно, по длине сопряжённого пути: если сдвиги среднего идут в одну сторону, шаг увеличивается, если гасят друг друга — уменьшается.

Практический смысл адаптации C: метод сам выучивает масштабы переменных и корреляции между ними, поэтому плохая обусловленность задачи (один размер влияет на F в сотни раз сильнее другого) перестаёт замедлять поиск. Цена — расчёт и память порядка , отсюда рекомендуемый диапазон n ≈ 10–40.

Когда поколение стягивается, включается рестарт с удвоением λ (стратегия IPOP): распределение проб снова разбрасывается, что даёт следующую попытку выйти из локального минимума в пределах остатка бюджета.

Параметры

ПараметрПоле в интерфейсеПо умолчаниюДиапазонНа что влияет
Бюджет расчётовБюджет расчетов (0 = авто)0 = авто: max(50, 20·n)0–1000000жёсткий предел числа расчётов модели, суммарный по всем рестартам
Начальный шаг (доля диапазона)Начальный шаг (доля диапазона)0,300,01–1,00начальное СКО поиска в нормированных координатах. Больше — шире стартовая разведка, меньше — надёжнее при хорошем старте
Размер поколенияРазмер поколения (0 = авто)0 = авто: 4 + floor(3·ln n)0–100000λ — число оценок за поколение. Больше — устойчивее к локальным минимумам, но дороже поколение
Зерно ГСЧЗерно ГСЧ10 — по временификсированное значение делает прогон воспроизводимым; 0 — каждый запуск даёт новую траекторию
Рестарты (IPOP)Рестарты (IPOP)вклвкл/выклпри сходимости поколения — рестарт с удвоением λ в пределах остатка бюджета (стратегия IPOP)

Что видно в мониторе

Рестарты и поколения метода видны в мониторе оптимизации:

  • на графике сходимости каждый IPOP-рестарт отмечен вертикальной линией с подписью «рестарт N»;
  • флажок «Популяция» показывает разброс поколения — полосу от лучшего до худшего значения F и линию среднего. По сужению полосы видно, как поколение сходится, а по удвоению ширины блоков после границы рестарта — как выросла λ;
  • в таблице шагов первый шаг рестарта помечен токеном «рестарт N», а во всплывающей подсказке любой строки стоят номера рестарта и поколения;
  • в итогах прогона печатается строка «Рестартов поиска: N» — её нет, если рестартов не было.

Поколение продолжает нумерацию через рестарт, а не начинается заново: это позиция в прогоне, а не в текущем запуске. Бюджет расчётов тоже суммарный по всем рестартам, поэтому рестарт происходит только если в остатке бюджета помещается следующая, удвоенная λ; иначе прогон завершается со статусом «достигнут допуск по параметрам».

Рекомендации

  • Хороший выбор для изрезанного ландшафта средней размерности (n≈10–40), где локальные методы застревают.
  • При малом бюджете расчётов предпочтите Адаптивный глобальный (MaxLIPO).
  • Найденную точку имеет смысл дожать локальным методом — Доверительная область (BOBYQA).
  • Для полной воспроизводимости прогона задайте зерно ГСЧ ≠ 0; серия запусков с зерно ГСЧ = 0 показывает разброс и мультимодальность задачи.
  • Плохо работает с дискретными осями (переменные «с шагом» / «список») — для них предпочтите глобальный метод (DIRECT-L, CRS2, конвейер).