Генеративное глубокое обучение. Как не мы рисуем картины, пишем романы и музыку - Дэвид Фостер - E-Book

Генеративное глубокое обучение. Как не мы рисуем картины, пишем романы и музыку E-Book

Дэвид Фостер

0,0

Beschreibung

Генеративный ИИ — одна из самых обсуждаемых тем в сфере технологий. Пора разобраться с возможностями TensorFlow и Keras, чтобы с легкостью создавать впечатляющие генеративные модели глубокого обучения, включая вариационные автокодировщики (VAE), генеративно-состязательные сети (GAN), трансформеры, нормализующие потоки, модели на основе энергии и диффузионные модели удаления шума. Дэвид Фостер, начинает с основ глубокого обучения и постепенно переходит к передовым архитектурам. Благодаря его советам и подсказкам вы узнаете, как повысить эффективность обучения и творческие возможности ваших моделей. Книга была полностью обновлена и переработана, чтобы соответствовать текущему развитию генеративного обучения.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 443

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Переводчик Л. Киселева

Дэвид Фостер

Генеративное глубокое обучение. Как не мы рисуем картины, пишем романы и музыку. 2-е межд изд.. — Астана: "Спринт Бук", 2024.

ISBN 978-601-08-3729-4

© ТОО "Спринт Бук", 2024

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

Оглавление

Отзывы о книге
Предисловие
Вступление
Цели и подходы
Предварительные условия
Структура издания
Изменения во втором издании
Прочие ресурсы
Условные обозначения
Примеры кода
Использование программного кода примеров
Благодарности
От издательства
Часть I. Введение в генеративное глубокое обучение
Глава 1. Генеративное моделирование
Что такое генеративное моделирование
Наша первая генеративная модель
Основы теории вероятностей
Классификация генеративных моделей
Код примеров генеративного глубокого обучения
Резюме
Глава 2. Глубокое обучение
Данные для глубокого обучения
Глубокие нейронные сети
Многослойный перцептрон
Сверточные нейронные сети (CNN)
Обучение и оценка CNN
Резюме
Часть II. Методы
Глава 3. Вариационные автокодировщики
Введение
Автокодировщики
Вариационный автокодировщик
Исследование скрытого пространства
Набор данных CelebA
Резюме
Глава 4. Генеративно-состязательные сети
Введение
Глубокая сверточная GAN
Обучение GAN: советы и рекомендации
Генеративно-состязательные сети Вассерштейна со штрафом за градиент
Условные генеративно-состязательные сети
Резюме
Глава 5. Модели авторегрессии
Введение
Сети с долгой краткосрочной памятью
Расширения RNN
PixelCNN
Резюме
Глава 6. Модели нормализующих потоков
Введение
Нормализующие потоки
RealNVP
Другие модели нормализующего потока
Резюме
Глава 7. Модели на основе энергии
Введение
Модели на основе энергии
Резюме
Глава 8. Модели диффузии
Введение
Резюме
Часть III. Практическое применение
Глава 9. Трансформеры
Введение
GPT
Причинно-следственная маскировка
Другие трансформеры
Резюме
Глава 10. Продвинутые GAN
Введение
ProGAN
StyleGAN
StyleGAN2
Другие важные генеративно-состязательные сети
Резюме
Глава 11. Генерирование музыки
Введение
Генерирование музыки с помощью модели трансформера
MuseGAN
Генератор MuseGAN
Резюме
Глава 12. Модели мира
Введение
Обучение с подкреплением
CarRacing
Обзор модели мира
Сбор данных в ходе случайных прогонов
Обучение VAE
Сбор данных для обучения RNN
Обучение сети MDN-RNN
Обучение контроллера
Обучение в мнимом окружении
Резюме
Глава 13. Мультимодальные модели
Введение
DALL.E 2
Imagen
Stable Diffusion
Flamingo
Резюме
Глава 14. Заключение
Хронология генеративного ИИ
Текущее состояние генеративного ИИ
Будущее генеративного ИИ
Заключительные комментарии
Ссылки
Об авторе
Иллюстрация на обложке

Отзывы о книге

В книге «Генеративное глубокое обучение» доступным языком описывается набор инструментов глубокого обучения для генеративного моделирования. Если вы творческая личность, любите возиться с кодом и желаете применить глубокое обучение в своей работе, то эта книга для вас.

