Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
Идея обусловливания GAN’ов получила дальнейшее развитие в ряде других исследований. Например, в конце 2016 г. в работе «Трансляция изображений в изображения при помощи обусловленных состязательных сетей» (Image-to-Image Translation with Conditional Adversarial Networks) [2766] была представлена популярная и в наши дни модель pix2pix. В этой модели в качестве обусловливающей информации при генерации изображения выступает другое изображение. Список задач, которые могут быть решены при помощи pix2pix, весьма обширен. Например, в задаче раскраски чёрно-белое изображение транслируется в цветное (т. е. в данном случае чёрно-белое изображение является обусловливающим изображением при генерации цветного). Таким путём спутниковые снимки могут превращаться в карты, дневные фотоснимки — в ночные (и наоборот), фотографии людей — в их же фотографии с удалённым фоном, наброски картинок, сделанные на скорую руку в редакторе типа Paint, — в законченные фотореалистичные изображения.
2766
Isola P., Zhu J.-Y., Zhou T., Efros A. A. (2016). Image-to-Image Translation with Conditional Adversarial Networks // https://arxiv.org/abs/1611.07004
Для
Обученная на некотором классе изображений pix2pix иногда ведёт себя довольно забавно, если на её вход подать «неожиданное» для неё обусловливающее изображение. Например, контуры объекта, который совсем не похож на объекты, содержавшиеся в обучающей выборке (один из примеров был приведён в конце раздела 1.3.2, а другой вы можете наблюдать ниже — это изображение стало локальным мемом сообщества разработчиков генеративных моделей).
В начале 2017 г. на суд общественности была представлена статья «Непарное преобразование изображения в изображение с использованием согласованных по циклу состязательных сетей» (Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks) [2767] , давшая начало архитектуре, получившей название CycleGAN. Авторами работы, как и в случае с pix2pix, была команда уже знакомого нам Алексея Эфроса, в которую, помимо самого профессора, вошли его ученики — Цзюнь-Янь Чжу, Тхэсон Пак и Филипп Исола.
2767
Zhu J.-Y., Park T., Isola P., Efros A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks // https://arxiv.org/abs/1703.10593
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.
2768
Shrivastava A., Pfister T., Tuzel O., Susskind J., Wang W., Webb R. (2016). Learning from Simulated and Unsupervised Images through Adversarial Training // https://arxiv.org/abs/1612.07828
2769
Isola P., Zhu J.-Y., Zhou T., Efros A. A. (2016). Image-to-Image Translation with Conditional Adversarial Networks // https://arxiv.org/abs/1611.07004
Спустя несколько месяцев после появления 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 x 4 = 20 генераторов (из каждого домена мы должны уметь преобразовывать изображение во все домены, кроме исходного). При 10 доменах это будет уже 10 x 9 = 90 генераторов и так далее. Быстрый рост числа необходимых генераторов с увеличением числа доменов ведёт к пропорциональному росту вычислительных затрат на обучение модели. Чтобы решить эту проблему, создатели StarGAN предложили возложить на дискриминатор StarGAN сразу две задачи классификации. Первая из них — это обычная для дискриминаторов оценка степени правдоподобия того факта, что изображение, поданное на вход дискриминатора, является сгенерированным. Вторая задача — определение домена, к которому относится изображение. Генератор в StarGAN получает на вход, помимо исходного изображения, указание на целевой домен (кого мы хотим получить в результате: лошадь, зебру, жирафа и т. п.?). При этом, так же как и в CycleGAN, оценивается качество обратного преобразования (для этого генератор получает на вход сгенерированное изображение и указание на оригинальный домен изображения как на целевой).
2770
Choi Y., Choi M., Kim M., Ha J.-W., Kim S., Choo J. (2017). StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation // https://arxiv.org/abs/1711.09020
Модели, подобные StarGAN и CycleGAN, лежат в основе популярных в наши дни фильтров для семантической манипуляции фотографиями, позволяющих превратить безбородого человека в бородача (и наоборот), юношу в старика (и наоборот) и тому подобное.
Модель на базе GAN, предложенная [2771] в 2017 г. исследователями из японского Университета Васэда (?????), использует в качестве обусловливающего изображения для генератора изображение с закрашенными фрагментами. Благодаря применению GAN исследователям удалось добиться локальной и глобальной согласованности при заполнении недостающих частей картинки.
2771
Iizuka S., Simo-Serra E., Ishikawa H. (2017). Globally and Locally Consistent Image Completion / ACM Transactions on Graphics, Vol. 36, Iss. 4, Article 107, July 2017 // http://dx.doi.org/10.1145/3072959.3073659
Ту же задачу успешно решают более современные модели (2019 г.), такие как PEPSI [2772] и PEPSI++ (Diet-PEPSI) [2773] .
2772
Sagong M.-C., Shin Y.-G., Kim S.-W., Park S., Ko S.-J. (2019). PEPSI: Fast Image Inpainting With Parallel Decoding Network / 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) // https://doi.org/10.1109/CVPR.2019.01162
2773
Shin Y.-G., Sagong M.-C., Yeo Y.-J., Kim S.-W., Ko S.-J. (2019). PEPSI++: Fast and Lightweight Network for Image Inpainting // https://arxiv.org/abs/1905.09010