Можем ли мы воспроизвести творчество художников с помощью ИИ?

Захватывающее приложение последних достижений в области искусственного интеллекта - создание искусственной музыки. Можем ли мы воспроизвести творчество художников с помощью ИИ? Может ли модель глубокого обучения стать источником вдохновения или инструментом повышения производительности для музыкантов? Эти вопросы подводят нас к определению творчества и полезности таких инструментов, выходящих за рамки их собственных исследовательских интересов.

Цели создания искусственной музыки

Моделирование творческих способностей людей

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

Разработка инструмента для помощи художникам в их творчестве

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

Проблемы с Music Generation

«Музыка - это стенография эмоций» Лев Толстой

Искусственное создание музыки ставит множество проблем. Сначала нам нужно решить, как кодировать различные музыкальные элементы. Затем мы должны убедиться, что наши композиции соответствуют основным музыкальным правилам, касающимся структуры и динамики.

«Музыка имеет множество измерений, по которым относительные различия, возможно, имеют большее значение, чем их абсолютные значения; два наиболее важных - тайминг и высота звука ». [1]

Динамика

Громкость звука, издаваемого инструментом. Обычно он кодируется с использованием аннотаций, сделанных композиторами, от pianissimo ppp до fortissimo fff..

Тембр

Вероятно, самая важная, но самая сложная для кодирования музыкальная функция.

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

Если пианино играет ноту, а затем гитара играет ту же ноту в течение того же времени и с одинаковой громкостью, вы все равно можете легко различить два звука, поскольку два инструмента звучат по-разному. Эта разница в тембре звуков. Это результат того факта, что каждая нота инструмента представляет собой сложную волну, содержащую несколько частот.

Гранулярность и временная область

Что такое дискретизация по времени? Обычно используются две стратегии: либо установка времени как относительной длительности на основе наименьшей единицы: шестнадцати нот; или фиксация абсолютной длительности сыгранной ноты: например, 30 миллисекунд. Эта последняя стратегия также позволяет уловить выразительность в интерпретации нот и сделать композицию более человечной.

Другие музыкальные особенности, которые должны быть представлены, включают продолжительность, отдых, время и высоту звука.

Современные подходы к Music Generation

Здесь я представляю несколько исследований, проведенных в этой области, они не являются исчерпывающими, но представляют некоторые интересные подходы к проблеме.

Пурпурный - 2016

Этот проект, разработанный Google Brain, направлен на создание нового инструмента, который артисты могут использовать при работе и разработке новых песен. Они разработали несколько моделей для создания музыки.

В конце 2016 года они опубликовали модель LSTM, настроенную с помощью обучения с подкреплением. Интересная идея заключалась в том, чтобы использовать обучение с подкреплением, чтобы научить модель следовать определенным правилам, в то же время позволяя ей сохранять информацию, полученную из данных. [2]

Для этого определяется пара показателей: во-первых, те, которые мы хотим снизить, связанные со штрафами:

  • Ноты не в ключе
  • Средняя автокорреляция (log1 - log2 - log3): цель состоит в том, чтобы поощрять разнообразие, поэтому модель штрафуется, если композиция сильно коррелирует с самой собой
  • Чрезмерно повторяющиеся примечания: LSTM склонны повторять одни и те же шаблоны, здесь используется обучение с подкреплением, чтобы предложить более творческий подход

Затем показатели, которые мы хотим быть высокими, связанные с вознаграждениями:

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

Эти показатели определяют своего рода правило теории музыки. Степень улучшения этих показателей определяется степенью вознаграждения за конкретное поведение. Таким образом, мы можем уделить больше внимания некоторым показателям, которые считаются более важными. Например, здесь сильный штраф дается каждый раз, когда нота чрезмерно повторяется (-100), в то время как гораздо меньшая награда дается в конце композиции за уникальную заметку экстремума (+3). Выбор показателей, а также весов определяют форму музыки, которую мы хотим создать.

Совсем недавно команда Magenta использовала GAN и Transformers для создания музыки с улучшенной долгосрочной структурой.

В модели Трансформеров используется относительное самовнимание. Он модулирует внимание в зависимости от того, насколько далеко друг от друга находятся токены. Эта архитектура помогает уловить различные уровни, на которых в музыке существуют самореферентные явления.

Затем эти модели используются для создания инструментов творчества, которые могут использоваться художниками во время своих композиций. Это концепция Magenta Studio, добавляемая в качестве подключаемого модуля к Ableton Live.

«Magenta Studio - это набор инструментов для музыкального творчества, созданных на основе моделей Magenta с открытым исходным кодом, доступных как в виде отдельных приложений, так и в виде плагинов для Ableton Live. Они используют передовые методы машинного обучения для создания музыки ». [3]

MuseGAN - 2017