Дэвид Ха (David Ha), руководитель отдела стратегии, Stability AI

Отличная книга, в которой подробно рассматриваются основные методы, лежащие в основе современных технологий генеративного глубокого обучения. В ней вы найдете ясные объяснения и остроумные аналогии, подкрепленные дидактическими легко читаемыми примерами кода. Захватывающее исследование одной из самых увлекательных областей искусственного интеллекта!

Франсуа Шолле (François Chollet), создатель Keras

Дэвид Фостер кратко и доходчиво объясняет сложные понятия, дополняя объяснения наглядными иллюстрациями, примерами кода и упражнениями. Отличный источник знаний для студентов и практиков!

Сюзанна Илич (Suzana Ilić), главный менеджер программы ответственного ИИ, Microsoft Azure OpenAI

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

Коннор Лихи (Connor Leahy), генеральный директор Conjecture и соучредитель EleutherAI

Предсказать мир означает понять мир — во всех его проявлениях. В этом смысле генеративный ИИ раскрывает самую суть интеллекта.

Йонас Андрулис (Jonas Andrulis), основатель и генеральный директор Aleph Alpha

Генеративный ИИ реорганизует многие и многие отрасли и создает новое поколение инструментов для творчества. Книга дает уникальную возможность освоить генеративное моделирование и начать творить самостоятельно с помощью этой революционной технологии.

Эд Ньютон-Рекс (Ed Newton-Rex), вице-президент по звуку в Stability AI и композитор

Дэвид научил меня всему, что я знаю о машинном обучении, и умело объяснил основные концепции. «Генеративное глубокое обучение» — моя любимая книга о генеративном ИИ. Она стоит на полке над моим рабочим столом среди других любимых технических книг.

Зак Заутт (Zack Thoutt), директор контроля производства в AutoSalesVelocity

Генеративный ИИ почти наверняка сильно повлияет на общество. В книге эта область описана доступным языком и с техническими подробностями.

Раза Хабиб (Raza Habib), соучредитель Humanloop

Когда люди спрашивают, как начать работу с генеративным ИИ, я всегда рекомендую книгу Дэвида. Второе издание великолепно, потому что оно охватывает самые мощные модели: диффузионные и трансформеры. Настоятельно рекомендую всем, кто интересуется моделированием творчества!

Доктор Тристан Беренс (Dr. Tristan Behrens), эксперт по ИИ и музыкальному творчеству ИИ, резидент KI Salon Heilbronn

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

Мартин Мусиол (Martin Musiol), основатель generativeAI.net

В издании очень подробно описана полная классификация генеративных моделей. Но самая замечательная черта книги — она охватывает теоретические основы моделей, а также помогает читателю закрепить полученные знания на практических примерах. Я должен отметить, что глава о генеративно-состязательных сетях (GAN) — одна из лучших из встречавшихся мне по этой теме. Она четко и ясно описывает приемы точной настройки моделей. В книге рассматривается широкий спектр видов генеративного ИИ, в том числе для обработки текста, изображений и музыки. Отличный ресурс для тех, кто начинает работать с генеративным ИИ.

Айшвария Шринивасан (Aishwarya Srinivasan), специалист по данным, Google Cloud Посвящается Алине, самому очаровательному шумовому вектору из всех.

Предисловие

Эта книга стала частью моей жизни. Найдя ее экземпляр в своей гостиной, я спросил сына: «Где ты ее достал?» Он, ошеломленный моей забывчивостью, ответил: «Ты сам мне ее дал». Читая вместе с сыном разные главы, я пришел к выводу, что «Генеративное глубокое обучение» — это «Анатомия Грея»1 для генеративного искусственного интеллекта (ИИ).

Автор анализирует анатомию генеративного ИИ авторитетно и с невероятной ясностью. Он предлагает поистине замечательный отчет о быстро меняющейся области, подкрепленный практичными примерами, увлекательными повествованиями и ссылками, которые настолько актуальны, что кажутся живой историей.

На протяжении всей книги автор не перестает удивляться и восхищаться потенциалом генеративного ИИ, что особенно заметно в убедительной развязке. Раскрыв технологию, он напоминает, что мы находимся на заре новой эпохи интеллекта — эпохи, в которой генеративный ИИ является зеркалом нашего языка, искусства, творчества, отражая не только то, что мы создали, но и то, что могли бы создать — что можем создать, — ограниченные только «собственным воображением».

