Генеративно-состязательные сети могут производить множество оригинальных картин намного быстрее, чем живой художник. Но можно ли назвать его произведения творчеством? Давайте обсудим природу творчества, а также попробуем немного заняться творчеством сами с помощью компьютера.
Этот пост является частью инициативы AI April. Каждый день апреля мои коллеги из Microsoft пишут интересные статьи на тему AI и машинного обучения. Посмотрите на календарь — вдруг вы найдёте там другие интересующие вас темы. Статьи преимущественно на английском.
Как вы наверное знаете, я люблю экспериментировать с разными техниками использования ИИ для создания произведений в жанре Science Art, например в стиле когнитивного портрета или GAN Paintings:
Ирина, 2019, People Blending | Летний пейзаж, 2020, keragan |
Искусственный интеллект стал применяться многими людьми искусства для создания своих произведений. Например, виртуальный композитор AIVA был признан французским сообществом музыкантов SACEM. Первые попытки создавать компьютерную музыку начались ещё с Алана Тьюринга, и продолжаются и по сей день. Например, в прошлом году на мероприятии Microsoft Digital Transformation Summit, наши партнёры из Awara IT совместили музыку и визуальные образы в представлении "Нейро-Кандинский".
Но может ли ИИ создавать искусство?
Чтобы в этом разобраться, сначала стоит определиться с самим определением понятия искусство. Вот что говорит по этому поводу английская Wikipedia (перевод мой):
Искусство — это широкий диапазон человеческой деятельности по созданию визуальных, аудиальных или кинестетических артефактов, выражающих воображаемые или концептуальные идеи автора или его технические навыки, и предназначенных для наслаждения их красотой или эмоциональной силой.
По какой-то причине такое определение чётко ограничивает искусство человеческой деятельностью, однозначно решая поставленный нами вопрос отрицательно. Тем не менее, глядя на некоторый художественный артефакт, иногда бывает сложно сказать, был ли он создан исключительно человеком. Русская Wikipedia даёт более интересное определение:
Обычно под искусством подразумевают образное осмысление действительности; процесс и итог выражения внутреннего и внешнего (по отношению к творцу) мира. Критерием искусства является способность вызывать эмоциональный отклик у других людей.
Мы видим, что в обоих случаях определения завязаны на способность эмоционально влиять на другого человека, и основной способ отделить "мусор" от "настоящего искусства" — это как-либо измерить силу такого влияния. Поэтому можно сформулировать такое более практическое определение:
Некоторый артефакт может считаться искусством, если он высоко оценивается ценителями, например, покупается на аукционе.
А теперь давайте вспомним картину Edmond de Belamy, нарисованную генеративно-состязательной сетью и проданную на аукционе Christie's более, чем за $400K.
Однако, такое определение не всегда отражает внутреннюю красоту артефакта. Например, в примере выше, такая значительная сумма была заплачена не за саму картину как таковую, а за факт первой покупки картины, созданной ИИ. Примерно по такой же причине баночка Coca-Cola или Pepsi стоит дороже безымянной газировки — мы платим за бренд. Ценность представляет собой не только сама работа, но и история, которая за ней стоит. А эта история всегда создаётся человеком...
Кто же создаёт искусство?
Мы поняли, что только человек может создать историю, придающую дополнительную ценность художественному артефакту, поскольку у человека есть внутренняя мотивация к творчеству. Теперь давайте рассмотрим процесс создания самого артефакта.
Например, в технике когнитивного портрета мы использовали обученную нейросеть для извлечения координат опорных точек лица из фотографии, чтобы потом автоматически с помощью алгоритма расположить фотографии определённым образом. Итоговый результат зависит от алгоритма, запрограммированного человеком, и через этот алгоритм мы получаем желаемый художественный результат, которые несёт нужное сообщение и эмоциональный эффект.
Взросление, 2020, Cognitive Portrait |
Например, картина выше получена из 50 фотографий моей дочери, которые сгруппированы по различным возрастным интервалам. В результате работа показывает процесс взросления. Работа ниже, которая получена из того же набора фотографий, показывает круговорот жизни, когда мы крутимся в колесе событий:
Круговорот людей, 2020, Cognitive Portrait |
При создании этих работ использовались нейросети и аффинные преобразования как мощный инструмент. Можно было бы проделать тот же самый процесс вручную в Photoshop, выравняв все изображения, но это было бы существенно более трудоёмким занятием, и затруднило бы быстрое экспериментирование.
Случай с генеративно-состязательными сетями более сложный, поскольку кажется, что натренированная на реальных картинах нейросеть способна самостоятельно производить новые оригинальные произведения. На самом деле, нейросеть действительно училась рисовать, причем похожим на человека образом. Глядя на изображения в процессе обучения, она выхватывает типовые образы, начиная с низкоуровневых (отдельные мазки краски или структура холста), и заканчивая отдельными структурными элементами (нос, глаза, листья дерева) и композицией картины в целом. Примерно таким же образом ребенок начинает выделять паттерны из световых пятен перед собой, и художник приобретает художественный вкус и вдохновляется, изучая множество работ ранних авторов.
Обучившись, нейронная сеть случайно комбинирует эти фрагменты знаний в произведение. Этим она существенно отличается от человека, которые как правило имеет в голове некоторую высокоуровневую задумку или идею, которую он затем выражает на холсте, используя известные ему ранее техники. Кроме того, он может придумывать и новые техники, ранее не опробованные никем другим.
У человека есть цель, идея и мотивация которые направляют его работу, в то время как искусственный интеллект действует случайно.
Давайте посмотрим на пару изображений, созданных одной и той же нейросетью:
- | В деревне, 2020 |
Для нас эти изображения явно отличаются — слева "мусор", а справа — неплохая работа, которая вызывает у нас какие-то чувства. Однако для компьютера эти изображения примерно одинаковы, и они получили одинаково хорошие оценки нейросети-дискриминатора. Человек содержит в себе некоторое понимание, последнее слово, относительно того, что является красивым, а что — нет. Красивое — вызывает в нас чувства. А искусственный интеллект (пока) бесчувственный.
Вернемся к процессу создания работы. Чтобы её создать, человеку пришлось:
- Подготовить набор данных для обучения. Важно понимать, что ИИ обучается на наборе картин реальных художников, т.е. он пытается уловить паттерны того, что заведомо является красивым, и отразить человеческий взгляд на это.
- Произвести оптимизацию гиперпараметров, сталкиваясь в процессе много раз с тем, что нейросеть производит на свет "уродцев".
- После оптимизации, отобрать лучшие работы из нескольких тысяч работ, сгенерированных нейросетью. Именно благодаря такой "человеческой экспертизе" на выходе получаются достойные работы.
- Придумать историю, стоящую за картиной, или хотя бы её название. Наконец, человек может выставить картину на продажу, тем самым окончательно придав ей художественную ценность.
Создание искусства искусственного — это совместный процесс, в котором человек работает совместно с инструментами слабого ИИ для создания желаемого (человеком) художественного эффекта.
К слову — проблема того, кто является автором художественного произведения, появилась независимо от искусственного интеллекта, и не является специфической для ИИ. Например, японский фотограф Тэцуя Кусу во время своего путешествия по США использовал камеру, которая сама делает снимки с определённой периодичностью, и собрал галерею работ, которые были сделаны камерой (английский оригинал этой истории). Этот процесс очень напоминает случай с GAN: чтобы получить на выходе что-то красивое, человек может получить большой набор случайных изображений, и затем отфильтровать их в поисках чего-то стоящего. Только человек обладает внутри себя критерием красоты, а не нейросеть, и не фото-камера.
Такой процесс выборки красоты из мусора напоминает поиск методом случайного блуждания. Этот процесс, безусловно, существенно менее эффективен, чем направленный градиентный спуск, или процесс, при котором художник сначала вынашивает в голове замысел, и потом реализует его на холсте. В случае с GAN человек придумывает замысел уже потом, когда произведение уже создано путем случайной комбинации паттернов.
Давайте творить искусство вместе!
В конце этой заметки я хочу предложить вам немного поупражняться в креативности и показать, что навыки программирования и немного искусственного интеллекта позволяют нам стать художниками! Предлагаю вам придумать свою собственную технику когнитивного портрета, на основе уже разработанных! Подробнее про технику можно почитать тут.
Как это сделать:
- Идём в репозиторий: http://github.com/CloudAdvocacy/CognitivePortrait
- Посмотрите на существующий код, который оформлен в виде Jupyter Notebooks. Самый простой способ это сделать — это открыть проект в Azure Notebooks.
- Клонируйте (fork) репозиторий и создайте свой собственный код, создающий новый тип когнитивного портрета! При этом лучше соблюдать некоторые правила:
- Если вы будете существенно менять код в ноутбуке — скопируйте его в другой файл, чтобы исходный код сохранился. Это позволит людям в дальнейшем видеть как ваш код, так и существующий.
- Если вы хотите загрузить свои картинки — создайте поддиректорию внутри директории
images/
, чтобы картинки не конфликтовали друг с другом. - После того, как вы нарисовали свой портрет, запишите пример в директорию
results
, чтобы все могли видеть пример. - Файл
readme.md
содержит галерею различных техник, пожалуйста добавьте в табличку ваше имя, ссылку на код и получившийся пример. - Наконец, сделайте pull request, чтобы я включил ваш код в исходный репозиторий!
Некоторые идеи для вдохновения:
- Начните с простого — создайте ваш собственный портрет, поместив изображения в
images/your_name
, и запустите существующие ноутбуки на ваших изображениях, сохраните результаты вresults/your_name.jpg
. - Сделав это и полюбовавшись, скопируйте один из ноутбуков в новый файл и начинайте экспериментировать! Попробуйте расположить глаза вдоль некоторой кривой, добавьте случайные отклонения координат глаз от центральной точки, пробуйте делать другие безумства с координатами опорных точек лица!
- Face API может вернуть вам много другой полезной информации, кроме координат: пол, возраст, углы поворота головы и т.д. Вы можете использовать эти данные для фильтрации только подходящих изображений, например, углы поворота головы позволяют выделить только те фото, на которых люди смотрят прямо в камеру.
- Не забудьте добавить свой результат в
readme.md
и послать мне pull request!
Я надеюсь на ваши плодотворные идеи, чтобы в конце месяца я мог поделиться ими в своём блоге и соцсетях, и порадоваться вместе с вами! Призов не обещаю, хотя в частном порядке за лучший результат с удовольствием подарю свою книжку по F# с автографом, самовывозом из офиса Microsoft в Москве, когда он откроется...