Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 595765)
Консорциум Контекстум Информационная технология сбора цифрового контента
Уважаемые СТУДЕНТЫ и СОТРУДНИКИ ВУЗов, использующие нашу ЭБС. Рекомендуем использовать новую версию сайта.

Эволюционные нейросети на языке Python (1500,00 руб.)

0   0
Первый авторОмельяненко
ИздательствоМ.: ДМК Пресс
Страниц311
ID795534
АннотацияЭта книга дает всестороннее представление о нейроэволюции — подходе к обучению искусственных нейронных сетей, который использует эволюционные алгоритмы, чтобы упростить процесс решения сложных задач в таких областях, как игры, робототехника и моделирование естественных процессов. Читатель начнет знакомство с ключевыми концепциями и методами нейроэволюции, написав несложный код на языке Python, а затем получит практический опыт работы с популярными библиотеками Python и научится решать распространенные и нестандартные прикладные задачи, используя алгоритмы на основе нейроэволюции. Речь пойдет о том, как адаптировать методы нейроэволюции к существующим проектам нейронных сетей для повышения эффективности обучения и принятия решений; в завершение будет рассказано о топологиях нейронных сетей и о том, как нейроэволюция позволяет развивать сложную топологию из простейшей базовой структуры. Издание предназначено для специалистов в области машинного обучения и искусственного интеллекта, которые стремятся реализовать алгоритмы нейроэволюции с нуля. Наличие базовых знаний в области глубокого обучения и нейронных сетей, а также программирования на языке Python обязательно.
ISBN978-5-97060-854-8
УДК4.421
ББК32.811
Омельяненко. Эволюционные нейросети на языке Python / Омельяненко .— Москва : ДМК Пресс, 2020 .— 311 с. — ISBN 978-5-97060-854-8 .— URL: https://rucont.ru/efd/795534 (дата обращения: 03.10.2022)

Предпросмотр (выдержки из произведения)