В этом проекте, чтобы справиться с группировкой нот, полосы используются вместо нот в качестве основной композиционной единицы. Таким образом, музыка генерируется один такт за другим с использованием CNN, что хорошо для поиска локальных, инвариантных к переводу шаблонов. [4]

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

  • Соотношение пустых баров
  • Количество используемых классов шага в партии (от 0 до 12)
  • Соотношение «квалифицированных нот». В этом случае примечание длиной более трех временных шагов считается квалифицированным. Квалифицированные ноты показывают, если музыка слишком фрагментирована.
  • Барабанный паттерн: соотношение нот в 8- или 16-битных паттернах.
  • Тональное расстояние: измеряет гармоничность между парой треков. Чем больше тональное расстояние, тем слабее гармонические отношения между дорожками.

Wavenet - 2016

Это пример проекта, использующего непрерывное кодирование вместо дискретного. Модель генерирует необработанные звуковые сигналы. Следовательно, он способен воспроизводить любой звук, например человеческий голос. [5]

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

MuseNet - 2019

Это модель генерации музыки OpenAI. Он использует современную архитектуру НЛП - крупномасштабную модель преобразователя - для предсказания следующего токена в последовательности. Он может сочетать стили разных известных композиторов, а также разные музыкальные жанры. [6]

Подход Майи для Music Generation

Майя - это исследовательский проект, который я разработал в Калифорнийском университете в Беркли вместе с Эдвардом Т. и Луисом Р., чтобы дать одно возможное решение этой широкой проблемы.

Фон

Мы начали с намерения создать ИИ, который смог бы завершить незаконченную композицию Моцарта Lacrimosa - восьмую часть Реквиема - которая была написана только до восьмого такта в то время. его смерти.

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

Кодирование

Мы применили метод «Notewise» [7], предложенный Кристиной Пейн - техническим персоналом OpenAI - для кодирования продолжительности, высоты тона и динамики каждой композиции в текстовую последовательность, в результате чего словарный запас составил 150 слов.

Вдобавок, чтобы пополнить наш набор данных, мы использовали модуляции, чтобы дублировать каждую часть двенадцать раз - каждая на одну ноту ниже, чем следующая.

Токенизация и секвенирование

Мы исследовали добавление специальных жетонов к каждой пьесе, чтобы последовательность содержала информацию о композиторе, когда музыка начинается и когда она заканчивается.

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

Затем закодированные текстовые данные были объединены в последовательности по 512 токенов для обучения. Вместо того, чтобы просто нарезать их на взаимоисключающие последовательности, мы перекрыли последовательности, то есть каждая последующая последовательность на 50% перекрывается с предыдущей последовательностью. Таким образом, мы не потеряем никакой информации о непрерывности в точках, разделяющих последовательности.

Два слоя сложены LSTM

Первая версия была построена с использованием архитектуры повторяющейся нейронной сети. В частности, мы использовали LSTM, потому что его дополнительные ворота забывания и состояние ячейки могли нести информацию о более долгосрочных структурах в музыке по сравнению с RNN и GRU, что позволяло нам предсказывать более длинные последовательности до 1 минуты, которые все еще звучали согласованно. Наша базовая модель представляет собой двухуровневую составную LSTM с 512 скрытыми блоками в каждой ячейке LSTM. Мы использовали слой внедрения, чтобы преобразовать каждый токен в вектор.

Чтобы гарантировать, что наши сгенерированные последовательности разнообразны, вместо того, чтобы всегда выбирать наиболее вероятный следующий токен в прогнозе, модель будет случайным образом выбирать из верхних k наиболее вероятных следующих токенов на основе их соответствующей вероятности, где k находится между 1 и 5.

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

Оптимизация размера нашего пакета также позволит нам найти компромисс между итерациями обучения и использованием параллельных вычислений графического процессора. Мы использовали поиск по сетке, чтобы найти наилучшее сочетание длины последовательности и размера пакета.

GPT - Трансформатор

GPT - это архитектура, основанная на сложенных вместе декодерах Transformers [8]. Трансформатор - это модель последовательности, которая использует самовнимание и уже дала впечатляющие результаты для задач генерации, включающих дальнодействующие зависимости. По сути, это ванильная модель Transformer с убранным блоком кодировщика и механизмом перекрестного внимания, чтобы он мог более эффективно выполнять неконтролируемые задачи. Это делает его подходящим для воспроизведения музыки.

Мы использовали 6-уровневую модель GPT, которая включала один уровень внедрения, 6 блоков декодера и 1 линейный слой softmax, который возвращает нам логиты для следующего предсказанного токена. Каждый блок декодера имеет 8 головок самовнимания с 256-мерными состояниями и 1024-мерными внутренними состояниями для слоев с прямой связью.

Используя данные от всех композиторов, потери при обучении сходились примерно после 5000 итераций. Однако мы решили довести обучение до 200 тыс. Итераций (30 эпох), что заняло примерно 60 часов, чтобы посмотреть, сможем ли мы получить сгенерированные образцы более высокого качества.

Наши первоначальные результаты не были особенно последовательными, поэтому мы ограничили обучение только одному композитору.

В целом, наши попытки смоделировать более длинные последовательности были затруднены из-за памяти используемого нами графического процессора. Он может поддерживать только до 512 токенов в каждой последовательности.

Дальнейшие исследования

Чтобы улучшить долгосрочное сохранение наших моделей, мы исследовали более свежие модели НЛП, такие как GPT-2 и Sparse Transformers.

