Шрифт:
Интервал:
Закладка:
Несмотря на популярность генеративно-состязательного подхода при создании изображений, он обладает и некоторыми недостатками. Из-за сложных нелинейных эффектов, которые возникают при совместном обучении двух моделей, процесс обучения может растягиваться на длительное время или вовсе не приводить к желаемому результату. Часто бывает сложно найти обеспечивающее успех обучения соотношение архитектур моделей, структур функций потерь и различных гиперпараметров, что делает эксперименты в области генеративно-состязательных систем вычислительно затратными и довольно плохо предсказуемыми. Поэтому параллельно с генеративно-состязательной парадигмой развиваются и альтернативные подходы, например авторегрессионные модели[2791]. Наверное, самыми известными моделями такого рода в середине 2010-х гг. стали PixelRNN[2792] и PixelCNN[2793]. Эти модели в явном виде эксплуатируют зависимости между пикселями изображения, пытаясь предсказать очередной пиксель, опираясь на уже сгенерированные. При этом PixelRNN — это рекуррентная архитектура на базе LSTM, которая рассматривает изображения в качестве последовательностей пикселей, а PixelCNN — свёрточная архитектура, получающая на вход уже сгенерированную часть картинки. Дополнительно на вход сети можно подавать различного рода обусловливающие векторы, например содержащие информацию о классе генерируемого объекта или о наборе его признаков. Этот набор признаков можно получить в результате подачи эталонной картинки на вход свёрточной нейронной сети, обученной решению задачи классификации. В таком случае при помощи генеративной модели можно создавать альтернативные изображения объекта на эталонной картинке.
Вскоре после появления оригинальной PixelCNN (и предложенной в оригинальной работе её модифицированной версии — Gated PixelCNN) был создан и её усовершенствованный вариант — PixelCNN++[2794]. Сама по себе идея авторегрессионного моделирования многомерных дискретных данных при помощи глубоких нейронных сетей появилась задолго до PixelRNN и PixelCNN, но популярность в области генерации изображений она обрела только в середине 2010-х гг., под влиянием возросшего интереса к этой области.
Авторегрессионные модели можно рассматривать в качестве декодеров, роль латентного пространства в которых выполняет обусловливающий вектор.
Ещё одной альтернативой генеративно-состязательным сетям являются так называемые диффузионные модели [Diffusion Model], создатели которых черпали своё вдохновение в неравновесной термодинамике. Обычно диффузионные модели учатся выполнять шаги, восстанавливающие изображение по его зашумлённой версии, для чего в обучающую выборку включаются пары картинок, в которых одна картинка была создана из другой путём диффузии, то есть добавления шума. Научившись обращать процесс диффузии вспять, модель затем может быть использована для того, чтобы в ходе цепочки последовательных шагов создавать картинки вообще из случайного шума. В качестве примеров диффузионных моделей можно назвать «Диффузионные вероятностные модели» [Diffusion probabilistic models][2795] и «Диффузионные вероятностные модели, устраняющие шум» [Denoising diffusion probabilistic models][2796], [2797]. Исследования последних лет демонстрируют способность диффузионных моделей превзойти генеративно-состязательные сети в качестве генерации изображений[2798], но сам процесс синтеза у диффузионных моделей вычислительно более затратен, так как требует выполнения большого количества шагов.
В принципе, в рамках GAN роль генератора вполне может выполнять авторегрессионная или даже диффузионная модель, однако в реальных генеративно-состязательных сетях в качестве генераторов обычно используются относительно легковесные модели (например, развёрточные [deconvolutional] сети, а в последнее время даже и трансформеры[2799]), в противном случае и без того затратный и плохо предсказуемый процесс обучения GAN грозит стать непомерно дорогим и рискованным. Если же исключить из обучения состязательную часть, то можно позволить себе использование более сложной модели, в том числе такой, которая будет генерировать изображение при помощи многошагового процесса. Выбор конкретного подхода, как всегда, зависит во многом от специфики задачи — требований к скорости генерации и к её качеству, объёма обучающей выборки, наличия и типа разметки и так далее.
6.6.9 Машина как художник. Создание изображения по текстовому описанию
Конечно, возможности современных генеративных моделей компьютерного зрения не безграничны. Решать некоторые творческие задачи на уровне, сопоставимом с уровнем людей-профессионалов, машины пока что не умеют. И попытки решения таких сложных задач представляют, как мне кажется, наибольший интерес на данный момент — ведь они демонстрируют то, что в наши дни составляет передовой край искусственного интеллекта. Примером такой сложной задачи является генерация изображения по его текстовому описанию. Качество полученных результатов пока что вызывает вопросы, однако видно, что цель уже близка.
В 2018 г. группа исследователей из университетов США и Китая в статье под названием «StackGAN++: синтез реалистичных изображений при помощи последовательности генеративно-состязательных сетей» (StackGAN++: Realistic Image Synthesis with Stacked Generative Adversarial Networks)[2800] представила две версии генеративной архитектуры StackGAN.
Архитектура StackGAN-v1 предназначена для генерации изображения на основе текста. Эта архитектура основана на использовании сразу двух моделей, отвечающих за две стадии генерации изображения. Модель, отвечающая за первую стадию, создаёт на основе текста примитивный набросок изображения, обладающий низким качеством и слабым разрешением. На второй стадии другая модель, получив на вход результат работы первой модели, генерирует фотореалистичное изображение высокого разрешения.
Вторая версия архитектуры (StackGAN-v2) может быть использована для генерации изображений как при наличии текстового описания, так и при его отсутствии. StackGAN-v2 состоит из нескольких генераторов и дискриминаторов, организованных в древовидную структуру, при этом изображения различного масштаба, соответствующие одной и той же задаче, генерируются моделями, расположенными в различных ветвях этого дерева.
Обе модели вполне успешно справляются с задачей генерации изображения по тексту — улучшение качества картинок по сравнению с более ранними исследованиями в этой области заметно невооружённым глазом. Однако результаты удалось продемонстрировать только для специализированных наборов данных с искусственно уменьшенным числом классов изображений. Ниже приведены результаты работы обеих версий StackGAN на датасете Caltech‑UCSD Birds 200 (CUB-200), содержащем почти 12 000 изображений 200 видов птиц[2801], [2802].
Рис. 164. Генерация изображений птиц по тексту (модель StackGAN)
Увеличение изображений — отдельная интересная задача в области компьютерного зрения. Обычно для её обозначения используют термины «повышение разрешения изображения» (Image Super-Resolution, ISR) и «восстановление высокого разрешения» (Super-Resolution Reconstruction, SRR). За последние несколько лет было создано множество нейросетевых архитектур для решения этой задачи. Большая часть из них основана на свёрточных нейронных сетях. На практике существует несколько разновидностей задачи повышения разрешения. Первую называют обычно увеличением разрешения для одиночного изображения (Single Image Super-Resolution, SISR). SISR предполагает, что у нас есть одиночное изображение с низким разрешением, природа которого может быть разной. Возможно, это изображение получено из изображения высокого разрешения при помощи какого-либо известного или неизвестного нам алгоритма для уменьшения размера изображения, а возможно — изначально является продуктом оцифровки с низким разрешением. Быть может, изображение и вовсе является результатом работы некоторого алгоритма (как в случае со StyleGAN). Словом, природа исходного изображения может быть разной, а результатом