Развитие искусственного интеллекта через искусство

Как я создал погодный музыкальный генератор с программным обеспечением AI с помощью Wekinator - и что это говорит нам о достоинствах экспериментов в разработке программного обеспечения

Роберт Грин, старший инженер-программист BCG Digital Ventures

Работая старшим инженером по программному обеспечению в BCG Digital Ventures, я создаю цифровые продукты. Помимо этого, я еще и художник. Хотя эти области могут показаться не связанными друг с другом, я всегда пытаюсь объединить их, чтобы увидеть, что возможно.

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

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

Я изучаю, как использовать ИИ в своей художественной практике. Экспериментируя с программным обеспечением под названием Wekinator, я смог создать программное обеспечение искусственного интеллекта, не тратя часы на разработку, которые требовались ранее. Вот как я это сделал.

Машинное обучение для музыкантов и художников

Недавно у меня была возможность пройти курс под названием «Машинное обучение для музыкантов и художников», который проводил Голдсмитс, лектор Лондонского университета доктор Ребекка Фибринк. Доктор Фибринк является создателем программы с открытым исходным кодом под названием Wekinator, которая позволяет пользователям создавать новые интерактивные системы, демонстрируя действия человека и реакции компьютера вместо написания программного кода.

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

Начало работы с Wekinator

Для тех, кто не знаком с Wekinator, вот как это работает.

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

Для каждого проекта Wekinator требуется программа ввода и вывода, которая может взаимодействовать с Wekinator. Эти программы могут быть объединены в один и тот же пакет или представлять собой две совершенно разные вещи. Если вы хотите самостоятельно изучить Wekinator, есть фантастический набор примеров, который содержит исправленные программы, готовые для использования с Wekinator.

Мой проект: Wekinator Earth Sounds

Мой проект Wekinator Earth Sounds позволяет артистам выбирать геолокацию, и погодные данные этой геолокации влияют на музыкальный результат.

Я построил проект на React, NodeJS, Socket.io и Electron. Он использует веб-сокеты для связи с Wekinator и интерфейсом приложения. Программа содержит карту Google Map, которую художник щелкает, чтобы получить координаты местности. После установки долготы и широты вызывается запрос погоды.

Затем программа собирает информацию о погоде, отправляя координаты в API Open Weather Maps. Этот сервис предоставляет программе восемь входных функций: текущая температура, влажность, минимальная и максимальная температура, давление, облачность и скорость ветра. Wekinator будет использовать эти данные после того, как исполнитель применит функцию в программе.

Модель довольно большая: в ней 68 различных выходов. Каждый выход имеет набор классификаций, который варьируется от одного до 235 для первых четырех выходов и от одного до двух для остальных 64 выходов. Эти выходы управляют различными частями петель MIDI. Первые четыре выхода управляют типом инструмента, на котором будет играть данный элемент песни. Остальные выходы переключают пошаговое управление. Одно означает выключено, два - включено. На дорожку приходится 16 шагов, что дает исполнителю возможность создавать более медленные или быстрые, простые или более сложные петли.

Объяснение и управление элементами управления MIDI из Wekinator довольно сложно из-за количества выходов и того, как они представлены в программе. Чтобы упростить этот процесс для исполнителя, Wekinator предоставляет конечную точку, которая может быть вызвана с помощью OSC, которая автоматически устанавливает выходные данные по мере продвижения исполнителя через программу Wekinator Earth Sounds. Когда вы меняете элементы управления MIDI в приложении, Wekinator автоматически устанавливает соответствующие выходные значения.

Обучение модели

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

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

Для обучения модели включаем режим обучения в программе Wekinator Earth Sounds и записываем в Wekinator. Художник устанавливает MIDI-цикл, выбирает место на карте и нажимает кнопку «Применить» в программе Wekinator Earth Sounds, чтобы добавить пример тренировки в Wekinator.

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

Результаты, достижения

После того, как модель будет достаточно обучена, мы можем начать щелкать по карте и смотреть, как звучит MIDI-петля в зависимости от погоды. Нажатие кнопки «воспроизведение» в программе Wekinator Earth Sounds запускает цикл MIDI, а нажатие на место на карте изменяет цикл.

Например, в моем тренировочном наборе теплая погода настроена на воспроизведение одного удара малого барабана за такт. По мере того, как я выбираю места с более холодной погодой, петля становится более интенсивной. Если что-то в модели звучит неправильно, мы можем добавить дополнительные обучающие примеры или переобучить модель, удалив предыдущие примеры в Wekinator. Мы также можем изменить алгоритм для каждого выхода и даже сосредоточиться на определенных выходах, таких как влажность.

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

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

Применение того, что я узнал

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

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

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

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

Заинтересованы в сотрудничестве с BCGDV? Хотите узнать больше? Смотрите наши текущие вакансии.

Найдите нас в Twitter @DV_Engineering.