Центральная тема генеративных моделей в искусственном интеллекте глубоко резонирует со мной, потому что я вижу точно такие же течения в естественных науках, а именно взгляд на себя как на генеративную модель нашего живого мира. Я подозреваю, что в следующем издании этой книги мы прочтем о слия­нии искусственного и естественного интеллектов. До этого времени я буду хранить свой экземпляр на книжной полке рядом с томиком «Анатомии Грея» и другими сокровищами.

Карл Фристон (Karl Friston), член Королевского общества, профессор нейробиологии Университетского колледжа в Лондоне

1 «Анатомия Грея» — признанный классическим учебник анатомии человека (Анатомия Грея. Анатомические структуры с оригинальной и современной терминологией на английском, латинском и русском языках / Под ред. Г.Л. Билича, Е.Ю. Зигаловой. — М.: Эксмо, 2021). — Примеч. пер.

Вступление

Чего не могу воссоздать, того не понимаю.

Ричард Фейнман (Richard Feynman)

Генеративный ИИ — одна из самых революционных технологий нынешнего времени, меняющая способ нашего взаимодействия с машинами. Его возможность внести революционные изменения в нашу жизнь, работу и игры была предметом бесчисленных разговоров, дебатов и прогнозов. А если бы эта мощная технология имела еще больший потенциал? Если возможности генеративного ИИ выйдут за рамки того, что мы можем вообразить сегодня? Будущее генеративного ИИ может оказаться более захватывающим, чем можно было бы представить…

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

Поэтому неудивительно, что человечество задалось главным вопросом: можем ли мы создать что-то, что было бы творческим само по себе?

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

Иными словами, сейчас самое время заняться изучением генеративного моделирования, так давайте приступим!

Цели и подходы

Эта книга не предполагает наличия у читателя каких-либо знаний о генеративном ИИ. Мы познакомимся со всеми ключевыми идеями по ходу, поэтому не волнуйтесь, если у вас нет опыта работы с генеративным ИИ. Все необходимое вы найдете здесь!

Книга не только описывает современные методы, но и служит полным руководством по генеративному моделированию, охватывающему широкий спектр семейств моделей. Не существует ни одного метода, который был бы объективно лучше или хуже любого другого, — на самом деле во многих современных моделях смешиваются идеи из самых разных подходов к генеративному моделированию. Поэтому важно быть в курсе событий во всех областях генеративного ИИ, а не сосредотачиваться на одной конкретной технике. Одно можно сказать наверняка: область генеративного ИИ развивается очень быстро и невозможно предугадать, откуда придет следующая революционная идея.

Учитывая все это, я попробую показать вам, как обучать свои генеративные модели на собственных данных, не полагаясь на готовые и предварительно обученные модели. В настоящее время существует множество впечатляющих генеративных моделей с открытым исходным кодом, которые можно загрузить и запустить, написав несколько строк кода, но цель этой книги иная — изучить их архитектуру и приемы проектирования, учитывающие основные принципы, чтобы вы хорошо разобрались в особенностях их работы и могли запрограммировать любой метод, используя Python и Keras.

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

На протяжении всей книги вам будут встречаться короткие поучительные истории, помогающие объяснить механику некоторых моделей. Пожалуй, один из лучших способов изучения новой абстрактной теории — сначала преобразовать ее во что-то менее абстрактное, например в рассказ, и только потом погружаться в техническое описание. Рассказы и технические описания моделей повторяют друг друга, объясняя одно и то же с разных точек зрения, поэтому иногда может быть полезно вернуться к соответствующему рассказу в процессе изучения технических деталей каждой модели.

Предварительные условия

