Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шолле Ф. - Глубокое обучение на Python (Библиотека программиста) - 2023.pdf
Скачиваний:
4
Добавлен:
07.04.2024
Размер:
11.34 Mб
Скачать

12.5. Введение в генеративно-состязательные сети     493

В.следующем.разделе.мы.подробно.рассмотрим.еще.один.важный.инструмент. создания .искусственных .изображений: .генеративно-состязательные .сети. (Generative.Adversarial.Networks,.GAN).

12.4.5. Подведение итогов

.Генерирование.изображений.с.применением.глубокого.обучения.происходит.за.счет.выделения.скрытых.пространств,.несущих.статистическую. информацию .о .наборе .изображений.. Выбирая .точки .из .скрытого .пространства.и.декодируя.их,.можно.видеть.прежде.не.встречавшиеся.изображения..Существует.два.основных.инструмента.для.решения.этой.задачи:. вариационные .автокодировщики .(VAE) .и .генеративно-состязательные. сети .(GAN).

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

.Генеративно-состязательные.сети.позволяют.генерировать.реалистичные. однокадровые.изображения,.однако.они.не.порождают.скрытых.пространств,. непрерывных.и.с.четкой.структурой.

Большинство.успешных.практических.применений.в.области.графики,.которые.мне.приходилось.видеть,.основаны.на.вариационных.автокодировщиках,. а.генеративно-состязательные.сети.пользуются.очень.большой.популярностью. в.академической.среде.—.по.крайней.мере.так.было.в.2016–2017.годах..Как.они. действуют.и.как.реализуются,.вы.узнаете.в.следующем.разделе.

12.5. ВВЕДЕНИЕ В ГЕНЕРАТИВНО-СОСТЯЗАТЕЛЬНЫЕ СЕТИ

Генеративно-состязательные.сети.(Generative.Adversarial.Networks,.GAN),.впер- вые.представленные.в.2014.году.Яном.Гудфеллоу.и.его.коллегами1,.—.альтер- натива.вариационным.автокодировщикам.для.выделения.скрытых.пространств. изображений..Они.позволяют.генерировать.очень.реалистичные.искусственные. изображения,.статистически.неотличимые.от.настоящих.

1. Goodfellow I. et al..Generative.Adversarial.Networks.//.arXiv,.2014,.https://arxiv.org/ abs/1406.2661.

494    Глава 12. Генеративное глубокое обучение

Чтобы.проще.было.понять.суть.генеративно-состязательной.сети,.вообразите. фальсификатора,.пытающегося.подделать.картину.Пикассо..Сначала.он.довольно. плохо.справляется.с.задачей..Он.показывает.свои.подделки.вместе.с.подлинниками.Пикассо.продавцу.произведений.искусства..Продавец.оценивает.подлинность. картин.и.рассказывает.фальсификатору,.какие.детали.делают.картину.похожей. на.картину.Пикассо..Фальсификатор.возвращается.в.мастерскую.и.создает. несколько.новых.подделок..С.течением.времени.фальсификатор.становится. все.более.компетентным.в.имитации.стиля.Пикассо,.а.продавец.—.все.более. опытным.в.различении.подделок..В.конце.концов.у.них.на.руках.оказываются. превосходные.подделки.Пикассо.

Вот.что.такое.генеративно-состязательная.сеть:.она.состоит.из.двух.сетей.—.вы- полняющей.подделку.и.оценивающей.эту.подделку,.—.постепенно.обучающих. друг.друга:

.сеть-генератор .—.получает.на.входе.случайный.вектор.(случайную.точ- ку .в .скрытом .пространстве) .и .декодирует .его .в .искусственное .изобра­ жение;

.сеть-дискриминатор.(или.противник).—.получает.изображение.(настоящее. или.поддельное).и.определяет,.взято.ли.это.изображение.из.обучающего.на- бора.или.сгенерировано.сетью-генератором.

