litbaza книги онлайнРазная литератураОхота на электроовец. Большая книга искусственного интеллекта - Сергей Сергеевич Марков

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 293 294 295 296 297 298 299 300 301 ... 482
Перейти на страницу:
кодам путём минимизации предсказуемости» (Learning Factorial Codes by Predictability Minimization)[2764]. В ней процесс обучения был также основан на двух противоборствующих действиях: шаги градиентного спуска, направленные на снижение уровня ошибок, чередовались с шагами, направленными на снижение предсказуемости. В 2010 г. финский исследователь Олли Ниемитало предложил в своём блоге метод, практически идентичный GAN’ам, однако эта идея не получила у него дальнейшего развития. Гудфеллоу и его коллеги, судя по всему, не были в курсе этих ранних работ. Открыв генеративно-состязательную парадигму независимо от своих предшественников, они продвинулись дальше, разработав теоретическую основу метода, осуществив серию экспериментов, показавших жизнеспособность GAN’ов, а также поделившись с сообществом исходным кодом модели.

Поскольку GAN’ы по своей сути были не просто моделью, а целой новой парадигмой в создании генеративных моделей, их появление вызвало к жизни множество интересных вопросов, различные ответы на которые привели к появлению множества различных воплощений изначальной идеи. Какие архитектуры должны быть у генератора и дискриминатора? Как должны соотноситься сложности этих моделей? Какое количество шагов обучения дискриминатора должно чередоваться с каким числом шагов обучения генератора? Какие целевые функции при обучении обеспечивают наилучший результат? Какие способы регуляризации этих моделей должны использоваться? Как должна меняться скорость обучения со временем? Какие факторы влияют на сходимость системы, не войдёт ли ошибка при обучении в колебательный тренд без тенденции к снижению? Многие из этих вопросов активно исследуются и в наши дни, и каждые несколько месяцев появляются новые разновидности GAN’ов для решения тех или иных специфических задач генерации изображений, звуков и даже текстов.

Давайте посмотрим на успехи нескольких популярных версий GAN.

В ноябре 2014 г. на ArXiv появилась работа Мехди Мирзы и Саймона Осиндеро «Обусловленные генеративно-состязательные сети» (Conditional Generative Adversarial Nets)[2765]. На момент публикации Мирза работал над диссертацией в Монреальском университете под руководством Бенджио и Курвилля, а бывший постдок Хинтона Осиндеро руководил исследованиями и разработкой в области компьютерного зрения в компании Flickr (на тот момент принадлежавшей Yahoo!). Идея модели, изобретённой Мирзой и Осиндеро (сегодня её кратко называют CGAN — от ConditionalGAN), довольно проста и эффективна. На вход генератора, помимо шума, подаётся некоторая обусловливающая информация (например, метка класса изображения, которое следует сгенерировать, в виде one-hot-вектора). Этой же обусловливающей информацией дополняется вход дискриминатора. Авторы специально подчёркивают, что эта информация может быть не только меткой класса, но и любыми другими данными, обусловливающими результирующее изображение. Более того, CGAN можно использовать для генерации не только изображений. В частности, авторы показывают, как эта модель успешно справляется с задачей автоматической генерации тегов для картинок, загруженных на Flickr, при этом сами теги представлены в виде классических векторов признаков, построенных при помощи алгоритма Skip-gram.

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

Для обучения pix2pix необходимы датасеты, состоящие из пар изображений (обусловливающего и результирующего). Для многих задач возможны простые преобразования, позволяющие выполнять обратную операцию: получать обусловливающее изображение из результирующего. Такие преобразования обычно связаны с потерей некоторой части информации, например с обесцвечиванием, выделением контуров (путём простых алгоритмов трассировки или же при помощи моделей, выполняющих семантическую сегментацию — выделение на изображении контуров различных объектов). Используя эти преобразования, можно создавать большие синтетические датасеты.

Рис. 155. Примеры разнообразных трансляций изображений в изображения моделью pix2pix

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

Рис. 156. «Котобуханка» от модели pix2pix

В начале 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, т. е. мы пытаемся превратить лошадь в зебру, а затем полученную зебру превратить снова в лошадь; аналогичную операцию мы проводим с зебрами — пытаемся сделать их лошадьми, а потом полученных лошадей пытаемся превратить обратно в зебр). Если генераторы идеальны, то после

1 ... 293 294 295 296 297 298 299 300 301 ... 482
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?