Глубокое обучение и игра в го
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Перевод:
Райтман М. А.
Год издания: 2020
Кол-во страниц: 372
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Специалитет
ISBN: 978-5-97060-769-5
Артикул: 739801.01.99
Доступ онлайн
В корзину
Древняя стратегическая игра го представляет собой отличный пример для демонстрации возможностей искусственного интеллекта. В 2016 году система, основанная на принципах глубокого обучения, потрясла мир го, победив одного из чемпионов. В данной книге вы познакомитесь с методами глубокого обучения и научитесь создавать го-ботов. По мере чтения вы будете применять все более сложные методы и стратегии, используя библиотеку глубокого обучения Keras, написанную на языке Python. Вы будете с удовольствием наблюдать за тем, как ваш бот осваивает игру го, и узнаете о вариантах применения полученных навыков ко множеству других задач! Издание предназначено широкому кругу читателей, знакомых с языком Python и желающих на практике познакомиться с методами глубокого обучения.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Магистратура
- 09.04.02: Информационные системы и технологии
- ВО - Специалитет
- 09.05.01: Применение и эксплуатация автоматизированных систем специального назначения
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Макс Памперла и Кевин Фергюсон Глубокое обучение и игра в го
Max Pumperla and Kevin Ferguson Deep Learning and the Game of Go
Макс Памперла и Кевин Фергюсон Глубокое обучение и игра в го Москва, 2020
УДК 004.891 ББК 32.972.13 П15 Памперла М., Фергюсон К. П15 Глубокое обучение и игра в го / пер. с анг. М. А. Райтмана. – М.: ДМК Пресс, 2020. – 372 с.: ил. ISBN 978-5-97060-769-5 Древняя стратегическая игра го представляет собой отличный пример для демонстрации возможностей искусственного интеллекта. В 2016 году система, основанная на принципах глубокого обучения, потрясла мир го, победив одного из чемпионов. В данной книге вы познакомитесь с методами глубокого обучения и научитесь создавать го-ботов. По мере чтения вы будете применять все более сложные методы и стратегии, используя библиотеку глубокого обучения Keras, написанную на языке Python. Вы будете с удовольствием наблюдать за тем, как ваш бот осваивает игру го, и узнаете о вариантах применения полученных навыков ко множеству других задач! Издание предназначено широкому кругу читателей, знакомых с языком Python и желающих на практике познакомиться с методами глубокого обучения. В России можно отыскать десятки тысяч ценителей игры го. Во многих городах страны функционируют го-клубы. Под эгидой Российской федерации го ежегодно проводятся сотни турниров. Их полный список можно найти на сайте https://gofede ration.ru/. УДК 004.891 ББК 32.972.13 Original English language edition published by Manning Publications USA, USA. Copyright © 2019 by Manning Publications Co. Russian-language edition copyright © 2020 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-617-29532-4 (анг.) Copyright © 2019 by Manning Publications Co ISBN 978-5-97060-769-5 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2020
Содержание Предисловие ..........................................................................................................11 Введение ..................................................................................................................13 Благодарности ........................................................................................................14 Об авторах ...............................................................................................................15 Об иллюстрации на обложке ..............................................................................16 Об этой книге ..........................................................................................................17 Часть I. ОСНОВЫ ..................................................................................................22 На пути к глубокому обучению: введение в машинное обуче ние ..........23 1.1. Что такое машинное обуче ние? .........................................................................24 1.1.1. Связь машинного обуче ния и искусственного интеллекта ......................26 1.1.2. Что можно и чего нельзя сделать с помощью машинного обуче ния .......27 1.2. Пример машинного обучения ............................................................................27 1.2.1. Использование машинного обуче ния в приложениях ..............................30 1.2.2. Обучение с учителем ...................................................................................31 1.2.3. Обучение без учителя ..................................................................................33 1.2.4. Обучение с подкреплением .........................................................................33 1.3. Глубокое обуче ние ..............................................................................................35 1.4. Что вы узнаете из этой книги? ...........................................................................36 1.5. Резюме .................................................................................................................37 Глава 2. Игра го как проблема машинного обуче ния ...................................38 2.1. Почему игры? ......................................................................................................38 2.2. Краткое введение в игру го ................................................................................39 2.2.1. Описание доски ............................................................................................39 2.2.2. Размещение и захват камней ......................................................................40 2.2.3. Завершение игры и подсчет очков .............................................................41 2.2.4. Правило ко ....................................................................................................43 2.3. Фора .....................................................................................................................44 2.4. Дополнительные ресурсы ...................................................................................44 2.5. Чему можно научить машину? ...........................................................................44 2.5.1. Выбор ходов в дебюте ..................................................................................45 2.5.2. Поиск игровых состояний ...........................................................................45 2.5.3. Сокращение количества рассматриваемых ходов .....................................45 2.5.4. Оценка игровых состояний .........................................................................46 2.6. Определение силы ИИ для игры в го .................................................................47 2.6.1. Традиционные ранги го ...............................................................................47 2.6.2. Сравнительный анализ вашего ИИ для игры в го .....................................48 2.7. Резюме ..................................................................................................................48
Содержание Глава 3. Реализация первого бота для игры в го ..........................................49 3.1. Представление игры го средствами языка Python ...........................................49 3.1.1. Реализация доски для игры в го ..................................................................52 3.1.2. Отслеживание связанных групп камней в игре го ....................................52 3.1.3. Размещение и захват камней на доске для игры в го................................54 3.2. Фиксация игрового состояния и проверка допустимости ходов .....................56 3.2.1. Самозахват....................................................................................................57 3.2.2. Правило ко ....................................................................................................58 3.3. Завершение игры ................................................................................................60 3.4. Создание первого слабого бота для игры в го ...................................................63 3.5. Ускорение игрового процесса с помощью Zobrist-хеширования ....................66 3.6. Игра против собственного бота .........................................................................71 3.7. Резюме ..................................................................................................................73 Часть II. МАШИННОЕ ОБУЧЕ НИЕ И ИГРОВОЙ ИИ .................................74 Глава 4. Игры и поиск по дереву ........................................................................75 4.1. Классификация игр .............................................................................................76 4.2. Прогнозирование действий противника с помощью алгоритма минимаксного поиска ...............................................................................................77 4.3. Крестики-нолики: пример использования минимаксного алгоритма ...........80 4.4. Сокращение пространства поиска путем редукции .........................................83 4.4.1. Сокращение глубины поиска с помощью оценки позиции ..........................85 4.4.2. Сокращение ширины поиска путем альфа-бета-отсечения .....................88 4.5. Оценка игрового состояния методом Монте-Карло ........................................92 4.5.1. Реализация алгоритма Монте-Карло средствами языка Python ..............96 4.5.2. Выбор ветви для исследования ...................................................................99 4.5.3. Применение алгоритма Монте-Карло к игре го ......................................101 4.6. Резюме ...............................................................................................................103 Глава 5. Знакомство с нейронными сетями ..................................................105 5.1. Простой пример использования: классификация рукописных цифр ...........106 5.1.1. Набор данных MNIST .................................................................................106 5.1.2. Предварительная обработка данных MNIST ............................................107 5.2. Основы нейронных сетей .................................................................................114 5.2.1. Логистическая регрессия как простая искусственная нейронная сеть .....114 5.2.2. Сети с несколькими размерностями выходного сигнала .......................114 5.3. Сети прямого распространения .......................................................................116 5.4. Оценка предсказаний. Функции потерь и оптимизация ...............................119 5.4.1. Что такое функция потерь? .......................................................................119 5.4.2. Среднеквадратическая ошибка .................................................................119 5.4.3. Поиск минимумов функции потерь .........................................................120 5.4.4. Градиентный спуск для нахождения минимумов ...................................121 5.4.5. Стохастический градиентный спуск для функций потерь ......................123 5.4.6. Метод обратного распространения ошибки ............................................124 5.5. Обучение нейронной сети средствами языка Python ....................................127 5.5.1. Слои нейронной сети в Python ..................................................................127
Содержание 7 5.5.2. Слои активации в нейронных сетях .........................................................129 5.5.3. Плотные слои в Python как компоненты сетей прямого распространения .................................................................................................130 5.5.4. Создание последовательных нейронных сетей средствами языка Python ...................................................................................................................131 5.5.5. Применение сети к задаче классификации рукописных цифр ..............134 5.6. Резюме ...............................................................................................................135 Глава 6. Создание нейронной сети для данных игры го ...........................137 6.1. Кодирование игрового состояния для подачи на вход нейронной сети .......139 6.2. Генерирование обучаю щих игровых данных методом поиска по дереву ....142 6.3. Использование библиотеки глубокого обуче ния Keras ..................................144 6.3.1. Принципы проектирования с помощью библиотеки Keras ....................145 6.3.2. Установка библиотеки глубокого обуче ния Keras ....................................145 6.3.3. Применение библиотеки Keras к рассмотренному ранее примеру ........146 6.3.4. Предсказание ходов в игре го с помощью нейронной сети прямого распространения и библиотеки Keras ................................................................148 6.4. Анализ пространства с помощью сверточных сетей ......................................152 6.4.1. Назначение сверточных слоев ..................................................................152 6.4.2. Создание сверточных сетей с помощью библиотеки Keras ....................156 6.4.3. Сокращение пространственной размерности с помощью слоев пулинга .................................................................................................................157 6.5. Предсказание вероятностей для ходов в игре го ............................................158 6.5.1. Использование функции активации softmax в последнем слое .............159 6.5.2. Перекрестная энтропия как функция потерь для задач классификации ....................................................................................................159 6.6. Создание более глубоких сетей с помощью прореживания и блоков линейной ректификации ........................................................................................162 6.6.1. Исключение нейронов методом регуляризации .....................................162 6.6.2. Функция активации ReLU ..........................................................................163 6.7. Объединяем все вместе и создаем более мощную сеть для предсказания ходов в игре го ..........................................................................164 6.8. Резюме ...............................................................................................................167 Глава 7. Глубокое обуче ние бота на основе данных ...................................169 7.1. Импорт записей партий в го .............................................................................170 7.1.1. Формат файла SGF ......................................................................................171 7.1.2. Загрузка и воспроизведение партий в го с сервера KGS..........................172 7.2. Подготовка игровых данных для глубокого обуче ния ....................................173 7.2.1. Воспроизведение партии в го на основе ее записи в формате SGF ........173 7.2.2. Создание обработчика данных игры го ....................................................175 7.2.3. Создание генератора данных игры го для обеспечения их эффективной загрузки ...................................................................................182 7.2.4. Параллельная обработка игровых данных и генераторы ........................183 7.3. Обучение глубокой сети на основе партий, сыгранных человеком ..............184 7.4. Создание более реалистичных кодировщиков данных игры го ....................189
Содержание 7.5. Эффективное обуче ние с помощью адаптивных градиентов .......................191 7.5.1. Затухание и импульс в СГС ........................................................................191 7.5.2. Оптимизация нейронных сетей с помощью метода Adagrad .................192 7.5.3. Уточнение адаптивных градиентов с помощью Adadelta .......................194 7.6. Проведение экспериментов и оценка эффективности ..................................194 7.6.1. Руководство по тестированию архитектур и гиперпараметров .............195 7.6.2. Оценка показателей производительности для обучаю щих и тестовых данных ...............................................................................................197 7.7. Резюме ................................................................................................................198 Глава 8. Развертывание ботов ..........................................................................199 8.1. Создание агента для предсказания ходов на основе глубокой нейронной сети........................................................................................................200 8.2. Создание веб-интерфейса для бота .................................................................202 8.2.1. Пример бота для игры в го ........................................................................205 8.3. Обучение и развертывание бота для игры в го в облаке ................................206 8.4. Взаимодействие с другими ботами по протоколу Go Text Protocol ...............207 8.5. Локальные игры против других ботов .............................................................209 8.5.1. Пропуск хода и выход из игры ..................................................................210 8.5.2. Запуск игры бота против других ботов.....................................................211 8.6. Развертывание бота для игры в го на онлайн-сервере ..................................216 8.6.1. Регистрация бота на онлайн-сервере для игры в го ................................219 8.7. Резюме ................................................................................................................219 Глава 9. Обучение на практике: обуче ние с подкреплением ...................221 9.1. Цикл обуче ния с подкреплением .....................................................................222 9.2. Данные опыта ....................................................................................................223 9.3. Создание обучаю щегося агента .......................................................................226 9.3.1. Сэмплирование из распределения вероятностей ...................................227 9.3.2. Обрезка распределения вероятностей .....................................................229 9.3.3. Инициализация агента ..............................................................................229 9.3.4. Загрузка агента с диска и его сохранение на диск...................................230 9.3.5. Реализация функции выбора хода ............................................................231 9.4. Игра бота с самим собой: практика компьютерной программы...................233 9.4.1. Представление данных опыта ...................................................................233 9.4.2. Симуляция игр ...........................................................................................235 9.5. Резюме ...............................................................................................................237 Глава 10. Обучение с подкреплением и градиенты политики .................239 10.1. Выявление хороших решений с помощью случайных игр ..........................240 10.2. Изменение политик нейронной сети методом градиентного спуска .........244 10.3. Советы по обуче нию бота на основе его игры с самим собой .....................248 10.3.1. Оценка прогресса .....................................................................................248 10.3.2. Измерение небольших различий в силе .................................................249 10.3.3. Настройка алгоритма стохастического градиентного спуска (СГС) .....250 10.4. Резюме .............................................................................................................254
Содержание 9 Глава 11. Обучение с подкреплением и методы на основе ценности действий ..............................................................................................255 11.1. Игры и алгоритм Q-обуче ния.........................................................................256 11.2. Реализация алгоритма Q-обуче ния в Keras ...................................................260 11.2.1. Создание сетей с двумя входами с помощью Keras ...............................260 11.2.2. Реализация ε-жадной политики с помощью Keras ................................264 11.2.3. Обучение сети, реализующей функцию ценности действия ................267 11.3. Резюме .............................................................................................................268 Глава 12. Обучение с подкреплением и методы типа «актор–критик» ....................................................................................................269 12.1. Преимущество позволяет выявить важные решения...................................270 12.1.1. Что такое преимущество? ........................................................................270 12.1.2. Вычисление преимущества в процессе игры бота с самим собой ........272 12.2. Создание нейронной сети для обуче ния методом «актор–критик» ...........274 12.3. Игра с агентом типа «актор–критик» ............................................................277 12.4. Обучение агента типа «актор–критик» на данных опыта ...........................278 12.5. Резюме .............................................................................................................283 Часть III. БОЛЬШЕ, ЧЕМ СУММА ВСЕХ ЧАСТЕЙ .....................................284 Глава 13. AlphaGo: собираем все вместе .......................................................285 13.1. Обучение глубоких нейронных сетей для создания бота AlphaGo ..............288 13.1.1. Сетевые архитектуры, используемые в программе AlphaGo ................288 13.1.2. Кодировщик доски AlphaGo ....................................................................290 13.1.3. Обучение сетей политики в стиле AlphaGo ............................................293 13.2. Бутстрэппинг игр бота с самим собой из сетей политики ...........................295 13.3. Создание сети ценности на основе данных, полученных в ходе игры бота с самим собой ..................................................................................................296 13.4. Повышение эффективности поиска с помощью сетей политики и ценности................................................................................................................297 13.4.1. Нейронные сети и развертывания ММК ................................................298 13.4.2. Поиск по дереву с помощью комбинированной функции ценности ...299 13.4.3. Реализация алгоритма поиска AlphaGo ..................................................302 13.5. Практические советы, касающиеся обуче ния бота AlphaGo ........................307 13.6. Резюме .............................................................................................................308 Глава 14. AlphaGo Zero: интеграция поиска по дереву и обуче ния с подкреплением ..................................................................................................310 14.1. Создание нейронной сети для поиска по дереву ..........................................311 14.2. Управление процессом поиска по дереву с помощью нейронной сети ......313 14.2.1. Спуск по дереву ........................................................................................316 14.2.2. Расширение дерева ..................................................................................319 14.2.3. Выбор хода ................................................................................................321 14.3. Обучение ..........................................................................................................322 14.4. Повышение эффективности разведки с помощью шума Дирихле .............326
Содержание 14.5. Современные методы создания более глубоких нейронных сетей .............327 14.5.1. Пакетная нормализация ..........................................................................328 14.5.2. Остаточные сети .......................................................................................328 14.6. Дополнительные ресурсы ...............................................................................329 14.7. Заключение ......................................................................................................330 14.8. Резюме .............................................................................................................331 Приложение А. Математические основы .......................................................332 Векторы, матрицы, и не только: основные конструкции линейной алгебры .....332 Векторы: одномерные данные ...........................................................................333 Матрицы: двумерные данные ............................................................................334 Тензоры 3-го ранга ..................................................................................................335 Тензоры 4-го ранга ..............................................................................................337 Математический анализ за пять минут: производные и нахождение максимума ...............................................................................................................337 Приложение Б. Алгоритм обратного распространения ошибки ..............340 Пара слов о нотации ................................................................................................340 Алгоритм обратного распространения ошибки для сетей прямого распространения .....................................................................................................341 Обратное распространение ошибки для последовательных нейронных сетей .........................................................................................................................342 Обратное распространение ошибки для всех нейронных сетей в целом ...........343 Вычислительные сложности, связанные с обратным распространением ошибки .....................................................................................................................343 Приложение В. Программы и серверы для игры в го ................................345 Программы для игры в го .......................................................................................345 GNU Go ..................................................................................................................345 Pachi ......................................................................................................................346 Серверы для игры в го .............................................................................................346 OGS .......................................................................................................................346 IGS .........................................................................................................................347 Tygem ....................................................................................................................347 Приложение Г. Обучение и развертывание ботов с помощью Amazon Web Services ...........................................................................................348 Обучение моделей на сервисе AWS ........................................................................355 Размещение бота на сервисе AWS с помощью протокола HTTP ..........................356 Приложение Д. Отправка бота на онлайн-сервер для игры в го ............358 Регистрация и активация бота на сервере OGS .....................................................358 Локальное тестирование OGS-бота ........................................................................360 Развертывание OGS-бота на сервисе AWS .............................................................362 Предметный указатель .......................................................................................365
Предисловие Для нас, членов команды AlphaGo, история этого алгоритма стала главным приключением всей жизни. Все началось, как это часто бывает, с небольшого шага – обучения простой сверточной нейронной сети на записях партий в го, сыгранных сильными игроками-людьми. Это привело к кардинальным прорывам в области машинного обучения, а также подарило нам несколько незабываемых событий, включая матчи против таких грозных профессиональных игроков, как Фань Хуэй, Ли Седоль и Ки Джи. Мы гордимся тем, что эти матчи не только повлияли на манеру игры в го по всему миру, но и привлекли внимание множества людей к теме искусственного интеллекта. Но почему, спросите вы, нас должны интересовать игры? Подобно тому как дети используют игры для изучения тех или иных аспектов реального мира, исследователи в области машинного обучения используют их для подготовки программ-агентов. В этом смысле проект AlphaGo является частью стратегии компании DeepMind по использованию игр в качестве симулированных микрокосмов реальности. Это помогает нам развивать область искусственного интеллекта и тренировать обучающихся агентов, чтобы в будущем создавать интеллектуальные системы, способные решать самые сложные мировые проблемы. Работа алгоритма AlphaGo напоминает два режима мышления, которые нобелевский лауреат Даниэль Канеман описал в своей книге «Думай медленно, решай быстро», посвященной вопросам человеческого познания. В случае с AlphaGo аналогом медленного режима мышления является алгоритм планирования, называемый поиском по дереву методом Монте-Карло, который просчитывает последовательность игровых состояний, начиная с заданной позиции, путем расширения дерева игры, включающего возможные будущие ходы и действия противника. Однако при наличии около 10170 (1 со 170 нулями) возможных игровых позиций просчет всех последовательностей оказывается невозможным. Чтобы обойти эту проблему и сократить пространство поиска, мы объединили алгоритм поиска по дереву методом Монте-Карло с компонентом глубокого обучения, состоящего из двух нейронных сетей, способных оценивать вероятность победы каждого из игроков и выбирать наиболее перспективные ходы. В более поздней версии алгоритма, AlphaZero, используются принципы обучения с подкреплением, что позволяет программе играть против самой себя, не полагаясь на записи партий, сыгранных человеком. Этот алгоритм с нуля обучился игре в го (а также в шахматы и сёги), часто обнаруживая (и в дальнейшем отбрасывая) многие из стратегий, разработанных за сотни лет игроками-людьми, и создав множество собственных уникальных стратегий. Авторы этой книги Макс Памперла и Кевин Фергюсон станут вашими проводниками в увлекательном путешествии от AlphaGo до более поздних версий этого алгоритма. В ходе чтения данного руководства вы не только реализуете движок для игры в го в стиле AlphaGo, но и получите отличное практическое понимание некоторых из основополагающих строительных блоков современных алгоритмов ИИ: поиска по дереву методом Монте-Карло, глубокого обучения и обуче
Предисловие ния с подкреплением. Авторы искусно объединили эти темы, используя игру го в качестве захватывающего и доступного для понимания примера. В дополнение к этому вы изучите основы одной из самых красивых и сложных игр, когда-либо изобретенных человечеством. Кроме того, эта книга призывает вас с самого начала приступить к созданию работающего го-бота, который будет постепенно эволюционировать от алгоритма, выбирающего ходы совершенно случайным образом, до сложного самообучающегося ИИ для игры в го. Помимо исчерпывающих объяснений основополагающих концепций, авторы предоставили исполняемый код на языке Python. Кроме того, они не пренебрегли такими темами, как форматы данных, развертывание бота и облачные вычисления, необходимыми для обеспечения работоспособности программы для игры в го. Таким образом, книга «Глубокое обучение и игра в го» представляет собой легко читаемое и увлекательное введение в тему искусственного интеллекта и машинного обучения. Объединяя в себе некоторые из самых захватывающих этапов развития области искусственного интеллекта, она превращается в интереснейший вводный курс по данному предмету. Любой читатель, прошедший этот путь от начала до конца, приобретет необходимые знания для понимания и создания современных систем ИИ, применяемых в ситуациях, требующих сочетания «быстрого» сопоставления образов с «медленным» планированием, которые являются аналогом двух режимов мышления, необходимых для осуществления базового процесса познания. – Тор Грепель, научный сотрудник компании DeepMind, от имени команды AlphaGo компании DeepMind
Введение Когда в начале 2016 года о программе AlphaGo заговорили в новостях, мы были чрезвычайно взволнованы этим новаторским достижением в сфере компьютерных игр. В то время считалось, что до создания искусственного интеллекта для игры в го, способного играть на человеческом уровне, оставалось не менее 10 лет. Мы тщательно следили за играми и были готовы пожертвовать сном ради того, чтобы посмотреть трансляции матчей в прямом эфире. Но мы были в хорошей компании – миллионы людей по всему миру были зачарованы играми AlphaGo против Фань Хуэя, Ли Седоля, Ки Цжи и других профессиональных игроков. Вскоре после появления этого алгоритма мы приступили к работе над небольшой библиотекой с открытым исходным кодом, которую назвали BetaGo (github. com/maxpumperla/betago), чтобы посмотреть, сможем ли мы самостоятельно реализовать некоторые базовые механизмы, лежащие в основе алгоритма AlphaGo. Идея BetaGo состояла в том, чтобы продемонстрировать интересующимся разработчикам некоторые из методов, использующихся в этой программе. Несмотря на то что наших ресурсов (времени, вычислительной мощности или интеллекта) было недостаточно, чтобы конкурировать с невероятным достижением компании DeepMind, мы получили огромное удовольствие в процессе создания собственного го-бота. С тех пор нам много раз предоставлялась возможность рассказать об ИИ для игры в го. Поскольку мы являемся не только поклонниками этой игры, но и практиками машинного обучения, мы иногда забывали о том, как мало широкая публика могла вынести из событий, за которыми мы так пристально следили. Ирония заключалась в том, что наблюдающие за матчами миллионы людей, по-ви ди мо му, делились на две группы: те, кто понимает и любит игру го, но мало знает о машинном обучении; те, кто понимает и ценит машинное обучение, но практически незнаком с правилами игры в го. Для далекого от этих тем человека обе сферы могут казаться одинаково туманными, сложными и трудными для освоения. Несмотря на то что в последние годы все большее количество разработчиков программного обеспечения задействует методы машинного обучения и, в частности, глубокого обучения, игра в го остается в значительной степени неизвестной многим жителям стран Запада. Мы считаем это весьма прискорбным и искренне надеемся, что данная книга позволит сблизить две вышеупомянутые группы людей. Мы убеждены в том, что использованию принципов, лежащих в основе алгоритма AlphaGo, можно на практике обучить широкую аудиторию разработчиков программного обеспечения. Наслаждение игрой го и ее понимание приходит в процессе игры и экспериментов. То же самое можно сказать о машинном обучении и любой другой дисциплине. Если в ходе изучения этой книги вы проникнетесь энтузиазмом в отношении игры го или машинного обучения (надеемся, и того, и другого!), мы будем считать, что выполнили свою задачу. Если, помимо этого, вы научитесь создавать и развертывать боты для игры в го, а также проводить собственные эксперименты, вам станет доступно множество других интересных ИИ-приложений. Наслаждайтесь путешествием!
Благодарности Мы хотели бы поблагодарить всех сотрудников издательства Manning, сделавших публикацию этой книги возможной. В частности, мы благодарим наших неутомимых редакторов: Марину Майклз за то, что она помогла нам преодолеть первые 80 % пути, и Дженни Стаут за помощь в преодолении вторых 80 %. Выражаем благодарность нашему техническому редактору Чарльзу Федуке и техническому корректору Тане Вилке за проверку кода. Благодарим всех рецензентов, предоставивших ценные отзывы: Александра Ерофеева, Алессандро Пузиелли, Алекса Орланди, Бурка Хуфнагеля, Крейга С. Коннелла, Даниэля Береца, Дениса Крайса, Доминго Салазара, Хельмута Хаушильда, Джеймса А. Худа, Джасбу Симпсона, Джин Лазароу, Мартина Мёллера, Скарбиникса Педерсена, Матиаса Поллигкайта, Ната Луенгнарюмитчая, Пьерлуиджи Рити, Сэма Де Костера, Шона Линдсея, Тайлера Коваллиса и Урсина Стосса. Также спасибо всем, кто экспериментировал или участвовал в разработке нашего проекта BetaGo, особенно Эллиоту Герчаку и Кристоферу Мэлону. Наконец, благодарим всех, кто когда-либо пытался научить компьютер играть в го и поделился результатами своих исследований. Я хотел бы поблагодарить Карли за ее терпение и поддержку, а также папу и Джиллиан за то, что научили меня писать. – Кевин Фергюсон Особая благодарность Кевину за помощь в разъяснении материала, Андреасу за множество плодотворных дискуссий и Энн за ее постоянную поддержку. – Макс Памперла
Об авторах Макс Памперла является специалистом по работе с данными и инженером, занимающимся глубоким обучением в компании-разработчике ИИ-систем Skymind. Также он является сооснователем платформы глубокого обучения aetros.com. Кевин Фергюсон на протяжении 18 лет работал в области создания распределенных систем и анализа данных. Он является специалистом по анализу данных в компании Honor и имеет опыт работы в таких компаниях, как Google и Meebo. Вместе Макс и Кевин разработали BetaGo, один из очень немногих го-ботов с открытым исходным кодом, созданных на языке Python.
Об иллюстрации на обложке На обложке книги «Глубокое обучение и игра в го» изображен император Монтоку, правивший Японией с 850 по 858 год. Этот портрет был написан акварелью на шелке неизвестным художником. В 2006 году его репродукция была включена в раздел «Императоры и императрицы прошлого» японского исторического журнала Bessatsu Rekishi Dokuhon. Подобные изображения напоминают нам об уникальности и индивидуальности древних городов и регионов мира. В то время по одежде можно было однозначно сказать, к какому из двух городов, разделенных несколькими десятками километров, принадлежит тот или иной человек. С тех пор дресс-код изменился, и от былой самобытности разных уголков мира не осталось и следа. Сейчас жителей разных континентов бывает трудно отличить друг от друга. Возможно, мы променяли культурное и визуальное разнообразие на более разнообразную и интересную личную и интеллектуальную жизнь, или на более разнообразную жизнь в плане технологий. Мы, сотрудники издательства Manning, стремимся дополнить изобретательность, новаторство и увлеченность, пробуждаемые книгами по компьютерной тематике, обложками, отражающими богатый и разнообразный местный колорит прошлого.
- document_id: 358822
- product_id: 1094964
- ins_time (Добавлено на сайт): 2020-04-03 22:40:55
- upd_time (Обновлено на сайте): 2020-04-03 22:40:55
- upp_upd_date (Дата изменения в УПП): 2022-07-06
- Full PDF: WARN Путь не доступен (не определен) /mnt/znanium_fullpdf/booksfull/done/1094/1094964.pdf
- PDF pages: WARN Количество страниц документа (372) не соответствует физическому наличию (373). Путь /mnt/resources/resources/1094/1094964/pdf
- XML pages: WARN Количество страниц документа (372) не соответствует физическому наличию (373). Путь: /mnt/resources/resources/1094/1094964/xml
- text *.idx: OK
- Количества стр. 358822.txt и 358822.cleared.txt : OK
- Full text: OK /mnt/resources/resources/1094/1094964/txt/1094964.txt
- Оглавления: OK Путь /mnt/resources/resources/1094/1094964/txt/1094964.toc.txt
Доступ онлайн
В корзину