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

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Там, где традиционные алгоритмы бесполезны или не дают результата за обозримое время, на помощь могут прийти генетические алгоритмы. Они позволяют решить целый комплекс сложных задач, в том числе связанных с искусственным интеллектом, упростить оптимизацию непрерывных функций, выполнять реконструкцию изображений и многое другое. Книга поможет программистам, специалистам по обработке данных и энтузиастам ИИ, интересующимся генетическими алгоритмами, подступиться к стоящим перед ними задачам, связанным с обучением, поиском и оптимизацией, а также повысить качество и точность результатов в уже имеющихся приложениях. Для изучения материала книги требуются владение языком Python на рабочем уровне и базовые знания математики и информатики.

Author(s): Эйял Вирсански
Edition: 1
Publisher: ДМК Пресс
Year: 2020

Language: Russian
Commentary: Vector PDF
Pages: 286
City: М.
Tags: Machine Learning; Algorithms; Genetic Algorithms; Deep Learning; Reinforcement Learning; Regression; Supervised Learning; Python; Classification; Feature Engineering; Hyperparameter Tuning; Optimization; Search Algorithms; Image Generation

Обложка
Об авторе
О рецензенте
Предисловие
Основы генетических алгоритмов
Введение в генетические алгоритмы
Что такое генетические алгоритмы?
Дарвиновская эволюция
Аналогия с генетическими алгоритмами
Генотип
Популяция
Функция приспособленности
Отбор
Скрещивание
Мутация
Теоретические основы генетических алгоритмов
Теорема о схемах
Отличия от традиционных алгоритмов
Популяция как основа алгоритма
Генетическое представление
Функция приспособленности
Вероятностное поведение
Преимущества генетических алгоритмов
Глобальная оптимизация
Применимость к сложным задачам
Применимость к задачам, не имеющим математического представления
Устойчивость к шуму
Распараллеливание
Непрерывное обучение
Ограничения генетических алгоритмов
Специальные определения
Настройка гиперпараметров
Большой объем счетных операций
Преждевременная сходимость
Отсутствие гарантированного решения
Сценарии применения генетических алгоритмов
Резюме
Для дальнейшего чтения
Основные компоненты генетических алгоритмов
Базовая структура генетического алгоритма
Создание начальной популяции
Вычисление приспособленности
Применение операторов отбора, скрещивания и мутации
Проверка условий остановки
Методы отбора
Правило рулетки
Стохастическая универсальная выборка
Ранжированный отбор
Масштабирование приспособленности
Турнирный отбор
Методы скрещивания
Одноточечное скрещивание
Двухточечное и k-точечное скрещивание
Равномерное скрещивание
Скрещивание для упорядоченных списков
Упорядоченное скрещивание
Методы мутации
Инвертирование бита
Мутация обменом
Мутация обращением
Мутация перетасовкой
Генетические алгоритмы с вещественным кодированием
Скрещивание смешением
Имитация двоичного скрещивания
Вещественная мутация
Элитизм
Образование ниш и разделение
Последовательное и параллельное образование ниш
Искусство решения задач с помощью генетических алгоритмов
Резюме
Для дальнейшего чтения
Решение задач с по­мощью генетических алгоритмов
Каркас DEAP
Технические требования
Введение в DEAP
Использование модуля creator
Создание класса Fitness
Определение стратегии приспособления
Хранение значения приспособленности
Создание класса Individual
Использование класса Toolbox
Создание генетических операторов
Создание популяции
Вычисление приспособленности
Задача OneMax
Решение задачи OneMax с помощью DEAP
Выбор хромосомы
Вычисление приспособленности
Выбор генетических операторов
Задание условия остановки
Реализация средствами DEAP
Подготовка
Эволюция решения
Выполнение программы
Использование встроенных алгоритмов
Объект Statistics
Алгоритм
Объект logbook
Выполнение программы
Зал славы
Эксперименты с параметрами алгоритма
Размер популяции и количество поколений
Оператор скрещивания
Оператор мутации
Оператор отбора
Размер турнира и его связь с вероятностью мутации
Отбор по правилу рулетки
Резюме
Для дальнейшего чтения
Комбинаторная оптимизация
Технические требования
Поисковые задачи и комбинаторная оптимизация
Решение задачи о рюкзаке
Задача о рюкзаке 0-1 с сайта Rosetta Code
Представление решения
Представление задачи на Python
Решение с помощью генетического алгоритма
Решение задачи коммивояжера
Файлы эталонных данных TSPLIB
Представление решения
Представление задачи на Python
Решение с помощью генетического алгоритма
Улучшение результатов благодаря дополнительному исследованию и элитизму
Решение задачи о маршрутизации транспорта
Представление решения
Представление задачи на Python
Решение с помощью генетического алгоритма
Резюме
Для дальнейшего чтения
Задачи с ограничениями
Технические требования
Соблюдение ограничений в поисковых задачах
Решение задачи об N ферзях
Представление решения
Представление задачи на Python
Решение с помощью генетического алгоритма
Решение задачи о составлении графика дежурств медсестер
Представление решения
Жесткие и мягкие ограничения
Представление задачи на Python
Решение на основе генетического алгоритма
Решение задачи о раскраске графа
Представление решения
Жесткие и мягкие ограничения в задаче о раскраске графа
Представление задачи на Python
Решение с помощью генетического алгоритма
Резюме
Для дальнейшего чтения
Оптимизация непрерывных функций
Технические требования
Хромосомы и генетические операторы для задач с вещественными числами
Использование DEAP совместно с непрерывными функциями
Оптимизация функции Eggholder
Оптимизация функции Eggholder с помощью генетического алгоритма
Повышение скорости сходимости посредством увеличения частоты мутаций
Оптимизация функции Химмельблау
Оптимизация функции Химмельблау с помощью генетического алгоритма
Использование ниш и разделения для отыскания нескольких решений
Функция Симионеску и условная оптимизация
Условная оптимизация с помощью генетического алгоритма
Оптимизация функции Симионеску с помощью генетического алгоритма
Использование ограничений для нахождения нескольких решений
Резюме
Для дальнейшего чтения
Приложения генетических алгоритмов в искусственном интеллекте
Дополнение моделей машинного обучения методами выделения признаков
Технические требования
Машинное обучение с учителем
Классификация
Регрессия
Алгоритмы обучения с учителем
Выделение признаков в обучении с учителем
Выделение признаков для задачи регрессии Фридмана-1
Представление решения
Представление решения на Python
Решение с помощью генетического алгоритма
Выделение признаков для классификации набора данных Zoo
Представление задачи на Python
Решение с помощью генетического алгоритма
Резюме
Для дальнейшего чтения
Настройка гиперпараметров моделей машинного обучения
Технические требования
Гиперпараметры в машинном обучении
Настройка гиперпараметров
Набор данных Wine
Классификатор на основе адаптивного усиления
Настройка гиперпараметров с помощью генетического поиска на сетке
Тестирование качества классификатора с параметрами по умолчанию
Результаты традиционного поиска на сетке
Результаты генетического поиска на сетке
Прямой генетический подход к настройке гиперпараметров
Представление гиперпараметров
Оценка верности классификатора
Настройка гиперпараметров с помощью генетического алгоритма
Резюме
Для дальнейшего чтения
Оптимизация архитектуры сетей глубокого обучения
Технические требования
Искусственные нейронные сети и глубокое обучение
Многослойный перцептрон
Глубокое обучение и сверточные нейронные сети
Оптимизация архитектуры классификатора на основе глубокой сети
Набор данных Iris
Представление конфигурации скрытого слоя
Оценка верности классификатора
Оптимизация архитектуры МСП с помощью генетического алгоритма
Объединение оптимизации архитектуры с настройкой гиперпараметров
Представление решения
Вычисление верности классификатора
Оптимизация объединенной конфигурации МСП с помощью генетического алгоритма
Резюме
Для дальнейшего чтения
Генетические алгоритмы и обучение с подкреплением
Технические требования
Обучение с подкреплением
Генетические алгоритмы и обучение с подкреплением
OpenAI Gym
Интерфейс env
Решение окружающей среды MountainCar
Представление решения
Оценивание решения
Представление задачи на Python
Решение с помощью генетического алгоритма
Решение окружающей среды CartPole
Управление средой CartPole с помощью нейронной сети
Представление и оценивание решения
Представление задачи на Python
Решение с помощью генетического алгоритма
Резюме
Для дальнейшего чтения
Родственные технологии
Генетическая реконструкция изображений
Технические требования
Реконструкция изображений из многоугольников
Обработка изображений на Python
Библиотеки обработки изображений на Python
Библиотека Pillow
Библиотека scikit-image
Библиотека opencv-python
Рисование с помощью многоугольников
Измерение степени различия двух изображений
Попиксельная среднеквадратическая ошибка
Структурное сходство (SSIM)
Применение генетических алгоритмов для реконструкции изображений
Представление и оценивание решения
Представление задачи на Python
Реализация генетического алгоритма
Добавление функции обратного вызова в код генетического алгоритма
Результаты реконструкции изображения
Применение попиксельной среднеквадратической ошибки
Применение индекса структурного сходства
Другие эксперименты
Резюме
Для дальнейшего чтения
Другие эволюционные и бионические методы вычислений
Технические требования
Эволюционные и бионические вычисления
Генетическое программирование
Пример генетического программирования – контроль по четности
Реализация с помощью генетического программирования
Упрощение решения
Оптимизация методом роя частиц
Пример применения PSO – оптимизация функции
Реализация оптимизации методом роя частиц
Другие родственные методы
Эволюционные стратегии
Дифференциальная эволюция
Муравьиный алгоритм оптимизации
Искусственные иммунные системы
Искусственная жизнь
Резюме
Для дальнейшего чтения
Предметный указатель