Охота на электроовец. Большая книга искусственного интеллекта - Марков Сергей Николаевич
Идея обусловливания GAN’ов получила дальнейшее развитие в ряде других исследований. Например, в конце 2016 г. в работе «Трансляция изображений в изображения при помощи обусловленных состязательных сетей» (Image-to-Image Translation with Conditional Adversarial Networks) [2766] была представлена популярная и в наши дни модель pix2pix. В этой модели в качестве обусловливающей информации при генерации изображения выступает другое изображение. Список задач, которые могут быть решены при помощи pix2pix, весьма обширен. Например, в задаче раскраски чёрно-белое изображение транслируется в цветное (т. е. в данном случае чёрно-белое изображение является обусловливающим изображением при генерации цветного). Таким путём спутниковые снимки могут превращаться в карты, дневные фотоснимки — в ночные (и наоборот), фотографии людей — в их же фотографии с удалённым фоном, наброски картинок, сделанные на скорую руку в редакторе типа Paint, — в законченные фотореалистичные изображения.
Для обучения pix2pix необходимы датасеты, состоящие из пар изображений (обусловливающего и результирующего). Для многих задач возможны простые преобразования, позволяющие выполнять обратную операцию: получать обусловливающее изображение из результирующего. Такие преобразования обычно связаны с потерей некоторой части информации, например с обесцвечиванием, выделением контуров (путём простых алгоритмов трассировки или же при помощи моделей, выполняющих семантическую сегментацию — выделение на изображении контуров различных объектов). Используя эти преобразования, можно создавать большие синтетические датасеты.

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

В начале 2017 г. на суд общественности была представлена статья «Непарное преобразование изображения в изображение с использованием согласованных по циклу состязательных сетей» (Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks) [2767], давшая начало архитектуре, получившей название CycleGAN. Авторами работы, как и в случае с pix2pix, была команда уже знакомого нам Алексея Эфроса, в которую, помимо самого профессора, вошли его ученики — Цзюнь-Янь Чжу, Тхэсон Пак и Филипп Исола.
CycleGAN — это генеративно-состязательная сеть, использующая два генератора и два дискриминатора. Изображения, с которыми работает CycleGAN, разделены на две группы (для обозначения групп прецедентов, объединённых какими-либо общими признаками, в машинном обучении часто используют термин «домен») — X (например, изображения лошадей) и Y (например, изображения зебр). Первый генератор (G) учится преобразовывать X в Y, а второй (F), напротив, из Y в X. Каждой из групп также сопоставлен соответствующий дискриминатор: DX учится отличать оригинальное изображение из группы X от изображения, порождённого генератором F, аналогично дискриминатор DY учится отличать оригинальное изображение из группы Y от изображения, порождённого генератором G. Изюминкой модели является целевая функция модели (в нейросетевых моделях часто используют термин «функция потерь» [loss function] для того, чтобы подчеркнуть, что для данной функции решается задача минимизации, т. е. снижения потерь). Помимо классической для GAN’ов состязательной компоненты (на этапе обучения дискриминатора это ошибка дискриминатора в различении сгенерированных изображений и настоящих, а на этапе генератора — эта же ошибка, взятая с противоположным знаком), к ней прибавляется (умноженная на некоторый масштабный коэффициент) ошибка согласованности цикла, то есть отличие изображения от себя самого, прошедшего через двойное преобразование при помощи генераторов (т. е. изображение из X сначала преобразуется генератором G, а затем результат этого преобразования преобразуется генератором F, т. е. мы пытаемся превратить лошадь в зебру, а затем полученную зебру превратить снова в лошадь; аналогичную операцию мы проводим с зебрами — пытаемся сделать их лошадьми, а потом полученных лошадей пытаемся превратить обратно в зебр). Если генераторы идеальны, то после такого двойного преобразования изображение превратится само в себя. При помощи обученной CycleGAN можно будет превращать лошадей на картинках в зебр и наоборот — это является простым примером семантической манипуляции изображением.

Когда говорят о семантической манипуляции, то обычно имеют в виду, что каждому изображению сопоставлены одна или несколько семантических меток: например, фотографии человека сопоставлены метки возраста, пола, цвета кожи, типа причёски, наличия бороды и так далее. Алгоритм семантической манипуляции позволяет сгенерировать изображение, соответствующее исходному, но с другим значением семантических меток. Например, изменив признак наличия бороды для моей фотографии, можно взглянуть на то, как я мог бы выглядеть без бороды.
CycleGAN использовала некоторые решения, предложенные в более ранних исследованиях по GAN’ам. Например, вслед за авторами статьи 2016 г. «Обучение на основе симулированных и неразмеченных изображений при помощи состязательного подхода» (Learning from Simulated and Unsupervised Images through Adversarial Training) [2768] для исключения сильных колебаний при обучении модели создатели CycleGAN передавали в дискриминаторы не одно, а 50 последних сгенерированных изображений. Архитектура самих дискриминаторов была позаимствована у более ранней архитектуры [2769], созданной командой Эфроса, под названием PatchGAN.
Спустя несколько месяцев после появления CycleGAN была опубликована другая популярная в наши дни архитектура — StarGAN. Статья, в которой она была описана, так и называлась «StarGAN: унифицированные генеративно-состязательные сети для мультидоменного преобразования изображения в изображение» (StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation) [2770].
Создателями новой архитектуры стали Юньдзей Чхве и его коллеги из Университета Корё (고려대학교) в Сеуле и исследовательского центра компании Clova AI (NAVER Clova AI Research). StarGAN стала ответом исследователей на проблему преобразования изображений в случае наличия множества доменов. В примере с лошадьми и зебрами из работы авторов CycleGAN необходимо использование двух генераторов. Однако если мы добавим к лошадям и зебрам, допустим, пони, единорогов и жирафов, то нам потребуется уже целых 5 × 4 = 20 генераторов (из каждого домена мы должны уметь преобразовывать изображение во все домены, кроме исходного). При 10 доменах это будет уже 10 × 9 = 90 генераторов и так далее. Быстрый рост числа необходимых генераторов с увеличением числа доменов ведёт к пропорциональному росту вычислительных затрат на обучение модели. Чтобы решить эту проблему, создатели StarGAN предложили возложить на дискриминатор StarGAN сразу две задачи классификации. Первая из них — это обычная для дискриминаторов оценка степени правдоподобия того факта, что изображение, поданное на вход дискриминатора, является сгенерированным. Вторая задача — определение домена, к которому относится изображение. Генератор в StarGAN получает на вход, помимо исходного изображения, указание на целевой домен (кого мы хотим получить в результате: лошадь, зебру, жирафа и т. п.?). При этом, так же как и в CycleGAN, оценивается качество обратного преобразования (для этого генератор получает на вход сгенерированное изображение и указание на оригинальный домен изображения как на целевой).
Похожие книги на "Охота на электроовец. Большая книга искусственного интеллекта", Марков Сергей Николаевич
Марков Сергей Николаевич читать все книги автора по порядку
Марков Сергей Николаевич - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.