Реализация и использование эволюционных алгоритмов для

реклама
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Реализация и использование эволюционных алгоритмов
для минимизации функций в ROOT
Михаил Жабицкий
Объединенный институт ядерных исследований, Дубна
MPAMCS 2014, 25 августа, 2014, Дубна
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Содержание
1
Минимизация функции вещественных переменных
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
2
Программная реализация алгоритма
Параллельные расчеты
Интеграция с ROOT
Примеры решаемых задач
3
Результаты
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
Поиск глобального минимума
Поиск вектора x ∗ = {xj }|j=0,...D−1 , минимизирующего целевую функцию
f (x):
f (x ∗ ) 6 f (x),
где Ω = R
D
∀x ∈ Ω,
— область поиска.
«Отягчающие» особенности некоторых задач:
Ограничения на параметры ϕ(x) < 0
Многопараметрические задачи D = 10 . . . 100
Многомодальные целевые функции
Производные целевой функции недоступны
Целевые функции, требующие значительных вычислений
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
Дифференциальная эволюция
Эволюционный алгоритм (ЭА) — алгоритм, реализующий
процессы, аналогичные отбору, мутации и скрещиванию в биологии
Дифференциальная эволюция (ДЭ) — эволюционный алгоритм со
специфическим оператором мутации
Разработан Р. Шторном и К.В. Прайсом в 1995
[K. Price, R. Storn// J. Global of Optimization 11 (1997) 341]
Оперирует популяцией векторов размером Np
Каждый член популяции — вектор в пространстве параметров
Ω = RD
[K. Price, R. Storn, J.A. Lampinen "Differential evolution — A Practical Approach to
Global Optimization”, Springer, 2005]
[S. Das, P.N. Suganthan// IEEE Trans. Evol. Comp. 15 (2011) 4]
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
Асинхронная Дифференциальная эволюция
// инициализация популяции {xi }|i =0,...Np −1 , xi = {xi ,j }|j=0,...D−1
do {
i = choose_target_vector (); // выбор целевого вектора i
// Мутация:
vi = xr + F (xp − xq ); // мут. вектор, r 6= p 6= q — сл. индексы
// Кроссовер (рекомбинация):
for (j = 0; j < D; j = j + 1)
ui ,j =
vi ,j
xi ,j
rand(0, 1) < Cr or j = jrand
// пробный вектор
иначе
// Отбор:
if (f (ui ) < f (xi ))
xi = ui ;
} while (пока не выполнен критерий остановки);
[E. Zhabitskaya, M. Zhabitsky// LNCS 7125, 328, 2012]
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
Асинхронная ДЭ: классификация алгоритмов
мутация:
vi = xr + F (xp − xq )
xi — целевой вектор;
xr — базовый вектор
(xp − xq ) — дифференциальный вектор
DE/w/x/y/z в соответствии с операторами Мутации и Кроссовера:
w отвечает заменяемому целевому вектору;
x отвечает базовому вектору;
y — число дифференциальных векторов;
z — тип кроссовера (биномиальный или экспоненциальный).
rand/rand/1/bin
rand/best/1/bin
worst/best/bin
vrand = xrand + F (xp − xq )
vrand = xbest + F (xp − xq )
vworst = xbest + F (xp − xq )
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
Равномерное (биномиальное) скрещивание с фиксированным Cr
Покоординатная комбинация мутантного вектора v с целевым
вектором x для создания пробного вектора u:
ui ,j =
vi ,j
xi ,j
rand(0, 1) < Cr или j = jrand
в противном случае.
Результат итераций Дифференциальной эволюции критически зависит
от вероятности скрещивания Cr :
Cr = 0 для разделяемых задач
Cr = 1 для неразделяемых задач (инвариантность отн. вращений)
Cr = 0.9 — типичный начальный выбор
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
АДЭ с адаптивной корреляционной матрицей
[E. Zhabitskaya, M. Zhabitsky, GECCO-2013, 455]
Популяция ДЭ адаптируется с рельефу минимизируемой функции:
[K. Price, R. Storn, J.A. Lampinen, Springer, 2005]
Популяцию можно рассматривать как выборку для определения
парных корреляций между параметрами:
qjk =
1
Np −1
Np −1
P
(xij − x̄j )(xik − x̄k ),
i =0
sjk =
√
qjk
qjj qkk
,
Адаптивная корреляционная матрица:
C ′ = (1 − c)C + cS.
[A. Auger, N. Hansen, CMA-ES, IEEE CEC (2005) 1769]
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
АДЭ с адаптивной корреляционной матрицей (II)
Пример: композитная функция
f = fRosenbrock (x0 , x1 ) + fRosenbrock (x2 , x3 )

C00
0.910
C =
0.027
0.038
0.910
C11
0.016
0.015
0.027
0.016
C22
0.945
[E. Zhabitskaya, M. Zhabitsky, GECCO-2013, 455]
М. Жабицкий

0.038
0.015
0.945
C33
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
АДЭ с адаптивной корреляционной матрицей (III)
Выбор координаты m и порога cthr :
m = [Np rand(0, 1)],
cthr = rand(0, 1);
{Im } = ∀j : |cmj | > cthr .

C00
0.910
C =
0.027
0.038
ui ,j =
vi ,j
xi ,j
0.910
C11
0.016
0.015
0.027
0.016
C22
0.945

0.038
0.015
0.945
C33
если j ∈ {Im }
Скрещивание в выделенном
⇒
подпространстве
в противном случае.
[E. Zhabitskaya, M. Zhabitsky, GECCO-2013, 455]
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
Адаптация размера популяции Np
Вероятность сходимости
Скорость сходимости
Алгоритм АДЭ с рестартом
малый Np
−
+
большой Np
+
−
[Zh & Zh// LNCS 8236 (2013) 555]:
Малый размер начальной популяции Np
Рестарт с увеличенным Np ← kNp , если диагностирована стагнация
сходимости (длительное отсутствие прогресса или вырождение
популяции)
Адаптация размера популяции в соответствии со сложностью решаемой
проблемы!
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
Частично разделяемые задачи
Смещенная функция Розенброка
f6 (x) =
D−1
X
2
+ (zj − 1)2 + fbias ,
100 zj2 − zj+1
j=1
z = x − o + 1,
x ∈ [−100, 100]D
Критерии оценки
Вероятность сходимости
Psucc =
Nsucc
Ntrials = 25
Кол-во вызовов f (усредненное по сошедшимся попыткам)
1 X
(Nfeval )i
hNfeval i =
Nsucc
i
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Поиск глобального минимума
Асинхронная дифференциальная эволюция
АДЭ с адаптивной корреляционной матрицей
Частично разделяемые задачи
D = 20 :
f (x) = fRos (x0 , x1 ) + fRos (x2 , . . . , x4 )+
fRos (x5 , . . . , x8 ) + fRos (x9 , . . . , x13 ) + fRos (x14 , . . . , x19 )
DE/rand/rand/1 стратегия:
bin
bin
bin
acm
Cr
0
0.9
JADE
—
Psucc
0
1
0.44
1
mean
—
4.93e+05
1.19e+07
6.82e+04
М. Жабицкий
median
—
4.14e+05
—
6.57e+04
ЭА в ROOT
std.dev
—
1.95e+05
1.11e+06
1.74e+04
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Параллельные расчеты
Интеграция с ROOT
Примеры решаемых задач
Параллельные расчеты на распределенных вычислительных
системах (АДЭ)
Узел 0
Узел 1
xi
✛
✛ xi
✲
f (xi )
Мастер
оптимизации
(MPI)
...
xj
f (xj )
✛
Узел Nproc
АДЭ
✲
✲
f (xj )
Master/Slave модель
Полная и эффективная! загрузка вычислительных узлов
Мастер оптимизации в стандарте MPI (MPICH2)
[Е. Жабицкая, М. Жабицкий, Мат. моделирование 24 (2012) 33]
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Параллельные расчеты
Интеграция с ROOT
Примеры решаемых задач
Интеграция с ROOT
ROOT (http://root.cern.ch) — основной пакет анализа
экспериментальных данных в физике частиц
MINUIT — программа минимизации функций вещественных
переменных
[F. James, CERN, 1972]
Migrad — реализация квазиньютоновского алгоритма, основанного
на формуле Давидона-Флетчера-Пауэлла
В ROOT реализованы 2 варианта:
MINUIT — f2c конверсия оригинального FORTRAN MINUIT
MINUIT2 — С++ версия MINUIT
ROOT::Math::Minimizer — базовый класс для оптимизационных
алгоритмов в ROOT
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Параллельные расчеты
Интеграция с ROOT
Примеры решаемых задач
Квазиньютоновский метод vs Эволюционный алгоритм
По функциональности:
Квазиньютоновский метод Эволюционный алгоритм
Построение квадратичной
Без производных
формы (ряд Тейлора)
Целевая функция
Дифференцируема
∀, в т.ч. разрывные
Искомый минимум
Локальный
Глобальный
С точки зрения пользователя:
Квазиньютоновский метод Эволюционный алгоритм
Начальная точка
Начальная область
Начальная оценка шага
—
Минимизируемая целевая функция
Минимум функции
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Параллельные расчеты
Интеграция с ROOT
Примеры решаемых задач
Интеграция Эволюционных алгоритмов в ROOT
Minimizer в ROOT инициализируется в скрытом уровне
Методы для задания начальной области поиска
Интерфейс для задания внутренних параметров минимизатора
Plugin для инициализации минимизатора
Внешняя библиотека реализации алгоритма
git.cern.ch
М. Жабицкий
ЭА в ROOT
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Параллельные расчеты
Интеграция с ROOT
Примеры решаемых задач
Примеры решаемых задач
Приложения в ядерной физике и физике конденсированных сред
[Евгения Жабицкая, MPAMCS, 29.08.2014]
60
Анализ спектра без целеуказания:
Alg. Npeaks
D
Psucc median
Migrad
2
6
0.43
0.6e+3
ADE
2
6
0.90
1.8e+3
Migrad
5
15
0.32
2.8e+3
ADE
5
15
0.81
4.0e+4
50
40
30
20
10
0
М. Жабицкий
ЭА в ROOT
100
200
300
400
500
600
700
800
900
1000
Минимизация функции вещественных переменных
Программная реализация алгоритма
Результаты
Результаты
Разработан алгоритм Асинхронной Дифференциальной эволюции
с адаптивной корреляционной матрицей
Алгоритм эффективен для нахождения минимума
частично-разделяемых задач
Реализована автоматическая адаптация параметров алгоритма
(не требует доп. усилий от пользователя)
Интеграция с пакетом ROOT для решения оптимизационных задач
М. Жабицкий
ЭА в ROOT
Скачать