Здравствуйте, коллеги!
С удовольствием сообщаем, что в наших издательских планах на начало будущего года — превосходная новая книга по глубокому обучению «Generative Deep Learning» от Дэвида Фостера
Автор, сравнивающий эту работу ни много ни мало с высадкой «Аполлона» на Луну, опубликовал на «Медиуме» подробный обзор своего шедевра, который предлагаем считать близким к реальности тизером.
Приятного чтения, следите за анонсом!
Мое 459-дневное путешествие от блога к книге и обратно
20:17 UTC, 20 июля 2019
50 годами ранее, минута в минуту – прилунился модуль «Игл», пилотируемый Нилом Армстронгом и Баззом Олдрином. Это было высшее проявление инженерной мысли, смелости и подлинной решимости.
Перенесемся на 50 лет вперед – и обнаружим, что вся вычислительная мощность бортового управляющего компьютера КА «Аполлон» (AGC), доставившего этих людей на Луну, сегодня многократно умещается у вас в кармане. На самом деле, вычислительная мощность iPhone 6 позволила бы одновременно довести до Луны 120 миллионов таких космических кораблей как «Аполлон — 11».
Этот факт ни в коем случае не умаляет величия AGC. Учитывая закон Мура, можно взять любое компьютерное устройство и не ошибиться, сказав, что через 50 лет появится машина, которая сможет работать в 2²⁵ раз быстрее.
Маргарет Гамильтон, руководительница команды программистов, написавших код для AGC, отнеслась к аппаратным ограничениям компьютеров того времени не как к преграде, а как к вызову. Она употребила все имевшиеся в ее распоряжении ресурсы, чтобы совершить немыслимое.
Маргарет Гамильтон и код для AGC (источник: Science History Images)
И вот, я хочу рассказать вам о…
Книге «Генеративное глубокое обучение»
459 дней назад я получил письмо из издательства «O’Reilly Media», в котором меня спросили, насколько интересно мне было бы написать книгу. Эта идея мне тогда понравилась, так что я согласился и решил написать максимально современное руководство по генеративному моделированию, точнее – практичную книгу, в которой бы рассказывалось, как создавать отвечающие духу времени модели глубокого обучения, которые умеют рисовать, писать тексты, сочинять музыку и играть.
Самое важное – мне хотелось, чтобы по прочтении этой книги читатель подробно разобрался в генеративном глубоком обучении и попробовал создавать модели, которым по силам поистине удивительные вещи; причем, эти модели не требуют огромных и дорогостоящих вычислительных ресурсов, которые все равно работают достаточно медленно.
Я глубоко убежден: чтобы усвоить любую техническую тему, нужно начинать с решения мелких задач по ней, но разбираться в них настолько детально, чтобы вам было понятно обоснование всех строк кода до единой.
Если начинать с огромных множеств данных и с таких моделей, на прогон каждой из которых требуется целый день а не час, то не выучите ничего сверх минимума – просто потратите на обучение в 24 раза больше времени.
Самое важное, чему нас научила посадка Аполлона на Луну, заключается в том, что можно достичь совершенно поразительных результатов, располагая очень скромными вычислительными ресурсами. Ровно такое же впечатление сложится у вас о генеративном моделировании после того как вы прочтете мою книгу.
А что за дела с попугаем?
Писать для O’Reilly тем более приятно, поскольку они подбирают для обложки твоей книги анималистическую иллюстрацию. Мне достался попугай синелобый краснохвостый, которого я в порыве чувств окрестил Нил Уингстронг.
Нил Уингстронг из рода Попугаев.
Итак, попугай приземлился. Чего же следует ожидать от книги?
О чем эта книга?
Эта книга – прикладное руководство по генеративному моделированию.
В ней изложены все базовые вещи, помогающие построить простейшие генеративные модели. Затем материал постепенно усложняется до все более продвинутых моделей, шаг за шагом. Все разделы сопровождаются практичными примерами, архитектурными схемами и кодом.
Эта книга – для всех, кто хочет глубже разобраться в наступившем хайпе по поводу генеративного моделирования. Для чтения книги не требуется знаний по глубокому обучению, все примеры кода даны на Python.
Что рассмотрено в книге?
Я попытался осветить в книге все ключевые разработки в области генеративного моделирования за последние 5 лет. Получается такая шкала.
Книга разделена на две части, краткий обзор глав дан ниже:
Часть 1: Введение в генеративное глубокое обучение
Цель первых четырех глав книги – познакомить вас с ключевыми приемами, которые понадобятся вам, чтобы приступить к построению генеративных моделей глубокого обучения.
1. Генеративное моделирование
Мы в широком контексте рассмотрим дисциплину генеративного моделирования и тип задач, которые мы пытаемся решать при помощи вероятностного подхода. Затем мы исследуем наш первый пример простейшей вероятностной генеративной модели и проанализируем, почему может потребоваться прибегнуть к методам глубокого обучения в случае усложнения генеративной задачи.
2. Глубокое обучение
Эта глава поможет вам сориентироваться в инструментах глубокого обучения и приемах, необходимых для того, чтобы приступить к созданию более сложных генеративных моделей. Здесь вы познакомитесь с Keras, фреймворком для построения нейронных сетей, которые могут пригодиться для конструирования и обучения некоторых ультрасовременных архитектур глубоких нейронных сетей, рассматриваемых в литературе.
3. Вариационные автоэнкодеры
В этой главе мы рассмотрим нашу первую модель для генеративного глубокого обучения – вариационный автоэнкодер. Этот мощный подход поможет нам с нуля генерировать реалистичные лица и изменять имеющиеся изображения – например, добавлять на лицо улыбку или менять цвет волос.
4. Генеративно-состязательные сети (GAN)
В этой главе рассмотрена одна из наиболее успешных разновидностей генеративного моделирования, появившихся в последние годы – генеративно-состязательная сеть. На основе этого красивого фреймворка, предназначенного для структурирования задачи генеративного моделирования, построены многие из самых современных генеративных моделей. Мы рассмотрим, как он поддается тонкой настройке и почему позволяет постоянно расширять границы того, что достижимо средствами генеративного моделирования.
Часть 2: Учим машины рисовать, писать, сочинять музыку и играть
В части 2 представлены кейсы, помогающие понять, как техники генеративного моделирования могут применяться для решения конкретных задач.
5. Рисование
В этой главе рассмотрены две техники, связанные с машинным рисованием. Сначала мы обсудим нейронную сеть CycleGAN, которая, как понятно из названия, является адаптацией архитектуры GAN, позволяющей модели научиться преобразовывать фотографию в живописное произведение, написанное в определенном стиле (или наоборот). Также мы поговорим о нейронной технике переноса, встроенной во многие мобильные приложения для редактирования фотографий, помогающей перенести стиль картины на фотографию, чтобы создать впечатление, что данная фотография – просто еще одна из картин все того же художника.
6. Написание текстов
В этой главе мы обратимся к машинному написанию текстов; в данной предметной области приходится сталкиваться с иными вызовами, нежели при генерации изображений. Здесь вы познакомитесь с рекуррентными нейронными сетями (RNN) – архитектурой, удобной при решении задач, связанных с последовательными данными. Также мы обсудим, как устроена архитектура энкодер-декодер и сами напишем генератор вопросов и ответов.
7. Сочинение музыки
Эта глава посвящена генерации музыки, и эта задача также связана с генерацией последовательных данных. Но, в отличие от написания текстов, в данном случае возникают и дополнительные сложности – например, моделирование музыкального тембра и ритма. Мы убедимся, что многие техники, использовавшиеся при генерации текста, применимы и в этой предметной области, а также исследуем архитектуру глубокого обучения под названием MuseGAN, которая адаптирует идеи из главы 4 (о GAN) к музыкальным данным.
8. Игра
В этой главе рассказано, как генеративные модели совместимы с другими областями машинного обучения, среди которых – обучение с подкреплением. Мы обсудим одну из интереснейших научных статей, вышедших в последнее время, которая называется ‘World Models’ (Модели мира). Авторы этой статьи показывают, как генеративная модель может использоваться в качестве среды, в которой обучается агент, фактически позволяя агенту «выдумать» возможные сценарии будущего и вообразить, что произойдет, если будут предприняты определенные действия, и все это – полностью в пределах контекста нашей концептуальной модели окружающей среды.
9. Будущее генеративного моделирования
Здесь мы подытоживаем существующий ныне технологический ландшафт генеративного моделирования и оглядываемся назад, вспоминая некоторые техники, представленные в этой книге. Мы также поговорим о том, как наиболее современные архитектуры нейронных сетей, доступные сегодня, например, GPT-2 и BigGAN, могут изменить наши представления о творческой деятельности. Интересно, удастся ли когда-нибудь создать искусственную систему, которая могла бы генерировать произведения, неотличимые от образцов человеческого изобразительного искусства, литературы и музыки.
10. Заключение
Заключительные мысли о том, почему генеративное глубокое обучение может оказаться одним из наиболее важных технологических направлений в области глубокого обучения в ближайшие 5–10 лет.
Итоги
В мире, где все сложнее отличить реальность от вымысла, жизненно важной становится работа инженеров, подробно понимающих принципы работы генеративных моделей и не боящихся возможных технологических ограничений.
Надеюсь, моя книга поможет вам сделать первые шаги к пониманию этих новейших технологий, а также станет для вас интересным и приятным чтением.
Автор: ph_piter