Лекция 13: глобальная оптимизация

advertisement
Лекция 13. Глобальная оптимизация
Краткое содержание
1. Локальный и глобальный минимум
2. Генетические алгоритмы
3. Метод отжига
Проблемы глобальной оптимизации
Локальный минимум: c – локальный минимум функции 𝑦 = 𝑓(𝑥), если
∃𝛿 > 0 такое, что 𝑓 𝑥 − 𝑓 𝑐 ≥ 0 для ∀𝑥 ∈ 𝑐 − 𝛿, 𝑐 + 𝛿
Глобальный минимум: c – глобальный минимум функции 𝑦 = 𝑓(𝑥), если
𝑓 𝑥 − 𝑓 𝑐 ≥ 0 для ∀𝑥 ∈ 𝐷(𝑓)
При оптимизации параметров
модели важно избегать локальных
минимумов и искать глобальный
Методы глобальной оптимизации
• Генетические алгоритмы
• Метод отжига
• Комбинированные методы
• Символьная регрессия
Локальный минимум
Глобальный минимум
Часть 1. Генетические алгоритмы
Генетические алгоритмы
Генетические алгоритмы –
алгоритмы нелинейной
оптимизации. Ключевые
характеристики:
• Работа с большим количеством
потенциальных решений
(«популяцией»)
• Использование целевой функции
для отбора членов популяции
• Получение новых членов
популяции операциями
«скрещивания»
(комбинированием) и
«мутациями» (случайные
изменения)
Ср. с процессом эволюции в живой
природе
(идея
генетического
алгоритма была взята именно из
биологии)
Генерация исходной
(случайной) популяции
Отбор части популяции с
использованием целевой
функции
ДА
Желаемый
результат
достигнут?
НЕТ
Вернуть
результат
Получение недостающей
части популяции
скрещиванием и
мутациями
Пример: функция Растригина
𝑓 𝑥1 , 𝑥2 = 20 + 𝑥12 + 𝑥22 − 10 cos 2𝜋𝑥1 − 10 cos 2𝜋𝑥2
Имеет множество локальных минимумов и один глобальный
Метод Левенберга-Марквардта и ему подобные зачастую находит
локальный минимум
Пример: функция Растригина
Шаг 1. Создание начальной популяции
(0)
(0)
𝑥1 = 𝑥2 = 10
(𝑖)
(0)
𝑥1 = 𝑥1 + 𝑁𝑖 0; 𝜎 2
(𝑖)
(0)
𝑥2 = 𝑥2 + 𝑁𝑖 (0; 𝜎 2 )
Шаг 2. Отбор
(𝑖)
(𝑖)
Целевая функция – значение функции Растригина для 𝑥1 и 𝑥2
Шаг 3. Скрещивание и мутации
Ведётся на основе лучших 5-10% членов популяции
Скрещивание:
Мутация:
(𝑖)
(𝑚)
(𝑖)
(𝑚)
𝑥1 = (1 − 𝑤1 )𝑥1
(𝑛)
+𝑤1 𝑥1 ; 𝑤1 ∈ [0; 1]
(𝑛)
𝑥2 = (1 − 𝑤1 )𝑥2 +𝑤2 𝑥2 ; 𝑤2 ∈ [0; 1]
(𝑖)
𝑖 ,∗
= 𝑥1 + 𝑁(0; 𝜎 2 )
𝑖 ,∗
= 𝑥2 + 𝑁(0; 𝜎 2 )
𝑥1
𝑥2
(𝑖)
Пример: функция Растригина
Сортировка в GNU Octave
Пример 1. Сортировка чисел
>> x = randi([1 100], 1, 7)
x =
2
54
65
28
49
>> sort(x)
2
28
49
54
54
54
61
61
65
Пример 2. Сортировка строк матрицы по сумме значений
>> x(ind,:)
>> x = randi([-10 10], 4,3)
-5
-5
x = 5
9
-9
-5
-10
-5
-5
-1
5
9
-1
9
10
-1
9
-5
-10
5
>> s = sum(x,2)'
s = 5
-11
18
-10
>> [s, ind] = sort(s) % s = s(ind)
s =-11
-10
5
18
ind =2
4
1
3
-1
5
-9
10
Часть 2. Алгоритм имитации отжига
Алгоритм имитации отжига
Алгоритм имитации отжига
Основные шаги
1. Задать начальное приближение 𝑥
2. 𝑇 = 𝑇(𝑘), где 𝑘 ≥ 1 – номер итерации
3. 𝑥𝑘+1 = 𝐴(𝑥𝑘 , 𝑇), где 𝐴(𝑥𝑘 , 𝑇) – оператор, случайным образом меняющий
точку
4. Принимать или нет новое приближение? 𝑃 𝑥𝑘 → 𝑥𝑘+1 𝑥𝑘 =
1 при Δ𝐹 ≤ 0
, где Δ𝐹 = 𝐹 𝑥𝑘+1 − 𝐹(𝑥𝑘 )
Δ𝐹
exp −
при Δ𝐹 > 0
𝑇
5. Если результат достигнут, то завершить работу, если нет – вернуться к
шагу 2 (перейти к слеующей итерации)
Шаг 4 обеспечивает выход из локальных минимумов
Различия между разными вариантами алгоритма имитации отжига
1. Оператор 𝐴(𝑥, 𝑇), генерирующий новое приближение
2. Функция 𝑇(𝑘) (режим/расписание охлаждения)
Виды отжига
Больцмановский отжиг
• 𝑇 𝑘 =
𝑇0
ln(1+𝑘)
• 𝐴 𝑥 = 𝑥 + 𝑇 ⋅ 𝑁(0; 1)
𝑁(0; 1) – стандартное нормальное
распределение
Быстрый отжиг
𝑇
• 𝑇 𝑘 = 0
𝑘
• 𝐴 𝑥 = 𝑥 + 𝑇 ⋅ 𝐶(0; 1)
𝐶(0; 1) – распределение Коши
Распределение Коши
1
𝜋
• 𝐹 𝑥 = atan
𝑥−𝑥0
𝛾
1
𝑈−
2
• 𝑥0 + 𝛾 tan 𝜋
𝐶(𝑥0 ; 𝛾)
• 𝐶 0; 1 ≡ 𝑡(1)
+
1
2
∼
У C(0;1) «хвосты» длиннее, чем у
N(0;1) => возможно более быстрое
охлаждение
Виды отжига
Одномерная функция Растригина
𝐹 𝑥 = 𝑥 2 + 10 − 10 cos(2𝜋𝑥)
Больцмановский отжиг
T0=1000; x0=20000
Отжиг Коши
T0=10; x0=20000
Download