Предполагается, что у читателя есть опыт программирования на Python. Если вы не знакомы с Python, начните его изучение с сайта LearningPython.org (https://www.learnpython.org/). В Интернете есть много бесплатных ресурсов, позволя­ющих приобрести достаточный объем знаний о Python для работы с примерами, приведенными в этой книге.

Кроме того, некоторые модели описаны с использованием математических обозначений, поэтому будет полезно иметь представление о линейной алгебре (например, как выполняется умножение матриц и т.д.) и общей теории вероятностей. Хорошим источником этих знаний является книга Дайзенрота (Deisenroth) и других авторов Mathematics for Machine Learning2 (Cambridge University Press).

Эта книга не предполагает наличия у читателя каких-либо знаний в области генеративного моделирования (мы рассмотрим ключевые концепции в главе 1) или TensorFlow и Keras (эти библиотеки будут представлены в главе 2).

Структура издания

Книга разделена на три части.

Часть I — это введение в генеративное моделирование и глубокое обучение. Здесь мы исследуем главные идеи, лежащие в основе всех методов, описанных в последующих частях книги.

• В главе 1 «Генеративное моделирование» дается определение генеративного моделирования и рассматривается небольшой пример, который поможет уяснить некоторые ключевые понятия, важные для всех генеративных моделей. Здесь также приводится классификация семейств генеративных моделей, которую будем изучать в части II.

• В главе 2 «Глубокое обучение» вы начнете знакомиться с глубоким обучением и нейронными сетями, создав первый пример многослойного перцептрона (multilayer perceptron, MLP) с помощью Keras. Затем мы усовершенствуем его, включив сверточные слои и внеся другие улучшения, чтобы увидеть разницу в качестве работы.

В части II рассматриваются шесть ключевых методов, которые мы будем использовать для построения генеративных моделей, и приводятся практические примеры реализации каждого из них.

• В главе 3 «Вариационные автокодировщики» мы рассмотрим вариационный автокодировщик (variational autoencoder, VAE) и возможность его применения для генерации изображений лиц и плавных переходов между лицами в скрытом пространстве модели.

• В главе 4 «Генеративно-состязательные сети» исследуем генеративно-состязательные сети (Generative Adversarial Networks, GAN), применяемые для генерации изображений, включая глубокие сверточные GAN, условные GAN, а также некоторые усовершенствованные модели, такие как GAN Вассерштейна, отличающиеся более высокой стабильностью обучения.

• В главе 5 «Модели авторегрессии» мы начнем с введения в рекуррентные нейронные сети, такие как сети с долгой краткосрочной памятью (Long Short-Term Memory, LSTM), используемые для генерации текста, и PixelCNN, применяемые для генерации изображений.

• В главе 6 «Модели нормализующих потоков» сосредоточимся на нормализующих потоках: исследуем теорию, лежащую в основе метода, и рассмотрим практический пример построения модели RealNVP для генерации изображений.

• В главе 7 «Модели на основе энергии» мы рассмотрим модели на основе энергии (energy-based models), включая такие важные методы, как обучение с использованием контрастной дивергенции и выборка с применением динамики Ланжевена.

• В главе 8 «Модели диффузии» погрузимся в практическое руководство по построению моделей диффузии, используемых во многих современных моделях генерации изображений, таких как DALL.E 2 и Stable Diffusion.

Наконец, в части III мы, опираясь на материал из предыдущих глав, приступим к изучению внутренних особенностей работы современных моделей для генерации изображений, составления текстов, сочинения музыки и обучения с подкреплением на основе моделей.

• В главе 9 «Трансформеры» исследуем происхождение и технические детали моделей StyleGAN, а также других современных GAN, применяемых для генерации изображений, таких как VQ-GAN.

• В главе 10 «Продвинутые GAN» рассмотрим архитектуру Transformer и познакомимся с практическими рекомендациями по созданию своей версии GPT для генерации текста.

• В главе 11 «Генерирование музыки» обратим внимание на особенности работы с музыкальными данными и применение таких методов, как Transformers и MuseGAN.

• В главе 12 «Модели мира» вы увидите, как можно использовать генеративные модели в контексте обучения с подкреплением с применением моделей мира и методов, основанных на трансформерах.

• В главе 13 «Мультимодальные модели» вы познакомитесь с особенностями работы четырех современных мультимодальных моделей, способных обрабатывать разнотипные данные, включая DALL.E 2, Imagen и Stable Diffusion, которые используются для преобразования текста в изображение, и Flamingo — модель визуального языка.

• В главе 14 «Заключение» мы подведем итоги основных этапов развития генеративного ИИ на сегодняшний день и обсудим изменения, которые он может внести в нашу повседневную жизнь в ближайшие годы.

Изменения во втором издании

Спасибо всем, кто прочитал первое издание этой книги. Мне очень приятно, что многие из вас нашли ее полезной и высказали свое мнение о том, что хотели бы видеть во втором издании. Область глубокого генеративного обучения значительно продвинулась в развитии с 2019 года — момента публикации первого издания, поэтому я не только обновил содержимое книги, но и добавил несколько новых глав, чтобы привести материал в соответствие с современным состоянием дел.

Далее кратко изложено, в чем заключаются основные обновления отдельных глав и общее улучшение книги.

• Глава 1 теперь включает раздел, посвященный различным семействам генеративных моделей, их классификации и взаимосвязям между ними.

• Глава 2 содержит улучшенные диаграммы и более подробные объяснения ключевых понятий.

• Глава 3 дополнена новым проработанным примером и сопровождающими его пояснениями.

• Глава 4 теперь включает объяснение условных архитектур GAN.

• В главу 5 включен раздел, посвященный моделям авторегрессии для изображений, например PixelCNN.

• Глава 6 — совершенно новая, в ней описывается модель RealNVP.

• Глава 7 тоже новая, в ней рассматриваются такие методы, как динамика Ланжевена и контрастивная дивергенция.

• Глава 8 написана недавно и посвящена диффузионным моделям удаления шума, лежащим в основе многих современных приложений.

• Глава 9 — это расширение материала, представленного в заключении первого издания. В ней более глубоко рассматривается архитектура различных моделей StyleGAN и представлен новый материал о VQ-GAN.

• Глава 10 — новая, в ней подробно говорится об архитектуре Transformer.

• Глава 11 включает современные архитектуры Transformer, заменяющие модели LSTM из первого издания.

• Глава 12 включает обновленные диаграммы и описания, а также раздел о влиянии этого подхода на современное обучение с подкреплением.

• Глава 13 — новая, в ней подробно объясняется, как работают такие потрясающие модели, как DALL.E 2, Imagen, Stable Diffusion и Flamingo.

• Глава 14 обновлена, чтобы отразить выдающийся прогресс в этой области, произошедший со времени выхода в свет первого издания, и дать более полное и подробное представление о том, куда движется генеративный ИИ.

• Были учтены все комментарии к первому изданию и исправлены выявленные опечатки.

• В начало каждой главы добавлен список ее целей, чтобы вы могли увидеть, какие ключевые темы в ней затронуты.

• Некоторые аллегорические истории были переписаны, чтобы сделать их более краткими и ясными. Я рад тому, что, судя по отзывам, многим читателям эти истории помогли лучше понять ключевые понятия!

• Заголовки и подзаголовки всех глав реорганизованы так, чтобы было понятно, какие их части посвящены объяснениям, а какие — построению собственных моделей.

Прочие ресурсы

В качестве общего введения в машинное и глубокое обучение рекомендуются две книги:

• Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems Орельена Жерона (Aurelien Geron), вышедшая в издательстве O’Reilly3 (https://learning.oreilly.com/library/view/hands-on-machine-learning/9781098125967);

• Deep Learning with Python Франсуа Шолле (Francois Chollet), вышедшая в издательстве Manning4.

Большинство статей, упоминаемых в этой книге, получены из arXiv (https://arxiv.org/) — бесплатного репозитория научных статей. Сейчас многие авторы публикуют свои статьи в arXiv до их рецензирования. Обзор последних поступлений в репозиторий — отличный способ быть в курсе самых передовых разработок в области машинного обучения.

Я также настоятельно рекомендую сайт Papers with Code (https://paperswith­code.com/), где можно найти самые свежие решения различных задач машинного обучения, ссылки на статьи и официальные репозитории GitHub. Это отличный ресурс для любого желающего выяснить, какие современные методы помогают достичь самых высоких результатов, и он, безусловно, помог мне решить, какие методы включить в эту книгу.

Условные обозначения

В книге приняты следующие шрифтовые соглашения.

Курсив

Используется для обозначения новых терминов и важных моментов.

Моноширинный шрифт

Применяется для оформления листингов программ, имен файлов и их расширений, программных элементов внутри обычного текста: имен переменных и функций, баз данных, типов данных, переменных окружения, инструкций, ключевых слов.

Так оформляются подсказки или предложения.

Так оформляются общие примечания.

Так оформляются предупреждения или предостережения.

Примеры кода

Примеры кода, приведенные в этой книге, имеются в репозитории GitHub (https://github.com/davidADSP/Generative_Deep_Learning_2nd_Edition). Я постарался сделать так, чтобы ни одна из моделей не требовала для обучения непомерно большого количества вычислительных ресурсов и вы могли начать обучение собственных моделей, не тратя много времени и денег на дорогостоящее оборудование. В репозитории вы найдете подробное руководство, помогающее начать работу с Docker и при необходимости настроить облачные ресурсы с графическими процессорами в Google Cloud.

Со времени выхода первого издания в код примеров были внесены следующие изменения.

• Все примеры теперь можно запускать из одного блокнота, а не импортировать часть кода из модулей всей кодовой базы. Это сделано для того, чтобы вы могли выполнять все примеры по порядку, ячейка за ячейкой и шаг за шагом вникать, как именно строится каждая модель.

• Разделы каждого блокнота теперь в целом согласованы между примерами.

• Во многих примерах используются фрагменты кода из замечательного репозитория Keras с открытым исходным кодом (https://oreil.ly/1UTwa). Это сделано для того, чтобы не создавать отдельный репозиторий с исходным кодом примеров генеративного ИИ, когда уже существуют отличные реализации, доступные на сайте Keras. В этой книге и в репозитории я привел ссылки с сайта Keras на авторов используемого кода.

• Я добавил новые источники данных и улучшил процесс сбора данных — теперь есть сценарий, который можно запустить для сбора данных из необходимых источников и для обучения примерам из книги с помощью таких инструментов, как Kaggle API (https://oreil.ly/8ibPw).

Использование программного кода примеров

Вспомогательные материалы (примеры кода, упражнения и т.д.) доступны для загрузки по адресу https://github.com/davidADSP/Generative_Deep_Learning_2nd_Edition.

Если у вас есть вопросы технического характера или возникла проблема с использованием примеров кода, отправьте электронное письмо по адресу [email protected].

В общем случае все примеры кода из книги вы можете использовать в своих программах и в документации. Вам не нужно обращаться в издательство за разрешением, если вы не собираетесь воспроизводить существенные части программного кода. Если вы разрабатываете программу и используете в ней несколько фрагментов кода из книги, вам не нужно обращаться за разрешением. Но для продажи или распространения примеров из книги вам потребуется разрешение от издательства O’Reilly. Вы можете отвечать на вопросы, цитируя данную книгу или примеры из нее, но для включения существенных объемов программного кода из книги в документацию вашего продукта потребуется разрешение.

Мы рекомендуем, но не требуем добавлять ссылку на первоисточник при цитировании. Под ссылкой на первоисточник мы подразумеваем указание авторов, издательства и ISBN.

За получением разрешения на использование значительных объемов программного кода из книги обращайтесь по адресу [email protected].

Благодарности

Позвольте поблагодарить всех, кто помогал мне в работе над этой книгой.

Прежде всего искреннее спасибо тем, кто нашел время для научного редактирования, в частности: Вишвеше Рави Шримали (Vishwesh Ravi Shrimali), Липи Дипаакши Патнаику (Lipi Deepaakshi Patnaik), Любе Эллиотт (Luba Elliott) и Лорне Барклай (Lorna Barclay). Большое спасибо также Самиру Бико (Samir Bico) за помощь в рецензировании и тестировании кодовой базы, прилагаемой к книге. Ваш вклад был неоценим.

Кроме того, выражаю огромную благодарность коллегам из Applied Data Science Partners (https://adsp.ai/): Россу Витешчаку (Ross Witeszczak), Эми Булл (Amy Bull), Али Паранде (Ali Parandeh), Зину Эддину (Zine Eddine), Джо Роу (Joe Rowe), Герте Салиллари (Gerta Salillari), Алишии Паркс (Aleshia Parkes), Эвелине Кирейлите (Evelina Kireilyte), Риккардо Толли (Riccardo Tolli), Мэй До (Mai Do), Халилу Саеду (Khaleel Syed) и Уиллу Холмсу (Will Holmes). Спасибо за вашу благосклонность в течение всего времени работы над книгой, с нетерпением жду новых проектов машинного обучения, реализацией которых в будущем мы будем заниматься вместе! Особое спасибо Россу за веру в меня как в делового партнера — если бы мы не решили начать совместный бизнес, то эта книга, возможно, никогда бы не появилась!

Я также хочу поблагодарить всех, кто когда-либо учил меня математике, — мне очень повезло, что в школе у меня были потрясающие преподаватели, которые развили мой интерес к этому предмету и призывали меня продолжить заниматься им в университете. Благодарю вас за самоотдачу и за то, что щедро делились со мной своими знаниями.

Огромное спасибо сотрудникам издательства O’Reilly за то, что помогали мне в работе над этой книгой. Особую благодарность хочу выразить Мишель Кронин (Michele Cronin), помогавшей на всех этапах полезной обратной связью и посылавшей мне дружеские напоминания о необходимости продолжать писать главы! Спасибо также Николь Баттерфилд (Nicole Butterfield), Кристоферу Фошеру (Christopher Faucher), Чарльзу Румелиотису (Charles Roumeliotis), Сюзанне Хьюстон (Suzanne Huston) за подготовку книги к печати и Майку Лоукидесу (Mike Loukides), который первым обратился ко мне с предложением написать книгу. Вы все оказали огромную поддержку этому проекту, и я хочу поблагодарить вас за то, что вы предоставили мне возможность написать книгу о том, что я люблю.

Все время, пока я писал книгу, моя семья оказывала мне всяческую поддержку. Огромное спасибо моей маме Джиллиан Фостер (Gillian Foster) за проверку каждой строки текста на наличие опечаток и особенно за то, что научила меня считать! Твое внимание к деталям чрезвычайно помогло при редактировании этой книги, и я очень благодарен за все возможности, которые предоставили мне ты и папа. Мой папа Клайв Фостер (Clive Foster) научил меня программированию — эта книга полна практических примеров, которые я сумел создать во многом благодаря его терпению в те годы, когда изучал Бейсик и пытался писать футбольные игры. Мой брат Роб Фостер (Rob Foster) — самый скромный гений из всех гениев, особенно в области лингвистики, беседы с ним об искусственном интеллекте и будущем машинного обучения на основе текстов оказались на удивление плодотворными. Наконец, я хотел бы поблагодарить свою сестру Нану (Nana) — неиссякаемый источник вдохновения и радости. Ее любовь к литературе — одна из причин, по которой я решил, что написать книгу было бы захватывающим занятием.

Наконец, я хотел бы поблагодарить свою жену Лорну Барклай (Lorna Barclay). Она не только прочла каждое слово в этой книге, но и оказывала мне бесконечную поддержку на протяжении всего процесса, заваривала чай и приносила разные вкусняшки. Я едва ли смог бы завершить этот проект без тебя. Спасибо за то, что всегда была рядом и сделала это путешествие намного приятнее. Обещаю, что не буду говорить о генеративном ИИ за обеденным столом по крайней мере несколько дней после выхода книги.

Наконец, я хочу поблагодарить нашу прекрасную маленькую дочку Алину за непередаваемую радость, которую я испытывал, видя ее после долгих ночей работы над книгой. Твой очаровательный смех стал идеальной фоновой музыкой для меня. Спасибо за то, что вдохновляешь меня и всегда держишь в тонусе.

2Дайзенрот М.П., Фейзал А.А., Он Ч.С. Математика в машинном обучении. — СПб.: Питер, 2023.

3Жерон О. Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow. Концепции, инструменты и техники для создания интеллектуальных систем.

4Шолле Ф. Глубокое обучение на Python. 2-е межд. издание. — СПб.: Питер, 2023.

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу

[email protected] (издательство «SprintBook», компьютерная редакция).

Мы будем рады узнать ваше мнение!

Часть I. Введение в генеративное глубокое обучение

Часть I содержит общую информацию о генеративном моделировании и глубоком обучении.

В главе 1 вы познакомитесь с определением генеративного моделирования, мы рассмотрим небольшой пример, который поможет разобраться в некоторых ключевых понятиях, важных для всех генеративных моделей. Здесь также будет представлена классификация семейств генеративных моделей, которые вы начнете изучать в части II.

Глава 2 содержит руководство по инструментам и методам глубокого обучения, овладеть которыми необходимо, чтобы начать создавать более сложные генеративные модели. В частности, здесь вы построите свою первую глубокую нейронную сеть — многослойный перцептрон (multilayer perceptron, MLP) — с помощью Keras. Затем мы добавим в нее сверточные слои и другие улучшения, чтобы увидеть разницу в производительности.

К концу части I вы получите хорошее представление об основных идеях, лежащих в основе всех техник, описанных в последующих частях книги.