Эволюционные_нейросети_на_языке_Python.pdf
Стр.5
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
Эволюционные_нейросети_на_языке_Python.pdf
УДК 004.421 ББК 32.811 О57 О57 Эволюционные нейросети на языке Python / пер. с анг. В. С. Яценкова. – М.: ДМК Пресс, 2020. – 310 с.: ил. Ярослав Омельяненко ISBN 978-5-97060-854-8 Эта книга дает всестороннее представление о нейроэволюции – подходе к обучению искусственных нейронных сетей, который использует эволюционные алгоритмы, чтобы упростить процесс решения сложных задач в таких областях, как игры, робототехника и моделирование естественных процессов. Читатель начнет знакомство с ключевыми концепциями и методами нейроэволюции, написав несложный код на языке Python, а затем получит практический опыт работы с популярными библиотеками Python и научится решать распространенные и нестандартные прикладные задачи, используя алгоритмы на основе нейроэволюции. Речь пойдет о том, как адаптировать методы нейроэволюции к существующим проектам нейронных сетей для повышения эффективности обучения и принятия решений; в завершение будет рассказано о топологиях нейронных сетей и о том, как нейроэволюция позволяет развивать сложную топологию из простейшей базовой структуры. Издание предназначено для специалистов в области машинного обучения и искусственного интеллекта, которые стремятся реализовать алгоритмы нейроэволюции с нуля. Наличие базовых знаний в области глубокого обучения и нейронных сетей, а также программирования на языке Python обязательно. УДК 004.421 ББК 32.811 This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN (анг.) 9781838824914 ISBN (рус.) 978-5-97060-854-8 © Packt Publishing 2019. First published in the English language under the title ‘Hands-on Neuroevolution with Python © Оформление, издание, перевод, ДМК Пресс, 2020
Стр.5
Оглавление Предисловие от издательства ...................................................................13 Отзывы и пожелания ............................................................................................13 Список опечаток ...................................................................................................13 Нарушение авторских прав..................................................................................13 Об авторе ........................................................................................................14 О рецензентах .................................................................................................15 Предисловие от автора .........................................................................16 Для кого написана эта книга................................................................................17 О чем эта книга .....................................................................................................17 Как получить максимальную отдачу от этой книги ...........................................18 Скачивание исходного кода примеров ...............................................................18 Скачивание цветных иллюстраций ....................................................................18 Условные обозначения и соглашения, принятые в книге .................................18 ЧАСТЬ I. Основы эволюционных вычислительных алгоритмов и методов нейроэволюции ...............................................19 Глава 1. Обзор методов нейроэволюции .............................................21 1.1 Эволюционные алгоритмы и нейроэволюционные методы .......................22 1.1.1 Генетические операторы .........................................................................23 1.1.2 Схемы кодирования генома ....................................................................25 1.1.3 Коэволюция ..............................................................................................27 1.1.4 Модульность и иерархия .........................................................................27 1.2 Обзор алгоритма NEAT ...................................................................................28 1.2.1 Схема кодирования NEAT .......................................................................28 1.2.2 Структурные мутации .............................................................................29 1.2.3 Кроссовер с номером обновления ..........................................................30 1.2.4 Видообразование .....................................................................................32 1.3 NEAT на основе гиперкуба .............................................................................33 1.3.1 Сети, производящие составные паттерны .............................................34 1.3.2 Конфигурация субстрата .........................................................................35 1.3.3 CPPN с развивающимися связями и алгоритм HyperNEAT ..................36 1.4 HyperNEAT с развиваемым субстратом .........................................................37 1.4.1 Плотность информации в гиперкубе ......................................................37
Стр.7
7  Оглавление Оглавление  7 1.4.2 Квадродерево как эффективный экстрактор информации ..................38 1.4.3 Алгоритм ES-HyperNEAT ........................................................................40 1.5 Метод оптимизации поиском новизны ........................................................42 1.5.1 Поиск новизны и естественная эволюция .............................................43 1.5.2 Метрика новизны.....................................................................................43 1.6 Заключение .....................................................................................................45 1.7 Дополнительное чтение .................................................................................45 Глава 2. Библиотеки Python и настройка среды разработки .......47 2.1 Библиотеки Python для экспериментов с нейроэволюцией ........................47 2.1.1 Библиотека NEAT-Python.........................................................................48 2.1.2 Библиотека PyTorch NEAT .......................................................................49 2.1.3 Библиотека MultiNEAT .............................................................................51 2.1.4 Библиотека Deep Neuroevolution ............................................................53 2.2 Настройка среды .............................................................................................56 2.2.1 Pipenv ........................................................................................................56 2.2.2 Virtualenv ..................................................................................................57 2.2.3 Anaconda Distribution ...............................................................................58 2.3 Заключение .....................................................................................................59 ЧАСТЬ II. Применение методов нейроэволюции для решения классических задач информатики ..............................61 Глава 3. Использование NEAT для оптимизации решения задачи XOR ...................................................................................63 3.1 Технические требования ................................................................................63 3.2 Суть задачи XOR ..............................................................................................64 3.3 Целевая функция для эксперимента XOR .....................................................65 3.4 Настройка гиперпараметров .........................................................................66 3.4.1 Секция NEAT .............................................................................................67 3.4.2 Секция DefaultStagnation ........................................................................67 3.4.3 Секция DefaultReproduction ....................................................................68 3.4.4 Секция DefaultSpeciesSet .........................................................................68 3.4.5 Секция DefaultGenome .............................................................................68 3.4.6 Гиперпараметры эксперимента XOR .....................................................70 3.5 Выполнение эксперимента XOR ....................................................................72 3.5.1 Настройка среды ......................................................................................72 3.5.2 Исходный код эксперимента XOR ..........................................................73 3.5.3 Запуск эксперимента и анализ результатов ..........................................76 3.6 Упражнения .....................................................................................................81 3.7 Заключение .....................................................................................................83 Глава 4. Балансировка тележки с обратным маятником ...............85 4.1 Технические требования ................................................................................85 4.2 Задача балансировки обратного маятника ...................................................86
Стр.8
8  Оглавление  8 4.2.1 Уравнения движения балансировщика ..................................................86 4.2.2 Уравнения состояния и управляющие воздействия ..............................87 4.2.3 Взаимодействие между решателем и симулятором ..............................88 4.3 Целевая функция для эксперимента по балансировке одиночного маятника ..........................................................................................90 4.3.1 Моделирование тележки .........................................................................90 4.3.2 Цикл моделирования ...............................................................................91 4.3.3 Оценка приспособленности генома .......................................................93 4.4 Эксперимент по балансировке одиночного маятника ................................93 4.4.1 Выбор гиперпараметров .........................................................................94 4.4.2 Настройка рабочей среды........................................................................95 4.4.3 Исходный код эксперимента ..................................................................95 4.4.4 Запуск эксперимента по балансировке одиночного маятника ............98 4.5 Упражнения ...................................................................................................100 4.6 Задача балансировки двойного маятника ..................................................101 4.6.1 Переменные состояния системы и уравнения движения ...................101 4.6.2 Подкрепляющий сигнал ........................................................................104 4.6.3 Начальные условия и обновление состояния ......................................104 4.6.4 Управляющие действия .........................................................................106 4.6.5 Взаимодействие между решателем и симулятором ............................106 4.7 Целевая функция для эксперимента по балансировке двойного маятника .............................................................................................107 4.8 Эксперимент по балансировке ....................................................................108 4.8.1 Выбор гиперпараметров .......................................................................108 4.8.2 Настройка рабочей среды......................................................................110 4.8.3 Реализация эксперимента .....................................................................110 4.8.4 Запуск эксперимента с двумя маятниками .........................................111 4.9 Упражнения ...................................................................................................115 4.10 Заключение..................................................................................................116 Глава 5. Автономное прохождение лабиринта ................................117 5.1 Технические требования ..............................................................................117 5.2 Задача навигации в лабиринте ....................................................................118 5.3 Среда моделирования лабиринта ................................................................119 5.3.1 Агент-решатель лабиринта ...................................................................119 5.3.2 Реализация среды моделирования лабиринта ....................................121 5.3.3 Хранение записей агента ......................................................................125 5.3.4 Визуализация записей агента ...............................................................127 5.4 Определение целевой функции с использованием показателя приспособленности ........................................................................127 5.5 Проведение эксперимента с простой конфигурацией лабиринта ............129 5.5.1 Выбор гиперпараметров .......................................................................130 5.5.2 Файл конфигурации лабиринта ............................................................132 5.5.3 Настройка рабочей среды......................................................................132 5.5.4 Реализация движка эксперимента .......................................................132 5.5.5 Проведение эксперимента по навигации в простом лабиринте........135 5.6 Упражнения ...................................................................................................140
Стр.9
Оглавление  9 5.7 Эксперимент со сложной конфигурацией лабиринта ................................140 5.7.1 Настройка гиперпараметров .................................................................141 5.7.2 Настройка рабочей среды и движок эксперимента .............................141 5.7.3 Выполнение эксперимента по прохождению сложного лабиринта .......................................................................................141 5.8 Упражнения ...................................................................................................143 5.9 Заключение ...................................................................................................144 Глава 6. Метод оптимизации поиском новизны ..............................145 6.1 Технические требования ..............................................................................145 6.2 Метод оптимизации поиском новизны ......................................................146 6.3 Основы реализации алгоритма поиска новизны .......................................147 6.3.1 NoveltyItem .............................................................................................147 6.3.2 NoveltyArchive ........................................................................................148 6.4 Функция приспособленности с оценкой новизны .....................................149 6.4.1 Оценка новизны .....................................................................................150 6.4.2 Метрика новизны...................................................................................152 6.4.3 Функция приспособленности ................................................................153 6.5 Эксперимент с простой конфигурацией лабиринта ..................................158 6.5.1 Настройка гиперпараметров.................................................................159 6.5.2 Настройка рабочей среды......................................................................159 6.5.3 Реализация движка эксперимента .......................................................160 6.5.4 Простой эксперимент по навигации в лабиринте с поиском новизны .........................................................................................163 6.5.5 Упражнение 1 .........................................................................................168 6.6 Эксперимент со сложной конфигурацией лабиринта ................................169 6.6.1 Настройка гиперпараметров и рабочей среды ....................................169 6.6.2 Выполнение эксперимента по прохождению труднодоступного лабиринта ........................................................................169 6.6.3 Упражнение 2 .........................................................................................172 6.7 Заключение ...................................................................................................173 ЧАСТЬ III. Передовые методы нейроэволюции .............................175 Глава 7. Зрительное различение с NEAT на основе гиперкуба ... 177 7.1 Технические требования...............................................................................177 7.2 Косвенное кодирование нейросетей с CPPN ...............................................178 7.2.1 Кодирование CPPN .................................................................................178 7.2.2 Нейроэволюция с развитием топологии на основе гиперкуба ...........179 7.3 Основы эксперимента по зрительному различению .................................180 7.3.1 Определение целевой функции ............................................................182 7.4 Подготовка эксперимента по зрительному различению ...........................182 7.4.1 Тестовая среда зрительного дискриминатора .....................................183 7.4.2 Движок эксперимента ............................................................................190 7.5 Эксперимент по зрительному различению объектов ................................196 7.5.1 Выбор гиперпараметра ..........................................................................196 7.5.2 Настройка рабочей среды ......................................................................197
Стр.10
10  Оглавление 7.5.3 Запуск эксперимента по зрительному различению ............................198 7.6 Упражнения ...................................................................................................201 7.7 Заключение ....................................................................................................202 Глава 8. Метод ES-HyperNEAT и задача сетчатки ............................203 8.1 Технические требования ..............................................................................204 8.2 Ручное и эволюционное формирование топографии узлов ......................204 8.3 Извлечение информации из квадродерева и основы ESHyperNEAT ......................................................................................205 8.4 Основы задачи модульной сетчатки ...........................................................207 8.4.1 Определение целевой функции ............................................................209 8.5 Подготовка эксперимента с модульной сетчаткой ...................................210 8.5.1 Начальная конфигурация субстрата .....................................................210 8.5.2 Тестовая среда для задачи модульной сетчатки ..................................211 8.5.3 Движок эксперимента ...........................................................................215 8.6 Эксперимент с модульной сетчаткой ..........................................................222 8.6.1 Настройка гиперпараметров.................................................................222 8.6.2 Настройка рабочей среды......................................................................223 8.6.3 Запуск эксперимента с модульной сетчаткой .....................................223 8.7 Упражнения ...................................................................................................227 8.8 Заключение ...................................................................................................227 Глава 9. Коэволюция и метод SAFE.......................................................229 9.1 Технические требования ..............................................................................229 9.2 Общие стратегии коэволюции .....................................................................229 9.3 Метод SAFE ....................................................................................................230 9.4 Модифицированный эксперимент с лабиринтом ......................................231 9.4.1 Агент-решатель задачи лабиринта .......................................................231 9.4.2 Среда лабиринта ....................................................................................232 9.4.3 Определение функции приспособленности ........................................233 9.5 Модифицированный поиск новизны ..........................................................234 9.5.1 Функция _add_novelty_item ...................................................................235 9.5.2 Функция evaluate_novelty_score ............................................................235 9.6 Движок модифицированного эксперимента с лабиринтом ......................236 9.6.1 Создание совместно эволюционирующих популяций........................237 9.6.2 Оценка приспособленности совместно развивающихся популяций ...........................................................................238 9.6.3 Выполнение эксперимента модифицированного лабиринта ............243 9.7 Эксперимент с модифицированным лабиринтом .....................................245 9.7.1 Гиперпараметры для популяции агентов-решателей .........................245 9.7.2 Гиперпараметры популяции кандидатов на целевую функцию ........246 9.7.3 Настройка рабочей среды ......................................................................246 9.7.4 Проведение модифицированного эксперимента с лабиринтом ........247 9.8 Упражнения ...................................................................................................250 9.9 Заключение ...................................................................................................250
Стр.11
Оглавление  11 Глава 10. Глубокая нейроэволюция ......................................................251 10.1 Технические требования ............................................................................251 10.2 Глубокая нейроэволюция для глубокого обучения с подкреплением.....252 10.3 Обучение агента игре Atari Frostbite с использованием глубокой нейроэволюции ..................................................................................253 10.3.1 Игра Atari Frostbite ...............................................................................254 10.3.2 Отображение игрового экрана на действия .......................................254 10.3.3 Обучение игрового агента ...................................................................257 10.4 Обучение агента навыкам игры в Frostbite ...............................................260 10.4.1 Учебная среда Atari ..............................................................................260 10.4.2 Расчет RL на ядрах GPU........................................................................262 10.4.3 Движок эксперимента .........................................................................267 10.5 Запуск эксперимента с игрой Atari Frostbite .............................................271 10.5.1 Настройка рабочей среды ....................................................................271 10.5.2 Запуск эксперимента ...........................................................................272 10.5.3 Визуализация прохождения игры Frostbite .......................................273 10.6 Визуальный инспектор нейроэволюции ...................................................274 10.6.1 Настройка рабочей среды ....................................................................274 10.6.2 Использование VINE для визуализации эксперимента ....................274 10.7 Упражнения .................................................................................................276 10.8 Заключение..................................................................................................276 ЧАСТЬ IV. Обсуждение результатов и заключительные замечания ................................................................277 Глава 11. Лучшие методы, советы и подсказки ...............................279 11.1 Первичный анализ задачи .........................................................................279 11.1.1 Предварительная обработка данных ..................................................280 11.1.2 Исследование проблемной области ....................................................282 11.1.3 Написание хороших симуляторов ......................................................282 11.2 Выбор оптимального метода поисковой оптимизации ...........................283 11.2.1 Целеориентированный поиск оптимального решения ....................283 11.2.2 Оптимизация поиском новизны ........................................................284 11.3 Качественная визуализация .......................................................................285 11.4 Настройка гиперпараметров ......................................................................285 11.5 Метрики качества модели ..........................................................................287 11.5.1 Точность ................................................................................................287 11.5.2 Отклик...................................................................................................287 11.5.3 Оценка F1 ..............................................................................................287 11.5.4 ROC AUC ................................................................................................288 11.5.5 Достоверность ......................................................................................289 11.6 Python, кодирование, советы и рекомендации .........................................289 11.6.1 Советы и рекомендации ......................................................................290 11.6.2 Рабочая среда и инструменты программирования ...........................291 11.7 Заключение..................................................................................................292
Стр.12
12  Оглавление Глава 12. Заключительные замечания ................................................293 12.1 Что вы узнали в этой книге ........................................................................293 12.1.1 Обзор методов нейроэволюции ..........................................................293 12.1.2 Библиотеки Python и настройка среды разработки ..........................295 12.1.3 Использование NEAT для оптимизации решения задачи XOR ........296 12.1.4 Балансировка тележки с обратным маятником.................................296 12.1.5 Автономное прохождение лабиринта ................................................298 12.1.6 Метод оптимизации поиском новизны .............................................299 12.1.7 Зрительное различение с NEAT на основе гиперкуба .......................300 12.1.8 Метод ES-HyperNEAT и задача сетчатки ............................................301 12.1.9 Коэволюция и метод SAFE ...................................................................302 12.1.10 Глубокая нейроэволюция ..................................................................302 12.2 Куда двигаться дальше ................................................................................303 12.2.1 Uber AI Labs ...........................................................................................304 12.2.2 alife.org ..................................................................................................304 12.2.3 Открытая эволюция в Reddit ...............................................................304 12.2.4 Каталог программного обеспечения NEAT ........................................304 12.2.5 arXiv.org ................................................................................................305 12.2.6 Оригинальная публикация про алгоритм NEAT ................................305 12.3 Заключение..................................................................................................305 Предметный указатель ..............................................................................306
Стр.13

Облако ключевых слов *


* - вычисляется автоматически