Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
Детальное описание этой концепции, а также сам термин «генеративно-состязательные сети» появились впервые в знаменитой одноимённой работе [2762] Яна Гудфеллоу и его соавторов, в числе которых был и уже знакомый нам Йошуа Бенджио.
Гудфеллоу получил степени бакалавра и магистра в Стэнфордском университете под руководством Эндрю Ына, а затем защитил диссертацию в Монреальском университете под руководством Бенджио и Аарона Курвилля. После защиты Гудфеллоу присоединился к команде GoogleBrain, затем покинул Google, чтобы присоединиться к недавно основанной OpenAI, а затем вновь вернулся в Google в марте 2017 г. Перу Гудфеллоу, Бенджио и Курвилля принадлежит одна из наиболее популярных книг о методах глубокого обучения. В 2017 г. Гудфеллоу был упомянут в рейтинге MIT Technology Review «35 новаторов моложе 35 лет», а в 2019-м — включён в список «100 глобальных мыслителей» по версии Foreign Policy. В том же году он покинул Google, чтобы занять пост директора по машинному обучению Группы специальных проектов в компании Apple.
2762
Goodfellow I. J., Pouget-Abadie J., Mirza M., Xu B., Warde-Farley D., Ozair S., Courville A., Bengio Y. (2014). GenerativeAdversarialNetworks // https://arxiv.org/abs/1406.2661
Интересно, что идея использовать нейронную сеть в роли художественного критика нашла воплощение не только в концепции генеративно-состязательных сетей, но и при решении других задач, связанных с изобразительным искусством. Например, нейросетевые модели регулярно применяют для определения авторства художественных произведений. Совсем недавно нейронные сети помогли разрешить вопрос о создателе приписываемой Рубенсу картины «Самсон и Далила» (спойлер: картина предположительно является подделкой) [2763] .
2763
Alberge D. (2021). Was famed Samson and Delilah really painted by Rubens? No, says AI / The Guardian, 26 Sep 2021 // https://www.theguardian.com/artanddesign/2021/sep/26/was-famed-samson-and-delilah-really-painted-by-rubens-no-says-ai
В феврале 2018 г. французский коллекционер живописи Николя Лагро-Лассер, известный большой коллекцией городского искусства (Shepard Fairey, Ivader, Banksy, Swoon), приобрёл на аукционе Sotheby’s картину под названием «Граф Белами» (Le Comte de Belamy), созданную моделью на основе генеративно-состязательных сетей. В самом названии картины кроется «пасхальное яйцо» — фамилия Belamy является дословным переводом на французский фамилии Goodfellow. В качестве подписи художника на картине красуется математическая формулировка генеративно-состязательного подхода.
Впрочем, идеи, напоминающие парадигму GAN’ов, высказывались и ранее. Ещё в 1992 г. свет увидела статья изобретателя LSTM Юргена Шмидхубера под названием «Обучение факториальным кодам путём минимизации предсказуемости» (Learning Factorial Codes by Predictability Minimization) [2764] . В ней процесс обучения был также основан на двух противоборствующих действиях: шаги градиентного спуска, направленные на снижение уровня ошибок, чередовались с шагами, направленными на снижение предсказуемости. В 2010 г. финский исследователь Олли Ниемитало предложил в своём блоге метод, практически идентичный GAN’ам, однако эта идея не получила у него дальнейшего развития. Гудфеллоу и его коллеги, судя по всему, не были в курсе этих ранних работ. Открыв генеративно-состязательную парадигму независимо от своих предшественников, они продвинулись дальше, разработав теоретическую основу метода, осуществив серию экспериментов, показавших жизнеспособность GAN’ов, а также поделившись с сообществом исходным кодом модели.
2764
Schmidhuber J. (1992). Learning factorial codes by predictability minimization / Neural Computation, Vol. 4 (6), pp. 863—879 // https://doi.org/10.1162/neco.1992.4.6.863
Поскольку GAN’ы по своей сути были не просто моделью, а целой новой парадигмой в создании генеративных моделей, их появление вызвало к жизни множество интересных вопросов, различные ответы на которые привели к появлению множества различных воплощений изначальной идеи. Какие архитектуры должны быть у генератора и дискриминатора? Как должны соотноситься сложности этих моделей? Какое количество шагов обучения дискриминатора должно чередоваться с каким числом шагов обучения генератора? Какие целевые функции при обучении обеспечивают наилучший результат? Какие способы регуляризации этих моделей должны использоваться? Как должна меняться скорость обучения со временем? Какие факторы влияют на сходимость системы, не войдёт ли ошибка при обучении в колебательный тренд без тенденции к снижению? Многие из этих вопросов активно исследуются и в наши дни, и каждые несколько месяцев появляются новые разновидности GAN’ов для решения тех или иных специфических задач генерации изображений, звуков и даже текстов.
Давайте посмотрим на успехи нескольких популярных версий GAN.
В ноябре 2014 г. на ArXiv появилась работа Мехди Мирзы и Саймона Осиндеро «Обусловленные генеративно-состязательные сети» (Conditional Generative Adversarial Nets) [2765] . На момент публикации Мирза работал над диссертацией в Монреальском университете под руководством Бенджио и Курвилля, а бывший постдок Хинтона Осиндеро руководил исследованиями и разработкой в области компьютерного зрения в компании Flickr (на тот момент принадлежавшей Yahoo!). Идея модели, изобретённой Мирзой и Осиндеро (сегодня её кратко называют CGAN — от ConditionalGAN), довольно проста и эффективна. На вход генератора, помимо шума, подаётся некоторая обусловливающая информация (например, метка класса изображения, которое следует сгенерировать, в виде one-hot-вектора). Этой же обусловливающей информацией дополняется вход дискриминатора. Авторы специально подчёркивают, что эта информация может быть не только меткой класса, но и любыми другими данными, обусловливающими результирующее изображение. Более того, CGAN можно использовать для генерации не только изображений. В частности, авторы показывают, как эта модель успешно справляется с задачей автоматической генерации тегов для картинок, загруженных на Flickr, при этом сами теги представлены в виде классических векторов признаков, построенных при помощи алгоритма Skip-gram.
2765
Mirza M., Osindero S. (2014). Conditional Generative Adversarial Nets // https://arxiv.org/abs/1411.1784
Идея обусловливания 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 необходимы датасеты, состоящие из пар изображений (обусловливающего и результирующего). Для многих задач возможны простые преобразования, позволяющие выполнять обратную операцию: получать обусловливающее изображение из результирующего. Такие преобразования обычно связаны с потерей некоторой части информации, например с обесцвечиванием, выделением контуров (путём простых алгоритмов трассировки или же при помощи моделей, выполняющих семантическую сегментацию — выделение на изображении контуров различных объектов). Используя эти преобразования, можно создавать большие синтетические датасеты.
Обученная на некотором классе изображений 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 можно будет превращать лошадей на картинках в зебр и наоборот — это является простым примером семантической манипуляции изображением.