8 декабря — Международный день художника

Поговорим с экспертами МГУ и фонда «Интеллект» в области искусственного интеллекта. Как работают нейросети? Какие картины можно нарисовать, используя их? Может ли нейросеть заменить художника?

Дмитрий Пензар – преподаватель факультета биоинженерии и биоинформатики МГУ, факультативов по машинному обучению и программированию на Python и R, разработанных при поддержке фонда «Интеллект»:

«В основе большинства подходов к проблеме генерации изображений по запросу человека лежит следующая идея. Мы даем модели на вход случайный шум и текстовое описание (в данном случае был задан запрос «студенты, Московский университет, ИИ, экзамены, Новый год»), а на выходе хотим, чтобы она сгенерировала изображение, соответствующее текстовому описанию. Это можно делать очень разными подходами. Наиболее популярны подходы, которые генерируют изображение за несколько шагов оптимизации.

В случае нашумевшей недавно StableDiffusion нейросеть натренирована таким образом, что она может из зашумленной картинки получать менее зашумленную, используя в качестве помощи описание того, что есть на картинке.

Генерируем с ее помощью следующим образом. Даем шум в виде картинки, получаем на выход изображение, где часть шума была убрана, чтобы соответствовать текстовому описанию. Повторяем шаг 1 несколько раз (например, 1000), но каждый раз на вход даем то, что нейросеть выдала на прошлом шаге.

StableDiffusion
8 декабря — Международный день художника, image #2
8 декабря — Международный день художника, image #3
8 декабря — Международный день художника, image #4
8 декабря — Международный день художника, image #5
8 декабря — Международный день художника, image #6
1 of 6
StableDiffusion

Не менее известен и подход, использующийся в Dream by WOMBO, – VQGAN+CLIP. У нас есть сеть, умеющая генерировать изображение из шума (VQGAN). Она не умеет понимать текст. И у нас есть сеть, которая умеет говорить, насколько данное текстовое описание похоже на данную ей на вход картинку (CLIP). С помощью этой сети генерируем так. VQGAN генерирует какую-то случайную картинку на основе вектора Z (изначально он или случаен, или получен из изображения-основы). CLIP оценивает, насколько сгенерированная картинка похожа на текстовое описание и сообщает об этом VQGAN, вектор Z немного меняется с учетом этого. Возвращаемся к первому шагу».

Dream by WOMBO
8 декабря — Международный день художника, image #8
8 декабря — Международный день художника, image #9
8 декабря — Международный день художника, image #10
8 декабря — Международный день художника, image #11
8 декабря — Международный день художника, image #12
1 of 6
Dream by WOMBO

Виктор Немченко – преподаватель курса «Нейронные сети и их применение в научных исследованиях», разработанного при поддержке фонда «Интеллект»:

«Принцип работы нейросети по генерации изображения таков: нейросеть генерирует картинку из случайного шума на основе изображений, которые она «видела» при обучении. Из этого шума нейросеть делает вычисления с помощью своих параметров.

Качество изображения может зависеть от количества параметров и алгоритмов вычисления. У разных нейросетей они разные. Поэтому в одной нейросети мы можем получать изображения всегда хуже, чем в более продвинутой. Но и в продвинутой нейросети мы можем получить плохое изображение. Также благодаря случайности начального шума, мы будем получать разные результаты при разных попытках генерации.

В интернете можно найти много хороших примеров генераций, потому что плохими примерами люди меньше делятся. Как правило, хорошие примеры выбираются из тысячи неудачных. Здесь хорошо подойдет аналогия с музыкой. Есть исполнители, чья музыка становится хитом, но это не гарантирует нам, что все остальные композиции от этого исполнителя будут хитами.

Может ли нейросеть заменить художника?

С одной стороны, может. Она генерирует картинки, глядя на которые, мы можем сказать, что это сделал человек. С другой стороны, искусство все же про другое. Вопрос дискуссионный. Задачей, чтобы нейросеть всегда генерировала по текстовому запросу качественные изображения, занимается множество исследователей и разработчиков. Успехи последних лет являются подтверждением тому, что это у них получается. На бытовом уровне нужно пробовать много раз и с разными запросами, чтобы получить то, что вам хочется. Написание эффективных запросов для нейросетей – это совсем нетривиальная задача».

317 views·21 shares
317 views