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

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

12.4. ГЕНЕРИРОВАНИЕ ИЗОБРАЖЕНИЙ С ВАРИАЦИОННЫМИ АВТОКОДИРОВЩИКАМИ

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

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

12.4.1. Выбор шаблонов из скрытых пространств изображений

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

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

12.4. Генерирование изображений с автокодировщиками    483

Рис. 12.13. Обучение скрытого векторного пространства изображений и его использование для создания новых изображений

Рис. 12.14. Непрерывное пространство лиц, сгенерированное Томом Уайтом с использованием VAE

12.4.2. Концептуальные векторы для редактирования изображений

Мы.уже.обсуждали.идею.концептуальных векторов,.когда.рассматривали.векторные.представления.слов.в.главе.11..Сама.идея.остается.прежней:.некоторые. направления.в.скрытом.(векторном).пространстве.представлений.могут.кодировать.интересные.оси.изменений.исходных.данных..Например,.в.скрытом.

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

пространстве.изображений.лиц.может.иметься.вектор «улыбка».s .такой,.что. если.скрытая.точка.z .является.векторным.представлением.некоторого.лица,. тогда.точка.z .+ .s .является.векторным.представлением.того.же.лица,.но.улыба­ ющегося..После.выявления.такого.вектора.становится.возможным.редактировать. изображения,.проецируя.их.в.скрытое.пространство,.перемещая.представления. значимым.способом.и.декодируя.их.обратно.в.пространство.изображений.. Концептуальные.векторы.существуют.для.практически.любых.независимых. вариаций.в.пространстве.изображений..В.случае.с.лицами.можно.обнаружить. векторы,.добавляющие.солнцезащитные.очки,.удаляющие.очки,.преобразу­ ющие.мужское.лицо.в.женское,.и.т..д..На.рис..12.15.приводится.пример.вектора. «улыбка».—.концептуального.вектора,.обнаруженного.Томом.Уайтом.из.школы. дизайна.в.Университете.Виктории.(Victoria.University.School.of.Design).в.Новой.Зеландии,.с.использованием.VAE,.обученных.на.наборах.изображений.лиц. знаменитостей.(набор.данных.CelebA).

Рис. 12.15. Вектор «улыбка»

12.4.3. Вариационные автокодировщики

Вариационные.автокодировщики,.открытые.одновременно.Дидериком.Кингмой.и.Максом.Веллингом.в.декабре.2013.года1 .и.Данило.Йименезом.Резенде,. Шакиром.Мохамедом.и.Дааном.Вирстрой.в.январе.2014.года2,.являются.разновидностью.генеративных.моделей,.которая.особенно.хорошо.подходит.для. редактирования.изображений.посредством.концептуальных.векторов..Они. предлагают.современный.подход.к.автокодировщикам.—.разновидности.сетей,. целью.которых.является.кодирование.входного.малоразмерного.скрытого.про-

1. Kingma D. P., Welling M. .Auto-Encoding.Variational.Bayes.//.arXiv,.2013,.https:// arxiv.org/abs/1312.6114.

2. Rezende D. J., Shakir M., Daan W..Stochastic.Backpropagation.and.Approximate.Inference. in.Deep.Generative.Models.//.arXiv,.2014,.https://arxiv.org/abs/1401.4082.

12.4. Генерирование изображений с автокодировщиками    485

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

Классический.автокодировщик.изображений.принимает.изображение,.отображает.его.в.скрытое.векторное.пространство.с.помощью.модуля.кодирования.и.декодирует.его.обратно.в.выходное.изображение.с.теми.же.размерами. с.помощью.модуля.декодирования.(рис..12.16)..Затем.он.обучается,.используя. в.качестве.целевых.данных.те же изображения,.что.подавались.на.вход..Таким. образом,.автокодировщик.учится.восстанавливать.исходные.данные..Накладывая.различные.ограничения.на.код.(вывод.кодировщика),.можно.получить. автокодировщик,.чтобы.извлечь.из.данных.более.или.менее.интересные.скрытые.представления..Чаще.всего.код.ограничивается.малым.числом.измерений. и.разреженностью.(когда.большинство.элементов.имеют.нулевые.значения)..

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

Рис. 12.16. Автокодировщик: отображает вход x в сжатое представление, которое затем декодируется обратно как x’

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

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

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

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

Вот.как.работает.вариационный.автокодировщик.с.технической.точки.зрения.

1.. Модуль.кодирования.превращает.входной.образец.изображения.input_img . в.два.параметра.в.скрытом.пространстве,.z_mean .и.z_log_variance.

2.. Вы.выбираете.из.скрытого.нормального.распределения.произвольную.точку.z . для.генерации.входного.изображения.как.z .= .z_mean .+ .exp(z_log_variance) .* . epsilon,.где.epsilon .—.это.случайный.тензор.небольших.значений.

3.. Модуль.декодера.отображает.эту.точку.из.скрытого.пространства.обратно. в.оригинальное.изображение.

Рис. 12.17. Вариационный автокодировщик отображает изображение в два вектора, z_mean и z_log_sigma, которые определяют распределение вероятности в скрытом пространстве, используемое для выбора точки для декодирования

Поскольку.epsilon .является.случайным.тензором,.процесс.гарантирует,.что. каждая.точка,.близкая.к.скрытому.местоположению,.где.закодировано.input_img . (z-mean),.может.быть.декодирована.в.нечто.похожее.на.input_img,.что.обеспечи- вает.непрерывную.значимость.скрытого.пространства..Любые.две.близкие.точки. в.скрытом.пространстве.будут.декодированы.в.очень.похожие.изображения.. Непрерывность.в.сочетании.с.малой.размерностью.скрытого.пространства.заставляет.каждое.направление.в.скрытом.пространстве.кодировать.значимую.ось. изменений.данных,.что.делает.скрытое.пространство.высокоструктурированным.и.прекрасно.подходящим.для.манипуляций.посредством.концептуальных. векторов.

Параметры.вариационного.автокодировщика.обучаются.на.двух.функциях. потерь:.на.потерях восстановления.(reconstruction.loss),.которые.заставляют. декодированные.образцы.совпадать.с.исходными.входами,.и.потерях регуляризации.(regularization.loss),.которые.помогают.извлекать.хорошо.сформированные.скрытые.пространства.и.ослабляют.проблему.переобучения.на.обучающих.