Как нарисовать Мону Лизу без кистей и красок?

Автор: nathaliem19. Рисуем Мону Лизу используя глубокое обучение с подкреплением. Пост написан специально для всех любителей искусства (и, возможно, машинного обучения). На самом деле, специально для лучшего курса по MLhttps://github.com/spbu-math-cs/ml-course. В этом посте я хочу рассказать о том, как же научить машины рисовать так, как рисуют люди-художники, которые, используя небольшое количество мазков, создают фантастические картины.

Живопись является важной формой искусства, символизирует человеческую мудрость и творчество. Но людям трудно овладеть этим навыком, не потратив много времени на надлежащее обучение. Поэтому обучение машин рисованию является важной, но сложной задачей, которая помогает пролить свет на тайну живописи.

Сейчас мы с вами попробуем разобраться, как обучить искусственный интеллект последовательно наносить штрихи на холст, чтобы создать картину, похожую на заданное изображение. Будем называть машину, которая рисует, агентом. Кратко идею можно разделить на три пункта:

  1. Научить агента раскладывать изображение на составляющие: агент должен проанализировать целевое изображение, понять текущее состояние холста и иметь дальновидные планы относительно будущих штрихов.
  2. Создать пространство штрихов, которыми может пользоваться агент, учитывая различные параметры: расположение штриха, цвет, прозрачность и форма.
  3. Создать рендер (средство визуализации), который может имитировать рисование сотен штрихов на холсте.

Давайте начнем.

Как научить агента раскладывать изображение на штрихи?

Как я уже писала, цель агента – разложение заданного целевого изображения на штрихи, которые могут воссоздать изображение на холсте (с помощью рендера). Чтобы имитировать процесс рисования, агент должен уметь прогнозировать следующий штрих на основе наблюдения за текущим состоянием холста и целевым изображением. Каждый штрих должен как можно более правильно соотноситься с предыдущим и следующим, чтобы уменьшить общее количество штрихов и быстрее нарисовать картину.

mona1.pngОбщая архитектура: на каждом шаге агент получает текущий холст и итоговое изображение, анализирует его, и выдает набор параметров штриха, затем рендер визуализирует его и получается следующее состояние холста.

Сейчас нам как раз пригодится обучение с подкреплением. Для тех, кто никогда не сталкивался с ним – обучение с подкреплением можно сравнить с дрессировкой собаки. Чтобы научить своего питомца выполнять определенную команду, нужно его подкармливать вкусняшками за каждое правильное действие. Так и в машинном обучении – есть окружающая среда, которая поощряет действия агента, которые приводят к правильному результату (картине).

Подробнее
Пожалуйста, оцените статью:
Ваша оценка: None Средняя: 5 (1 vote)
Источник(и):

Хабр