Генетические алгоритмы на Python
Применение генетических алгоритмов к решению задач глубокого обучения и искусственного интеллекта
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Вирсански Эйял
Перевод:
Слинкин Алексей Александрович
Год издания: 2020
Кол-во страниц: 286
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-857-9
Артикул: 748354.01.99
Там, где традиционные алгоритмы бесполезны или не дают результата за обозримое время, на помощь могут прийти генетические алгоритмы. Они позволяют решить целый комплекс сложных задач, в том числе связанных с искусственным интеллектом, упростить оптимизацию непрерывных функций, выполнять реконструкцию изображений и многое другое. Книга поможет программистам, специалистам по обработке данных и энтузиастам ИИ, интересующимся генетическими алгоритмами, подступиться к стоящим перед ними задачам, связанным с обучением, поиском и оптимизацией, а также повысить качество и точность результатов в уже имеющихся приложениях.
Для изучения материала книги требуются владение языком Python на рабочем уровне и базовые знания математики и информатики.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Эйял Вирсански Генетические алгоритмы на Python
Hands-On Genetic Algorithms with Python Applying genetic algorithms to solve real-world deep learning and artificial intelligence problems Eyal Wirsansky BIRMINGHAM – MUMBAI
Генетические алгоритмы на Python Применение генетических алгоритмов к решению задач глубокого обучения и искусственного интеллекта Эйял Вирсански Москва, 2020
УДК 004.421 ББК 32.811 В52 Вирсански Э. В52 Генетические алгоритмы на Python / пер. с англ. А. А. Слинкина. – М.: ДМК Пресс, 2020. – 286 с.: ил. ISBN 978-5-97060-857-9 Там, где традиционные алгоритмы бесполезны или не дают результата за обозримое время, на помощь могут прийти генетические алгоритмы. Они позволяют решить целый комплекс сложных задач, в том числе связанных с искусственным интеллектом, упростить оптимизацию непрерывных функций, выполнять реконструкцию изображений и многое другое. Книга поможет программистам, специалистам по обработке данных и энтузиастам ИИ, интересующимся генетическими алгоритмами, подступиться к стоящим перед ними задачам, связанным с обучением, поиском и оптимизацией, а также повысить качество и точность результатов в уже имеющихся приложениях. Для изучения материала книги требуются владение языком Python на рабочем уровне и базовые знания математики и информатики. УДК 004.421 ББК 32.811 First published in the English language under the title ‘Hands-On Genetic Algorithms with Python’. Russian language edition copyright © 2020 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-83855-774-4 (англ.) Copyright © Packt Publishing, 2020 ISBN 978-5-97060-857-9 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2020
Моей любимой жене Джеки за любовь, терпение и поддержку Моим детям, Даниэлле и Лиарне, чья творческая натура и артистические таланты подвигли меня на написание этой книги
Содержание Об авторе ...........................................................................................................13 О рецензенте ....................................................................................................14 Предисловие ....................................................................................................15 Часть I. ОСНОВЫ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ....................19 Глава 1. Введение в генетические алгоритмы ...................................20 Что такое генетические алгоритмы? ...................................................................20 Дарвиновская эволюция ..................................................................................21 Аналогия с генетическими алгоритмами .......................................................21 Генотип ......................................................................................................22 Популяция .................................................................................................22 Функция приспособленности ..................................................................23 Отбор .........................................................................................................23 Скрещивание ............................................................................................23 Мутация .....................................................................................................24 Теоретические основы генетических алгоритмов .............................................24 Теорема о схемах ..............................................................................................25 Отличия от традиционных алгоритмов ..............................................................26 Популяция как основа алгоритма ...................................................................27 Генетическое представление ...........................................................................27 Функция приспособленности ..........................................................................27 Вероятностное поведение ................................................................................27 Преимущества генетических алгоритмов ..........................................................28 Глобальная оптимизация .................................................................................28 Применимость к сложным задачам ................................................................29 Применимость к задачам, не имеющим математического представления ..................................................................................................30 Устойчивость к шуму ........................................................................................30 Распараллеливание ..........................................................................................30 Непрерывное обучение ....................................................................................31 Ограничения генетических алгоритмов .............................................................31 Специальные определения ..............................................................................31 Настройка гиперпараметров ...........................................................................31 Большой объем счетных операций .................................................................32 Преждевременная сходимость ........................................................................32 Отсутствие гарантированного решения .........................................................32 Сценарии применения генетических алгоритмов ............................................32 Резюме ...................................................................................................................33 Для дальнейшего чтения ......................................................................................33
Содержание 7 Глава 2. Основные компоненты генетических алгоритмов ..........34 Базовая структура генетического алгоритма .....................................................34 Создание начальной популяции .....................................................................36 Вычисление приспособленности .....................................................................36 Применение операторов отбора, скрещивания и мутации ..........................36 Проверка условий остановки ...........................................................................37 Методы отбора ......................................................................................................37 Правило рулетки ...............................................................................................38 Стохастическая универсальная выборка ........................................................39 Ранжированный отбор .....................................................................................40 Масштабирование приспособленности ..........................................................41 Турнирный отбор .............................................................................................42 Методы скрещивания ...........................................................................................43 Одноточечное скрещивание ............................................................................43 Двухточечное и k-точечное скрещивание ......................................................44 Равномерное скрещивание ..............................................................................45 Скрещивание для упорядоченных списков ....................................................45 Упорядоченное скрещивание ..................................................................46 Методы мутации ...................................................................................................47 Инвертирование бита ......................................................................................48 Мутация обменом .............................................................................................48 Мутация обращением ......................................................................................48 Мутация перетасовкой .....................................................................................49 Генетические алгоритмы с вещественным кодированием ...............................49 Скрещивание смешением ................................................................................50 Имитация двоичного скрещивания ................................................................51 Вещественная мутация ....................................................................................53 Элитизм .................................................................................................................53 Образование ниш и разделение ..........................................................................54 Последовательное и параллельное образование ниш ...................................56 Искусство решения задач с помощью генетических алгоритмов ....................57 Резюме ...................................................................................................................58 Для дальнейшего чтения ......................................................................................58 Часть II. РЕШЕНИЕ ЗАДАЧ С ПО МОЩЬЮ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ .........................................................59 Глава 3. Каркас DEAP ....................................................................................60 Технические требования ......................................................................................60 Введение в DEAP ...................................................................................................61 Использование модуля creator .............................................................................62 Создание класса Fitness ....................................................................................62 Определение стратегии приспособления ...............................................62 Хранение значения приспособленности ................................................63 Создание класса Individual ...............................................................................64 Использование класса Toolbox ............................................................................64
Содержание Создание генетических операторов................................................................65 Создание популяции ........................................................................................66 Вычисление приспособленности .....................................................................66 Задача OneMax ......................................................................................................67 Решение задачи OneMax с помощью DEAP ........................................................67 Выбор хромосомы ............................................................................................67 Вычисление приспособленности .....................................................................68 Выбор генетических операторов .....................................................................68 Задание условия остановки .............................................................................68 Реализация средствами DEAP..........................................................................69 Подготовка ................................................................................................69 Эволюция решения ..................................................................................72 Выполнение программы ..........................................................................75 Использование встроенных алгоритмов ............................................................76 Объект Statistics ................................................................................................77 Алгоритм ...........................................................................................................77 Объект logbook ..................................................................................................77 Выполнение программы ..................................................................................78 Зал славы ...........................................................................................................79 Эксперименты с параметрами алгоритма ..........................................................81 Размер популяции и количество поколений ..................................................81 Оператор скрещивания ....................................................................................83 Оператор мутации ............................................................................................84 Оператор отбора ...............................................................................................87 Размер турнира и его связь с вероятностью мутации ...........................88 Отбор по правилу рулетки .......................................................................92 Резюме ...................................................................................................................93 Для дальнейшего чтения ......................................................................................94 Глава 4. Комбинаторная оптимизация ..................................................95 Технические требования ......................................................................................95 Поисковые задачи и комбинаторная оптимизация...........................................96 Решение задачи о рюкзаке ...................................................................................96 Задача о рюкзаке 0-1 с сайта Rosetta Code ......................................................97 Представление решения ..................................................................................98 Представление задачи на Python ....................................................................98 Решение с помощью генетического алгоритма .............................................99 Решение задачи коммивояжера ........................................................................102 Файлы эталонных данных TSPLIB .................................................................103 Представление решения ................................................................................104 Представление задачи на Python ..................................................................104 Решение с помощью генетического алгоритма ...........................................106 Улучшение результатов благодаря дополнительному исследованию и элитизму ......................................................................................................109 Решение задачи о маршрутизации транспорта ...............................................114 Представление решения ................................................................................115 Представление задачи на Python ..................................................................116
Содержание 9 Решение с помощью генетического алгоритма ...........................................118 Резюме .................................................................................................................122 Для дальнейшего чтения ....................................................................................123 Глава 5. Задачи с ограничениями ..........................................................124 Технические требования ....................................................................................124 Соблюдение ограничений в поисковых задачах ..........................................125 Решение задачи об N ферзях .............................................................................125 Представление решения ................................................................................126 Представление задачи на Python ..................................................................128 Решение с помощью генетического алгоритма ...........................................129 Решение задачи о составлении графика дежурств медсестер .........................133 Представление решения ................................................................................133 Жесткие и мягкие ограничения ....................................................................134 Представление задачи на Python ..................................................................135 Решение на основе генетического алгоритма ..............................................137 Решение задачи о раскраске графа ...................................................................140 Представление решения ................................................................................142 Жесткие и мягкие ограничения в задаче о раскраске графа .......................143 Представление задачи на Python ..................................................................143 Решение с помощью генетического алгоритма ...........................................145 Резюме .................................................................................................................149 Для дальнейшего чтения ....................................................................................150 Глава 6. Оптимизация непрерывных функций ................................151 Технические требования ....................................................................................151 Хромосомы и генетические операторы для задач с вещественными числами ...............................................................................................................152 Использование DEAP совместно с непрерывными функциями .....................153 Оптимизация функции Eggholder .....................................................................154 Оптимизация функции Eggholder с помощью генетического алгоритма ........................................................................................................155 Повышение скорости сходимости посредством увеличения частоты мутаций ...........................................................................................................158 Оптимизация функции Химмельблау ..............................................................159 Оптимизация функции Химмельблау с помощью генетического алгоритма ........................................................................................................161 Использование ниш и разделения для отыскания нескольких решений ..........................................................................................................165 Функция Симионеску и условная оптимизация ..............................................168 Условная оптимизация с помощью генетического алгоритма ...................170 Оптимизация функции Симионеску с помощью генетического алгоритма ........................................................................................................171 Использование ограничений для нахождения нескольких решений ........172 Резюме .................................................................................................................173 Для дальнейшего чтения ....................................................................................173
Содержание Часть III. ПРИЛОЖЕНИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ В ИСКУССТВЕННОМ ИНТЕЛЛЕКТЕ ..............174 Глава 7. Дополнение моделей машинного обучения методами выделения признаков...........................................................175 Технические требования ....................................................................................176 Машинное обучение с учителем .......................................................................176 Классификация ...............................................................................................177 Регрессия .........................................................................................................179 Алгоритмы обучения с учителем ..................................................................180 Выделение признаков в обучении с учителем .................................................180 Выделение признаков для задачи регрессии Фридмана-1 .............................181 Представление решения ................................................................................182 Представление решения на Python ...............................................................182 Решение с помощью генетического алгоритма ...........................................184 Выделение признаков для классификации набора данных Zoo .....................186 Представление задачи на Python ..................................................................187 Решение с помощью генетического алгоритма ...........................................189 Резюме .................................................................................................................191 Для дальнейшего чтения ....................................................................................191 Глава 8. Настройка гиперпараметров моделей машинного обучения ..................................................................................192 Технические требования ....................................................................................193 Гиперпараметры в машинном обучении ..........................................................193 Настройка гиперпараметров .........................................................................194 Набор данных Wine ........................................................................................195 Классификатор на основе адаптивного усиления........................................195 Настройка гиперпараметров с помощью генетического поиска на сетке .....196 Тестирование качества классификатора с параметрами по умолчанию ....198 Результаты традиционного поиска на сетке ................................................198 Результаты генетического поиска на сетке ..................................................198 Прямой генетический подход к настройке гиперпараметров ........................199 Представление гиперпараметров .................................................................200 Оценка верности классификатора ................................................................200 Настройка гиперпараметров с помощью генетического алгоритма ..........201 Резюме .................................................................................................................204 Для дальнейшего чтения ....................................................................................204 Глава 9. Оптимизация архитектуры сетей глубокого обучения ..........................................................................................................205 Технические требования ....................................................................................205 Искусственные нейронные сети и глубокое обучение ....................................206 Многослойный перцептрон ...........................................................................207 Глубокое обучение и сверточные нейронные сети ......................................208