Комбинированная функция потерь представляет собой сумму потерь стиля и потерь содержания. Опять же, каждая из этих потерь имеет свой вес. Если придать большее значение потере стиля, то в получившейся картине будет больше стиля, и наоборот.
Изящные речи чистого разума: может ли нейросеть быть художником?
Стихи, картины и проза теперь создаются не только людьми, но и нейронными сетями. Но можно ли считать их продукцию искусством? Или художник — это автор алгоритмов или человек, обучающий нейронную сеть? Ответ зависит от того, кто спрашивает и что он подразумевает под словом «искусство». Нейрофизиолог и научный журналист Мария Пази предлагает свой взгляд на компьютерное творчество, который отличается от взгляда на искусство.
У меня есть знакомый знакомого из Бостона. Знакомый из Бостона пишет алгоритмы, а также сочиняет стихи. Когда я сменил фотографию профиля на Facebook, из Бостона пришло сообщение, что у меня есть квартет, который написан не для вас и не о вас, но вы подходите под описание:
В жаркий летний полдень Я словно в бассейн ледяной Я брошен в твои сине-зеленые, океанские глаза Твои волосы медные, окрашенные в осенний цвет.
Прекрасно, — отвечаю я, — осьминог Есенина и Лермонтова. «Волосы цвета осени» — из «Голубого костра»: хулиган Есенин обещает, чтобы «тонко коснуться твоей руки / И волос цвета осени», забыть кабаре и отказаться от поэзии. А у Лермонтова были голубые глаза, вернее, сине-зеленые: «С глазами, полными голубого огня, / С улыбкой радужной, как юный день…».
Однако эта история не о поэзии или поэтах. Я выбрал квартет на основе фотографии профиля, когда прочитал о нейронной сети, преобразующей текст в изображения. Алгоритм был разработан Open AI, некоммерческой компанией по искусственному интеллекту. Нейронная сеть была названа DALL.E — в честь усатого сюрреалиста Сальвадора Дали и его робота WALL.E. На основе текстового описания DALL.E может нарисовать что угодно — от стула с авокадо до редиски в балетной юбке, выгуливающей собаку. В открытом доступе можно найти совместимый код, который рисует вполне убедительные портреты Волдеморта и пейзажи Хогвартса. В эту нейронную сеть я загрузил стих из Бостона (что еще я собираюсь с ним делать?).
В ответ алгоритм выдал «жаркий летний полдень» и абстракцию в оттенках бирюзы и меда. Но целью было получить портрет — что я, хуже Волдеморта? Поэтому вопрос был ограничен двумя последними строчками «Твои глаза бирюзовые, цвета океана / Твои волосы медные, цвета осени…». Нейросеть послушно нарисовала пару любительских портретов и голубого щенка.
Когда реальная фотография превратилась в поэтическое описание, а затем в нейропортрет, я увлекся — прогнал через нейросеть Есенина, Блока и Бродского. В конце концов, я отобразил стихи из Neural Defence, нейронной сети, обученной на стихах Егора Летова. В 2016 году Алексей Тихонов и Иван Ямщиков из «Яндекса» создали эту нейронную сеть поэта. В своей домашней студии они записали 13 песен на тексты нейросети — альбом по замене музыки под названием 404. Что получается, если загрузить тексты нейропоэта в нейросеть художника? Алгоритм рисует красный мак на ногах и оранжевые глаза.
Игры с нейронными сетями увлекают многих людей. Немецкий энтузиаст машинного обучения Тюменцев создал ролик на тему Бытие 2:7. Иллюстрации создаются искусственным интеллектом на основе текста Библии, а текст выражается нейронной сетью, обученной на голосе Дарта Вейдера. Послушайте, как Дарт Вейдер произносит фразу «И создал Господь Бог человека из праха земного, и вдохнул в лице его дыхание жизни, и стал человек душою живою» под видеоряд психоделических образов из Ветхого Завета на Instagram энтузиаста.
Сам ты художник
Издалека «Портрет Эдмона де Беллами» выглядит как произведение классического искусства: из прямоугольника позолоченной рамы на зрителя задумчиво смотрит размытый незнакомец в темном пальто и белой рубашке. Алгоритмическое происхождение изображения раскрывается только в подписи — математической формуле, по которой был создан портрет (min G max D x log (D(x)) + z log (1 — D (G(z)))). Это Generative Adversarial Network (GAN) — система, которая ставит алгоритмы друг против друга: Одна нейронная сеть генерирует шаблоны изображений, а другая пытается отличить «правильные» шаблоны от «неправильных». Нейронные сети с общей инверсией были впервые разработаны ученым Яном Гудфеллоу. Фамилия Беллами является своего рода данью уважения к ее оригинальному создателю: good и fellow переводятся на французский язык как bel ami — Belamy.
«До аукциона портрет Беллами был просто предметом искусства. Проблема началась с момента продажи», — говорит Анастасия Четверикова, культурный критик, автор подкаста «Искусство для детей» и одноименной книги. — И тут началось: программист, создавший эту нейронную сеть, сказал: «Я автор», а ребята из французской команды Obvious, которые все это придумали, сказали: «Ты ни хрена не автор» (хотя в публичных выступлениях они благодарно кланяются программисту); если бы у нейронной сети был собственный голос, она бы, наверное, тоже сказала: «Конечно, вы меня создали, но автор здесь я». Это триада, которая еще не решена ни на каком уровне, юридическом или ином: мы не можем сказать, кто прав.
От авторства напрямую зависит ответ на вопрос: является ли работа нейросетей искусством.
Если учесть, что это все же творение человека, только инструментом была не кисть, как у художников эпохи Возрождения, а алгоритм, то это действительно искусство. Просто это делается нетривиальным способом. Что если художник — это нейронная сеть?».
Дебаты вокруг нейроискусства плотны и полны противоречий. Может ли искусственный интеллект быть художником? Может ли быть так, что алгоритм — это всего лишь инструмент? Кому — или чему — принадлежит авторское право: алгоритму, программисту, который его написал, или художнику, который его реализовал?
К сожалению, мы не можем спросить, что думает нейронная сеть. Художники, напротив, с этим не согласны. Пьер Фотрель из коллектива Obvious сказал в интервью:
«Я считаю, что нейронные сети — это инструменты в руках творческих людей. Они просто воспроизводят что-то сами по себе. Я не говорю «создает», потому что настоящим творцом остается художник. Творчество присуще только людям. Какой бы умной ни была ваша собака, ее нельзя назвать творческой.
Герман Тюменцев, создатель нейроклипа Библии, больше не рассматривает алгоритм как простой инструмент, но он не готов отдать авторство машине:
«Все данные, на которых обучается алгоритм, а также его архитектура, определяются человеком. Поэтому в своем качестве автора я упомяну всех участников одновременно. Например: Работа была выполнена автором X с использованием алгоритма Y инженером Z. Кто является главным автором? Следует ли считать программиста соавтором — это вопрос в смысле «являются ли изобретатели фотоаппарата соавторами всех фильмов»? Идея играет большую роль в любой творческой работе. Разные люди могут прийти к совершенно разным результатам, используя один и тот же алгоритм, учитывая свой жизненный опыт и мнение по тому или иному поводу.
Допустим, мы с Германом Тюменцевым по-разному использовали один и тот же код. Я загрузил Эссена; Герман загрузил Библию. Я загрузил его, потому что он «случился»; история клипа Германа более интересна. Первоначально он обучил нейронную сеть «разговаривать» с образцами электронной музыки. Однако из-за малого количества слов в электронной музыке нейронной сети не хватило данных, и произошло то, что называется недоподгонкой — сеть пыталась что-то сказать, но звучало это как адские крики. «Крики из ада» стали поводом для размышлений на религиозные темы и создания иллюстраций на основе библейских текстов.
Кто с кого списывал
Машины обвиняют в том, что они не способны создавать что-то принципиально новое, как люди, а лишь эксплуатируют заученные шаблоны. Защитники ИИ защищают себя сами — но люди учатся аналогичным образом: Мы воспринимаем тексты, образы и музыку многих других людей и учимся создавать свои собственные. Позвольте мне привести вам пример.
Помните ли вы, что в бостонском стихотворении «голубые» глаза были позаимствованы у Лермонтова? Михаил Юрьевич не в первый раз сталкивается с литературным воровством. Голубой» также был взят у Владимира Соловьева (не того, о котором вы думаете, а поэта, философа и мистика XIX века). «С пурпуром небесного великолепия, с глазами, полными голубого огня», София, Премудрость Божия, явилась Соловьеву в пустыне близ Каира во время его третьей встречи. Владимир Соловьев признался, что украл «голубой огонек» у Лермонтова. Его чувство юмора таково: украл и украл, так что не надо мямлить. Но тот, кто смеется последним, смеется хорошо. Блок даже пошутил после этого. Он сказал, что Софья Соловьева превратилась в Прекрасную Женщину, то есть в траурную проститутку. Мудрость Божья была унижена.
Кредиты также не являются единичными в живописи. В своей книге «Искусство для детей» Анастасия Четверикова объясняет, как Босх очаровал сюрреалистов своего времени. Сальвадор Дали также копировал Босха: характерные монстры появляются на некоторых его набросках. А из триптиха «Сад наслаждений» Дали взял холм с ползающими по нему всевозможными существами, перевернул его вверх ногами и создал человеческий профиль для своей картины «Великий мастурбатор». Этот профиль, заимствованный у Босха, в котором Дали узнал себя, потом долгое время блуждал по работам сюрреалиста.
Если «вселенная не будет разбираться, кто с кого списывал», — так ли отличается заимствование паттернов алгоритмом от заимствований художников?
«Искусство — это все-таки отображение реальности через призму эмоционального состояния, — говорит Денис Малимонов, автор телеграм-канала «Нейроарт», — а нейронная сеть — это просто копия. Нет ни эмоционального опыта, ни размышлений, ни воображения. Нейронная сеть может составить карту заката — но закат не делает ее грустной. Он может синтезировать лица несуществующих людей — но он «воображает» их только в строгом контексте данных, которому его обучили. Допустим, нейронная сеть была обучена на тысячах фотографий людей: все они отличаются пропорциями, шириной носа, цветом глаз — но по расположению носа, глаз и рта они одинаковы. Алгоритм не пойдет дальше этого, переставляя рот и глаза, он никогда не «представит» три глаза и т.д.».
«Человеческий разум, с другой стороны, абсолютно невозможно втиснуть в рамки, — продолжает Анастасия Четверикова, — он мыслит иначе, нетривиально, не «механически». Машина не может конкурировать с этим, даже если вы обучите ее самым креативным данным, таким как работы Уорхола.
Нейронные сети действительно воспроизводят опыт, как и люди, но с одним ограничением: они воспроизводят его автоматически, потому что не способны придать смысл объектам, которые они создают.
Рассматривая архитектуру VGG-19 (см. пункт 2), мы видим, что выход блока слоя_1_conv_1 имеет размерность (m, n, 64). Для простоты предположим, что m,n = 3,2 и количество фильтров также равно 2, а не 64.
Где попробовать
Интернет и ноутбук Google в облаке — это все, что вам нужно для работы с алгоритмом. Мы уже писали о ноутбуках Jupyter, но вот основные моменты для каждого случая:
- Блокнот — это среда выполнения кода, которая позволяет видеть результат выполнения всех частей кода сразу. В нашем случае это среда Python, но есть блокноты и для других языков.
- Вы можете запустить эту среду на своем компьютере или использовать облачные ноутбуки. Если вы запустите его самостоятельно, ноутбук сможет использовать все системные ресурсы и работать быстрее. Если он находится в облаке, то используются ресурсы облачного компьютера.
- Примером такого облачного ноутбука является Google Kolab. Им можно поделиться с кем угодно, и каждый, у кого есть подключение к ноутбуку, может запустить тот же алгоритм.
Вот ноутбук, на котором можно запустить этот алгоритм. На случай, если оригинальный ноутбук больше недоступен, мы сделали собственную копию.
Куда писать свой текст?
Прокрутите до середины блокнота и найдите настройки для этого прогона. Появится переменная подсказка — она определяет набор, для которого алгоритм будет рисовать изображение. Что вы напишете здесь, то и получите. А может, и не совсем, но тоже подойдет для ваших нужд. А может, и не будет. Мы не знаем, это нейронная сеть, там все непредсказуемо.
Где увидеть результат
Прокрутите страницу до самого низа, и вы увидите индикатор выполнения:
Так вы узнаете, на каком этапе находится ваша фотография. Через каждые 10 процентов блокнот показывает промежуточный результат. Вы можете видеть, как меняется изображение на следующем этапе расчета:
Последнее изображение, на котором написан шаг 999, является конечным результатом работы алгоритма.
В жаркий летний полдень Я словно в бассейн ледяной Я брошен в твои сине-зеленые, океанские глаза Твои волосы медные, окрашенные в осенний цвет.
Создание нового изображения
Наша цель — создать новый образ, сочетающий в себе содержание одного образа и стиль другого. Давайте сначала посмотрим на содержание.
3.1. Информация о содержимом
В предыдущем разделе мы установили, что выходы глубоких слоев нейронной сети помогают определить содержание изображения. Теперь нам нужен алгоритм для извлечения этого содержимого. Для этого мы используем известные математические методы: функции потерь и обратное распространение.
4.1. 5 слоев с одинаковыми весами потерь, 1 слой содержимого
Мы используем это изображение в качестве базового для сравнения эффектов изменения гиперпараметров.
4.2. Повышаем вес функции потерь стиля с 0.005 до 0.1
Как и ожидалось, увеличение этого веса заставило алгоритм уделять больше внимания стилю. Следовательно, восстановленное изображение содержит лучшее сочетание желтого и синего цветов.
4.3. Используем один слой для стиля
Использование одного слоя для потери стиля не приводит к впечатляющим изображениям. Возможно, поскольку стиль состоит из различных теней и пространственных особенностей, для его визуализации требуются фильтры из разных слоев.
4.4. Используем другой слой в функции потерь содержимого
Использование слоя block_1_conv_1 для получения информации о содержимом заставляет сетку извлекать глобальные особенности из целевого изображения. Скорее всего, это влияет на глобальные особенности образа стиля, и передача стиля становится ужасной. Я думаю, что результат показывает, почему глубокие слои являются рекомендуемым выбором для передачи нейронного стиля. Они сосредоточены исключительно на локальных деталях, связанных с основными объектами изображения содержания, и обеспечивают плавную передачу темы изображения стиля.
4.5. Назначаем веса слоев стиля вручную 0.4, 0.3, 0.2, 0.05, 0.05
Хотя разница между изображением из шага 4.1 и этим изображением незначительна, мне кажется, что это изображение в целом имеет более светлый оттенок. Вероятно, это результат более сильного взвешивания слоя block_1_conv_1, который создает белый тон из панели «Звездная ночь» в соответствии с шагом 4.3.