Сеть-генератор.обучается.обманывать.сеть-дискриминатор.и,.соответственно,. учится.создавать.все.более.реалистичные.изображения:.поддельные.изображения,. почти.неотличимые.от.настоящих.(рис..12.19)..Сеть-дискриминатор,.в.свою. очередь,.постоянно.адаптируется.к.увеличивающейся.способности.сети-гене- ратора.и.устанавливает.все.более.высокую.планку.реализма.для.генерируемых. изображений..По.окончании.обучения.генератор.способен.превратить.любую. точку.из.своего.входного.пространства.в.правдоподобное.изображение..В.отличие. от.вариационных.автокодировщиков.это.скрытое.пространство.дает.меньше. гарантий.наличия.в.нем.значимой.структуры;.в.частности,.оно.не.является.непрерывным.

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

12.5. Введение в генеративно-состязательные сети     495

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

12.5.1. Реализация простейшей генеративно-состязательной сети

Далее.я.расскажу,.как.реализовать.простейшую.генеративно-состязательную. сеть.с.использованием.Keras..Стоит.отметить,.что.сети.этого.вида.очень.сложны,. и.подробное.описание.технических.деталей.архитектур,.подобных.архитектуре. StyleGAN2,.сгенерировавшей.изображения.на.рис..12.20,.выходит.далеко.за. рамки.этой.книги..Данная.простейшая.реализация.—.это.глубокая сверточная генеративно-состязательная сеть.(Deep.Convolutional.GAN,.DCGAN),.в.которой.генератор.и.дискриминатор.являются.глубокими.сверточными.сетями.

Рис. 12.20. Скрытое пространство жителей. Изображения предоставлены автором сайта https://thispersondoesnotexist.com Филиппом Ваном. Для их создания использовалась модель StyleGAN2, разработанная Каррасом с коллегами, https://arxiv.org/abs/1912.04958

496    Глава 12. Генеративное глубокое обучение

Мы.будем.обучать.GAN.на.изображениях.из.набора.Large-scale.CelebFaces. Attributes.(известного.как.CelebA),.содержащего.200.000.изображений.знаменитостей.(http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html)..Чтобы.ускорить.обучение,. мы.уменьшим.размеры.изображений.до.64.×.64,.то.есть.обучим.сеть.генерировать. изображения.человеческих.лиц.размером.64.×.64.

В.общих.чертах.GAN.выглядит.примерно.так:

.сеть.generator .отображает.векторы.с.формой.(размерность_скрытого_про- странства,).в.изображения.с.формой.(64, .64, .3);

.сеть.discriminator .отображает.изображения.с.формой.(64, .64, .3) .в.оценку. вероятности,.что.изображение.является.настоящим;

.сеть .gan .объединяет .генератор .и .дискриминатор .gan(x) .= .discrimina­ tor(generator(x)),.иными.словами,.отображает.скрытое.пространство.векторов.в.оценку.реализма.этих.скрытых.векторов,.декодированных.генератором;

.мы.обучим.дискриминатор.на.примерах.реальных.и.искусственных.изображений,.отмеченных.метками.«настоящее»/«поддельное»,.как.самую.обычную. модель.классификации.изображений;

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

Иными.словами,.мы.будем.обучать.генератор.обманывать.дискриминатор.

12.5.2. Набор хитростей

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

Вот.несколько.хитростей,.используемых.в.реализации.генератора.и.дискриминатора.GAN.в.этом.разделе..Это.не.полный.список;.еще.множество.хитростей,. имеющих.отношение.к.GAN,.можно.найти.в.специализированной.литературе.

.В.дискриминаторе.вместо.объединения.мы.будем.уменьшать.разрешение.карт. признаков.за.счет.изменения.шага.выборки,.по.аналогии.с.вариационным. автокодировщиком.(VAE).

.Мы.будем.выбирать.точки.из.скрытого.пространства,.используя.нормальное распределение.(распределение.Гаусса),.а.не.равномерное.

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