Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Генетические алгоритмы

Генетические алгоритмы

Глеб Ерофеев (Индивидуальный предприниматель) @ Moscow Python Meetup 59
"Генетические алгоритмы (раздел машинного обучения). Как устроены. Плюсы и минусы. Практическое применение".
Видео: http://www.moscowpython.ru/meetup/59/genetic-algorithms/

Moscow Python Meetup

August 23, 2018
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. План • Где я применил генетический алгоритм • Как устроен

    генетический алгоритм • Гиперпараметры и настройки алгоритма • В каких задачах генетические алгоритмы применимы • Ссылки на источники
  2. Задача и решение https://www.codingame.com/training/medium/ mars-lander-episode-2 • Приземлить посадочный модуль на

    поверхность (дается несколько наборов поверхности) o Только горизонтальный участок o Вертикальная скорость не более 40 м/с o Горизонтальная не более 20 м/с o Ориентация при осадке – строго вертикально o Сэкономить побольше топлива • Управляем углом наклона и мощностью двигателя o За один такт изменения не более чем на один шаг • Начальные условия o Описание поверхности o Начальная точка o Начальная скорость по вертикали и горизонтали Алгоритм в действии
  3. Основы генетического алгоритма • Модель (Особь) • Хромосома (gene) •

    Популяция (population) • Функция приспособляемости (fitting) • Функция отбора (selection) • Функция скрещивания (cross over) • Функция мутации (mutation) Создание первого поколения Скрещивание Мутация Новое поколение Оценка Отбор *Приемле мый результат
  4. Хромосома и модель • Хромосома – упорядоченный набор управляющих воздействий

    на модель o В рассматриваемой задаче – это последовательность команд • Модель – в общем случае объект описывающий как ведет себя модель для любого набора управлявших воздействий o Модель поверхности • Расчет факта касания (пересечение отрезка траектории и отрезка поверхности) • Расчет координат точки касания o Модель посадочного модуля • Расчет траектории • Функции оценки, скрещивания, мутации
  5. Fitting функция (приспособляемость) • Основное преимущество генетических алгоритмов o Определил

    кусками и последовательно • Расстояние от точки касания до горизонтальной поверхности: 100 - (Distance/Full Surface Length) • Горизонтальная скорость и вертикальная скорость: 100 – MAX(ABS(Speed – Speed Limit), 0) • Угол наклона: 100 – ABS(Angle) • Топливо: 100 – (100 * Fuel / Init Fuel))
  6. Популяция и Отбор • Для каждой особи в популяции –

    fitting оценка • Сортируем по оценке • Гиперпараметры o Размер популяции o Какая часть популяции выживает • В моей реализации – 50% • «Погибших» особей заменят новые полученные скрещиванием и мутацией) 104 165 55 77 76 132 45 179 45 5 156 123 179 165 156 132 123 104 77 76 55 45 45 5 179 165 156 132 123 104 77 76 55 45 45 5
  7. Скрещивание • Какая часть популяции участвует в скрещивании o От

    выживших и от «погибающих» - необходимо чтобы обеспечить вариативность • Например: 30 % - выживших / 20 % - «погибающих» • Как делать скрещивание: o Родительские гены - пополам: o Случайная смесь родительских генов: o Другое…. 50 167 187 25 16 93 58 153 158 17 56 155 50 167 187 25 16 93 133 14 63 157 133 192 105 119 56 245 126 206 133 14 63 157 133 192 50 167 187 25 16 93 58 153 158 17 56 155 50 119 56 25 126 93 58 153 63 17 133 192 105 119 56 245 126 206 133 14 63 157 133 192
  8. Мутации • Зачем? - Обеспечить вариативность популяции • Стратегии мутации

    (гиперпараметры) o Какие гены мутируют • Один или несколько • Выбор генов для мутации o Случайный o С учетом последовательности – чем выше ген к концу цепочки в хромосоме тем выше шанс мутации o Как мутируют гены • Любое значение гена • Из под выборки в зависимости от предыдущих и последующих генов
  9. Новое поколение • Часть 1 – «выжившие» особи предыдущего поколения

    • Часть 2 – «потомки» полученные после скрещивания • Размер новой популяции o Классика - не менять размер популяции • Увеличение – замедляет расчет • Уменьшение – снижает вариативность "старики" "молодежь"
  10. Применение алгоритма • Инженерные задачи o ST5 X-band антенна. Создана

    благодаря генетическому алгоритму. Превосходит другие типы антенн в определенных диаграммах направленности. Использовалась NASA в 2016 году в проекте Space Technology 5 • Self Driving Cars • ML задачи/соревнования • «Игровые» задачи (CodinGame, Open AI, Russia AI CUP ) o Пример (английский) http://files.magusgeek.com/csb/csb_en.html
  11. Ссылки • Задача на CodinGames https://www.codingame.com/training/medium/mars-lander-episode-2 • Разъяснение по Генетическому

    алгоритму (английский) https://tech.io/playgrounds/334/genetic-algorithms/history • Статья победителя CODERS STRIKE BACK: http://files.magusgeek.com/csb/csb_en.html • Статья на хабре – размер популяции https://habr.com/post/114910/ • Демонстрация – конструкции машин http://rednuht.org/genetic_cars_2/