Глубокая Нейронная Сеть Musenet Пишет Музыку

Наш курс стартует 29 мая.

«Нейронные сети на Python» , где рассказывается о глубоком машинном обучении и учит, как решать самые сложные задачи под ответственность инженера глубокого обучения.

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

Глубокая нейронная сеть MuseNet пишет музыку



Что такое MuseNet

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

MuseNet экспериментирует, сочетая разные музыкальные стили: от кантри до шедевров Моцарта и бессмертных хитов The Beatles. Сеть легко основывается не на нашем восприятии и понимании музыки, а на умении находить закономерности гармонии, ритма и стиля в сотнях тысяч MIDI-файлов, а затем создавать собственные произведения.

Нейронная сеть MuseNet использует ту же технологию, что и GPT-2 — крупномасштабная модель обучена предсказывать лучшие последовательности как в тексте, так и в аудио.

Знание разнообразия стилей позволяет сети создавать совершенно уникальные сочетания музыки разных поколений.



Композиторские и инструментальные жетоны

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

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



Долгосрочная структура

MuseNet использует пересчитанные и оптимизированные ядра.

Разреженный трансформатор для обучения 72-слойной сети.

На наш взгляд, генерация музыки — очень хорошая ниша для тестирования и развития возможностей Sparse Transformer.

Сбор и обработка данных

Мы собрали данные обучения MuseNet из различных источников.

Проекты нам очень помогли КлассическиеАрхивы И БитМиди , которые предоставили в наше распоряжение свои колоссальные коллекции.

Мы также использовали коллекции самой разнообразной музыки, найденной в Интернете: джаз, поп-музыка, африканская, индийская и арабская музыка.

Кроме того, мы использовали коллекцию МАЭСТРО .

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

Мы попробовали несколько разных способов кодирования MIDI-файлов.

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

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

   

bach piano_strings start tempo90 piano:v72:G1 piano:v72:G2 piano:v72:B4 piano:v72:D4 violin:v80:G4 piano:v72:G4 piano:v72:B5 piano:v72:D5 wait:12 piano:v0:B5 wait:5 piano:v72:D5 wait:12 piano:v0:D5 wait:4 piano:v0:G1 piano:v0:G2 piano:v0:B4 piano:v0:D4 violin:v0:G4 piano:v0:G4 wait:1 piano:v72:G5 wait:12 piano:v0:G5 wait:5 piano:v72:D5 wait:12 piano:v0:D5 wait:5 piano:v72:B5 wait:12

Во время обучения мы:
  • Перемещаем ноты по тональной шкале (по мере обучения количество транспозиций уменьшается);
  • Добавляем и уменьшаем как общее звучание, так и звучание отдельных семплов;
  • Работаем с таймингом: ускоряем и замедляем отдельные фрагменты композиции;
  • Используем его для работы с токенами смешивать .

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

Эта оценка дает возможность отобрать образцы во время генерации.



Интеграции

Чтобы придать модели больше структурного контекста, мы добавили интеграцию.

Помимо стандартных позиционных интеграций мы добавили интеграции, отслеживающие ход времени в выборках.

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



MuseNet уже дает концерты

Желающие могут ознакомиться с творчеством MuseNet; нейронная сеть уже есть дает собственные онлайн-концерты на Twitch .

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

Теги: #Машинное обучение #python #нейронные сети

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.