Эксперимент со StyleGAN
https://t.me/project_logВводные размышления
В эссе «От картины к файлу и обратно» Борис Гройс размышляет о взаимоотношении исходного кода файла и изображения, которое из него получается при просмотре.
Со слов Гройса, доступ к исходному коду закрыт для зрителя (потому что человек не в состоянии воспринимать набор единиц и нулей), и каждый раз просматривая изображение мы имеем дело с репрезентацией этого туманного кода. Репрезентация эта будет иной из раза в раз, даже если исходный код остается тем же. Это обусловлено различием условий, в которых файл открыт (простой пример — различие в отображении картинки разными устройствами). Значит, исходный код всегда остается недоступным.
Если мы не имеем доступа к исходному коду и он может манифестировать себя бесчисленным множеством способов, интересно как минимум найти способ придать этому коду некую идентичность. В случае цифровых файлов, Гройс говорит об инсценировке: «чтобы быть увиденным, цифровое изображение должно быть не просто выставлено, но инсценировано». То есть человек (куратор) должен выбрать одну из репрезентаций и выставить ее, создать вокруг нее некую театральность, драму, перформанс. В таком случае, как я понимаю, у зрителя будет больше шансов самоидентифицироваться с изображением, и тем самым оно обретет свою идентичность.
Похожий подход можно попробовать применить к размышлению над искусственным интеллектом, над внутренним содержанием нейросетей и попыткой заглянуть внутрь них.
Размышления о StyleGAN
Генеративно-состязательные сети (GAN) состоят из двух нейросетей: генератора и дискриминатора. Задача генератора — производить изображения. Дискриминатор должен распознать настоящее ли это изображение (сравнивая его с реальными данными). В ходе тренировки GAN сети происходит соревнование: генератор пытается как можно успешнее «обмануть» дискриминатор. После успешной тренировки генератор может производить фотореалистичные картинки.
Генератор в StyleGAN достаточно умный, чтобы научиться фиксировать отдельные характеристики производимых изображений. В случае лиц — пол, цвет кожи, цвет волос, и так далее.
Проводя аналогию с размышлениями Гройса мы можем сказать, что содержимое нейросети, ее структура и «знания» всегда от нас скрыты. Алгоритм может сгенерировать множество изображений, но никакое из них, как и их сумма, не исчерпает туманности ее исходного кода.
Согласно Гройсу же, самоидентичность возникает при инсценировке. А значит, нейросеть должна произвести нечто курируемое человеком. И, как мне кажется, чем более личным будет этот процесс курирования, тем большей стабильностью будет обладать идентичность произведенного изображения.
Говоря о StyleGAN, мы имеем возможность так называемого проецированная в латентное пространство нейросети. Используя бытовую терминологию, изображение может быть «спроецировано сквозь» нейросеть, и таким образом нейросеть исказит его в соответствии со своей природой. Или, говоря другими словами, алгоритм постарается выдать нечто похожее на входное изображение в соответствии со своим «видением мира».
Эксперимент
Для эксперимента я взял нейросеть StyleGAN 2, натренированную на человеческих лицах. А в качестве изображений для проекции я взял самое личное для себя — мое собственное лицо.
Первая попытка — проекция разных ракурсов:
Результат, собранный в видео. На каждой итерации алгоритм пытается приблизиться к изображению моего лица используя свои знания о мире:
Из эксперимента видно, что:
- Алгоритм не очень любит такое кадрирование — формы лица сильно искажаются.
- Алгоритм не понимает ракурсов. То есть смена ракурса в основном приводит к искажению формы, а лицо остается в анфас.
Вторая попытка — такие же ракурсы, другое кадрирование:
Результат:
Как мне кажется, результат получается более похож на человека.
Инсценировка
Финальным шагом необходимо из получившегося набора выбрать что-нибудь одно, наиболее меня трогающее, и уместить в фотографию.
Мне кажется, сегодня я создал нечто жуткое, и с этим мне теперь жить.
Материалы
Код и пэйпер StyleGAN
Код и пэйпер StyleGAN2
Несколько вводных статей о работе GAN:
- https://www.freecodecamp.org/news/an-intuitive-introduction-to-generative-adversarial-networks-gans-7a2264a81394/
- https://heartbeat.fritz.ai/introduction-to-generative-adversarial-networks-gans-35ef44f21193
- https://heartbeat.fritz.ai/stylegans-use-machine-learning-to-generate-and-customize-realistic-images-c943388dc672