Pull to refresh

Коллаборационный подход в машинном творчестве

Reading time5 min
Views3.6K

Введение


Природа человеческого творчества изучена ещё меньше, чем природа интеллекта. Тем не менее, машинное творчество, как направление в искусственном интеллекте, существует. Здесь поставлены проблемы написания компьютером музыки, литературных и живописных произведений, а создание реалистичных образов уже широко используется в кино и индустрии игр. Созданные системы позволяют производить конкретные образы, легко воспринимаемые человеком, что особенно полезно для интуитивных знаний, проверка которых в формальном виде требует значительных умственных усилий [1].
Под катом вас ждет краткий обзор предметной области, предлагаемый мной подход к написанию музыки компьютером и немного математики.


Как это было


Развитие электронной вычислительной техники уже на ранних этапах привело ее к «вторжению» в музыку. Уже в 50-х годах, используя самые первые ЭВМ, ученые делали попытки синтезировать музыку: сочинять мелодию или аранжировать ее искусственными тембрами. Так появилась алгоритмическая музыка, принцип которой был предложен еще в 1206 году Гвидо Марцано, а позднее применен В. А. Моцартом для автоматизации сочинения менуэтов — написание музыки согласно выпадению случайных чисел. Машинным творчеством занимались К. Шеннон, Р. Зарипов, Я. Ксенакис и другие.
Осенью 2005 года в Университете Калифорнии (Беркли, США) студенческий оркестр исполнил Сорок вторую симфонию Моцарта. Конечно, слушатели знали, что Моцарт написал сорок одну симфонию, но этот факт не мешал им слушать прелестную музыку, в которой, впрочем, по высказываниям ряда критиков, не хватало чего-то неуловимого, присущего обычно мелодиям великого композитора. И не удивительно: 42-ю симфонию сочинила компьютерная программа EMI («Эксперименты с музыкальным интеллектом» – Experiments in Musical Intelligence). Программу создал композитор и одновременно программист Дэвид Коуп. За несколько последних лет EMI сгенерировала «новые произведения» Баха, Бетховена, Брамса, Шопена и Скотта Джоплина [2].
На данный момент можно выделить два основных направления в алгоритмической музыке:
  • создание с помощью компьютера новых произведений, способных, в некотором смысле конкурировать с произведениями искусства, созданными человеком;
  • моделирование известных стилей музыкальных произведений для изучения закономерностей и принципов построения этих произведений, их форм, структур, а также для опытов по восприятию их в психофизиологических исследованиях.

В алгоритмах генерации музыки используются два полярных подхода, основанных на применении детерминированных, либо стохастических процедур. Детерминированные процедуры генерируют музыкальные события (например, ноты), выполняя фиксированные композиционные задачи, не связанные со случайным выбором. Стохастические процедуры генерируют музыкальные события согласно таблицам вероятностей, которые устанавливают вероятность появления этих событий [3].

Зачем же нам какая-то коллаборация?


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

Who is who


Постановка задачи алгоритмической композиции была формализована Ю.И. Журавлевым в следующем виде. Требуется построить алгоритм a: X → Y, где X — пространство объектов; Y — множество ответов. Наряду с множествами X и Y вводится вспомогательное множество R, называемое пространством оценок. Рассматриваются алгоритмы, имеющие вид суперпозиции a(x) = C(b(x)), где функция b: X → R называется алгоритмическим оператором, функция C: R → Y — решающим правилом. Алгоритмической композицией, составленной из алгоритмических операторов bt: X → R, корректирующей операции F: RT → R и решающего правила C: R →Y называется алгоритм a: X → Y вида [4]:


А генерация-то тут причем?


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

Коллаборационный подход


На вход алгоритмов b1(x) и b2(x) будем подавать пары значений из множества Х = {(нота1, длительность1)… (нота12, длительность1), (нота1, длительностьN)… (нота1, длительностьN)}, полученные случайным образом.
Пространство оценок R = {0, 1}, где 1 является признаком подходящих входных данных, 0 – признак неподходящих данных. Любой алгоритм bi(x) формирует пару оценок (RН, RД), где RН – оценка ноты, RД – оценка длительности.
В качестве корректирующей операции рассмотрим простое голосование [4], т.е.

Для введенного пространства оценок R и алгоритмов b1(x) и b2(x) корректирующая операция F имеет следующий вид:

Определим решающее правило следующим образом

Правило переводит пространство оценок R в множество ответов Y. Множество ответов Y = {M1, M2} разделяет входные данные на два класса: M1 — подходящая для мелодии пара (нота, длительность) и M2 – неподходящая пара.
Таким образом, получена следующая алгоритмическая композиция:


Область компетентности


Определим область компетентности алгоритма b1(x), как звуковысотную, а алгоритма b2(x), как ритмическую. Алгоритм b1(x) не может оценивать пару (нота, длительность) с ритмической стороны, так же как и алгоритм b2(x) – с звуковысотной. Примем следующее допущение: любой алгоритм bi(x), некомпетентный в некоторой области, всегда оценивает данные из этой области, как подходящие. Другими словами, оценка R1 для алгоритма b1(x) равна (RН, 1), оценка R2 для алгоритма b2(x) равна (1, RД).

Вместо заключения


В общем случае предлагаемый коллаборационный подход можно распространить на более широкое множество алгоритмов. Более того, алгоритмы могут формировать не только оценки 0 или 1, но и использовать весь интервал [0; 1], как вероятность возникновения поданной на вход пары. Помимо этого, каждый алгоритм может быть взвешен, что позволит выделить наиболее значимые оценки. Например, при моделировании стиля некоторого композитора более приоритетными являются оценки, полученные от нейронной сети, обученной на некотором наборе произведений этого композитора.

Список литературы


  1. Родзин, С.И. Искусственный интеллект. — Таганрог: Изд-во ТТИ ЮФУ, 2009. — 200 с.
  2. Шаров, К. С. Машины-композиторы и чувственное восприятие музыкального творчества / К. С. Шаров // Материалы Международной научной конференции (6-7 ноября 2009 г.) — М.: Современные тетради. — 2009. — 240 с.
  3. asmir.info/lib/compmus.htm
  4. Журавлёв, Ю. И. Об алгебраическом подходе к решению задач распознавания или классификации / Ю.И. Журавлев // Проблемы кибернетики. – 1978. – Т. 33. – С. 5–68.
Tags:
Hubs:
+16
Comments13

Articles

Change theme settings