Что касается модели GPT-2, нам пришлось сделать выбор между использованием предварительно обученной модели или построением ее с нуля. Первое решение позволило бы нам воспользоваться преимуществами большого набора данных, на котором была обучена модель, но, поскольку модель была обучена на текстах, а не на музыке, она может плохо обобщаться с нашим набором данных. Второе решение будет иметь больше смысла, поскольку модель будет учиться только на музыкальных данных, но размер набора данных уменьшит общий объем обучения и, следовательно, общую производительность. Мы решили выбрать второй вариант; однако часть GPT-2, связанная с двоичным кодированием, не соответствует нашей разметке и секвенированию, что мешает модели работать хорошо.

Оценка

Количественный показатель, который можно рекурсивно, быстро и точно применить к нашим моделям, - это оценка BLEU. BLEU оценивает количество нограмм, использованных в сгенерированных последовательностях, которые также присутствовали в некоторых контрольных последовательностях. Он широко используется для оценки моделей перевода и предполагает, что хорошие последовательности на микроуровне похожи на реальные последовательности. Это разумное предположение, поскольку мы ожидаем, что наши сгенерированные произведения будут содержать похожие образцы гармонии, ритмов и стиля.

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

Это имеет несколько последствий. Во-первых, маленькие граммы менее информативны. Действительно, поскольку мы используем большой набор композиций в нашем справочном документе, мы ожидаем, что значение 1 грамма будет равно единице (мы не собираемся использовать новую ноту в нашей композиции), а 2 грамма и 3 грамма довольно близко к одному тоже. В результате информации об этих ngram не хватает. Кроме того, нам бы хотелось, чтобы созданные нами композиции имели некоторую оригинальность. Мы не хотим воссоздавать или воспроизводить существующие последовательности из обучающих данных, а действительно создавать что-то новое и уникальное, вдохновленное существующей музыкой - точно так же, как это сделал бы артист. Следовательно, высокие n-граммы также должны иметь меньшую ценность, а очень высокие n-граммы не учитываться.

Основываясь на всех этих соображениях, мы создали индивидуальную оценку BLEU. Выбранные веса:

Мы использовали оценку BLEU, чтобы сравнить нашу базовую модель LSTM с некоторыми реальными композициями Моцарта. Результаты - усредненные по дюжине последовательностей - составляют 0,25 для LSTM и 0,14 для реальных данных. Это означает, что наши сгенерированные образцы хороши по нашим индивидуальным метрикам. Более высокий балл, который получают композиции LSTM по сравнению с реальными композициями, подчеркивает наличие переобучения, когда сгенерированная музыка содержит существенные повторы исходных данных.

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

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

Образец созданной музыки

Заключение и дальнейшие улучшения

Выбранная кодировка определяет объем и ограничения модели, которую вы создаете. Выбор дискретного представления с файлом MIDI приводит к неизбежной потере информации из исходного непрерывного аудиофайла.

Альтернативой является прямая работа со звуковыми файлами. Это также позволит лучше анализировать древесину. Недавние исследования разработали модели глубокого обучения, которые передают тембр обучающего набора во входной файл, сохраняя его высоту звука. [9]

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

Посмотрите, как эти модели машинного обучения можно использовать для создания нового опыта для художников с помощью проекта Fruit Genie, разработанного командой Magenta и The Flaming Lips:

использованная литература

[1] Ченг-Чжи, Анна Хуанг, Ашиш Васвани, Якоб Ушкорейт, Ноам Шазир, Ян Саймон, Кертис Хоторн, Эндрю М. Дай, Мэтью Д. Хоффман, Моника Динкулеску, Дуглас Эк. Music Transformer : Создание музыки с долгосрочной структурой

[2] Наташа Жак, Шисян Гу, Ричард Тернер, Дуглас Эк. Настройка рекуррентной нейронной сети с помощью обучения с подкреплением

[3] Magenta Studio. Https://magenta.tensorflow.org/studio-announce

[4] Хао-Вэнь Дун, Вэнь-И Сяо, Ли-Чиа Ян, И-Сюань Ян. MuseGAN: многодорожечная последовательная порождающая состязательная сеть для создания символической музыки и сопровождения

[5] Аарон ван дер Оорд, Сандер Дилеман, Хейга Зен, Карен Симонян, Ориол Виньялс, Алекс Грейвс, Нал Кальчбреннер, Эндрю Старший, Корай Кавукчуоглу. WaveNet: Генеративная модель для Raw Audio

[6] Пэйн, Кристин. MuseNet. OpenAI, 25 апреля 2019 г., openai.com/blog/musenet

[7] Пэйн, Кристин. Клара: Музыкальный генератор нейронной сети. Http://christinemcleavey.com/clara-a-neural-net-music-generator/. 2018.

[8] Алек Рэдфорд, Картик Нарасимхан, Тим Салиманс, Илья Суцкевер. Улучшение понимания языка с помощью генеративного предварительного обучения

[9] Леонардо Габриэлли, Кармине Э. Челла, Фабио Весперини, Диего Дрогини, Эмануэле Принципи, Стефано Сквартини. Глубокое обучение модификации и передачи тембра: оценочное исследование