В музыкальном ИИ хронически не хватает маркированных аудиоданных. В этой статье я поделюсь некоторыми советами по созданию эффективных моделей в таких условиях.
В отличие от других областей, таких как компьютерное зрение и обработка естественного языка (NLP), найти подходящие публичные наборы данных для музыкального ИИ часто бывает непросто. Независимо от того, хотите ли вы заниматься определением настроений, обнаружением помех или тегированием инструментов, вам, скорее всего, будет сложно найти подходящие данные.
Нехватка данных затрагивает не только программистов-любителей и студентов. С этой же проблемой сталкиваются как технологические стартапы, делающие первые шаги в музыкальной индустрии, так и известные музыкальные фирмы. В эпоху ИИ многие из них отчаянно пытаются собрать собственные данные для машинного обучения.
Эти 3 лайфхака помогут извлечь максимальную пользу из музыкальных данных.
Совет 1: применяйте естественную аугментацию данных
Если вы занимаетесь изучением данных, то наверняка слышали об аугментации данных. Основная идея заключается в том, чтобы слегка изменить образцы из имеющегося набора данных и получить новые синтетические обучающие образцы. Лучше всего это можно проиллюстрировать на изображениях. Например, если в наборе данных есть изображение кошки, можно легко создать новых синтетических кошек, сдвигая и поворачивая исходное изображение кошки.
Аугментация данных особенно эффективна для небольших наборов данных. Если в наборе данных всего 100 изображений кошек, вероятность того, что все возможные ракурсы и повороты будут представлены должным образом, невелика. Эти “белые пятна” в наборе данных автоматически приведут к “белым пятнам” в восприятии и выводах ИИ. Синтетически создавая изменения существующих изображений, можно снизить этот риск.
Аугментация данных в музыкальном ИИ
Если в компьютерном зрении аугментация данных является ключевым моментом, то в музыкальном ИИ все не так однозначно. Наиболее распространенным исходным материалом для моделей музыкального ИИ является спектрограмма (подробнее здесь). Но пробовали ли вы вращать и смещать спектрограмму?
Легко заметить, что приемы из области компьютерного зрения не могут быть напрямую применены к музыкальному ИИ. Но почему этот пример так нелеп? Дело в том, что, в отличие от примера с кошкой, подобная аугментация не является естественной для спектрограммы.
Аугментация естественна, когда вносимые изменения представляют собой модификации, с которыми модель может столкнуться в реальных приложениях. Хотя вращение спектрограммы, конечно, визуально изменяет данные, оно бессмысленно и никогда не произойдет на практике. Вместо этого нужно найти естественные изменения специально для музыкальных данных.
Использование эффектов для естественной аугментации аудиоданных
Самый распространенный способ естественной аугментации музыкальных данных — применение эффектов к аудиосигналу. Есть множество эффектов, известных каждому музыканту по DAW, таких как:
- растягивание аудиосигнала по времени;
- изменение высоты звука;
- компрессоры, лимитеры, дисторшн;
- реверберация, эхо, хорус.
Эти эффекты можно применить к любому музыкальному произведению, изменяя данные и сохраняя при этом их основные музыкальные характеристики.
Аугментация данных не только упоминается во многих научных работах по музыкальному ИИ, но и позволила мне лично добиться отличных результатов. Когда данных мало, их аугментация может перевести непригодную модель в разряд приемлемых. Даже при больших объемах данных она придает модели ту долю надежности, которая может иметь решающее значение в производстве.
При практическом применении аугментации музыкальных данных важно помнить о трех вещах.
- Сохраняйте естественность. Прослушайте данные после аугментации и убедитесь, что они по-прежнему звучат естественно. В противном случае модель может усвоить ложные паттерны.
- Не все обучающие образцы должны быть получены в процессе аугментации. Чтобы модель обучалась в первую очередь на реальной, неизмененной музыке, образцы, полученные в процессе аугментации, должны составлять лишь часть обучающих данных (20-30%). Можете также использовать взвешивание выборки во время обучения, чтобы регулировать влияние на модель образцов, полученных в процессе аугментации.
- Не подвергайте аугментации валидационные и тестовые данные. Образцы, полученные в процессе аугментации, помогают модели изучать паттерны, поддающиеся обобщению. Валидационные и тестовые данные должны быть неизменными, чтобы обеспечить точный сравнительный анализ на реальных образцах.
Пора повысить эффективность модели с помощью аугментации данных!
Совет 2: используйте меньшие модели и исходные данные
Больше = лучше?
В искусственном интеллекте чем больше, тем лучше — при наличии достаточного объема данных для работы с большими моделями. Однако в условиях ограниченных данных большие модели более склонны к переобучению. Переобучение происходит, когда модель запоминает паттерны из обучающих данных, которые плохо поддаются обобщению в реальных образцах данных. Но можно найти и более убедительный довод того, что больше не всегда лучше.
Предположим, у вас небольшой набор данных спектрограмм и надо выбрать между маленькой моделью CNN (100 тыс. параметров) и большой CNN (10 млн параметров). Помните, что каждый параметр модели — наиболее вероятное число, полученное из обучающего набора данных. Если рассуждать таким образом, то очевидно, что модели проще правильно подобрать 100 тысяч параметров, чем 10 миллионов.
В итоге оба довода приводят к одному и тому же выводу:
Если данных не хватает, подумайте о создании более компактных моделей, которые фокусируются только на основных паттернах
Но как добиться уменьшения моделей на практике?
Не раскалывайте грецкие орехи кувалдой
В моем исследовании музыкального ИИ преобладает глубокое обучение. Еще год назад я решал почти все задачи с помощью больших нейронных сетей. Хотя это имеет смысл для сложных задач, таких как тегирование музыкальных файлов или распознавание инструментов, не все задачи настолько сложны.
Например, достойный оценщик темпа или детектор тональности можно создать без какого-либо машинного обучения, анализируя время между вступлениями или соотнося хромаграммы с профилями тональности соответственно.
Даже для таких задач, как тегирование музыкальных файлов, не всегда требуется модель глубокого обучения. Я добился хороших результатов в тегировании настроений, используя простые классификаторы kNN (k-Nearest Neighbor — k ближайших соседей) на всем эмбеддинг-пространстве (например, CLAP).
Хотя большинство современных методов в музыкальном ИИ основаны на глубоком обучении, в условиях нехватки данных следует рассмотреть альтернативные решения.
Обратите внимание на размер входных данных
Более важным, чем выбор моделей, обычно является выбор входных данных. В музыкальном ИИ редко используются в качестве входных данных необработанные волновые формы из-за их неэффективности. Преобразование волновых форм в (мел-)спектрограммы позволяет уменьшить размерность входных данных в 100 и более раз. Это важно, поскольку для обработки больших данных обычно требуются более крупные и/или сложные модели.
Минимизировать размер входных данных модели можно двумя способами:
- используя небольшие музыкальные фрагменты;
- используя более сжатые/упрощенные музыкальные представления.
Использование небольших музыкальных фрагментов
Этот способ минимизации входных данных особенно эффективен, если интересующий вас результат является глобальным, то есть относится к каждому фрагменту песни. Предположим, жанр трека на всем его протяжении остается относительно стабильным. Тогда для жанровой классификации вполне можно использовать 10-секундные фрагменты вместо полных треков (или очень распространенных 30-секундных фрагментов).
Такой подход имеет два преимущества:
- Короткие фрагменты дают меньше точек данных на один обучающий образец, что позволяет использовать более компактные модели.
- Взяв три 10-секундных фрагмента вместо одного 30-секундного, можно втрое увеличить количество обучающих наблюдений. В целом это означает возможность создать менее требовательные к данным модели и в то же время предоставить им больше обучающих образцов, чем раньше.
Однако здесь есть две потенциальные опасности. Во-первых, размер фрагмента должен быть достаточно большим для проведения классификации. Даже люди с трудом справляются с классификацией жанров при прослушивании 3-секундных фрагментов. Необходимо тщательно выбирать размер фрагмента, рассматривая это решение как гиперпараметр для ИИ.
Во-вторых, не все музыкальные атрибуты являются глобальными. Например, если в песне звучит вокал, это не значит, что в ней нет инструментальных фрагментов. При нарезке трека на очень короткие фрагменты в набор обучающих данных попадет много образцов с ложными метками.
Использование более эффективных музыкальных представлений
Если вы изучали музыкальный ИИ лет десять назад (когда это называлось MIR — music information retrieval — извлечение музыкальной информации), наверняка знакомы с хромаграммами, MFCC (mel frequency cepstrum coefficient — мел-частотный кепстральный коэффициент) и гистограммами тактов. Разработанные вручную, эти характеристики обеспечивали применение музыкальных данных в традиционном МО. Создается такое впечатление, что с развитием глубокого обучения они были полностью заменены (мел-)спектрограммами.
Спектрограммы сжимают музыку в изображения без значительной потери информации, что делает их идеальными в сочетании с моделями компьютерного зрения. Вместо разработки собственных функций для разных задач, можно использовать одно и то же представление входных данных и модели для большинства задач музыкального ИИ — при наличии десятков тысяч обучающих образцов, которыми можно снабдить эти модели.
Когда же данных мало, необходимо максимально сжать информацию, чтобы модели было легче извлекать из них релевантные паттерны. Рассмотрите четыре музыкальных представления и подумайте, какое из них поможет быстрее всего определить музыкальную тональность.
Мел-спектрограммы могут использоваться в качестве входных данных для систем определения тональности (и, возможно, должны использоваться, если у вас достаточно данных). Однако простая хромаграмма, усредненная по временному измерению, позволяет получить эту специфическую информацию гораздо быстрее. Именно поэтому спектрограммы требуют сложных моделей, таких как CNN (сверточная нейронная сеть), в то время как хромаграмму можно легко проанализировать традиционными моделями, такими как логистическая регрессия или деревья решений.
Резюмируем: при наличии достаточного количества данных, сложившаяся комбинация спектрограмма + CNN остается весьма эффективной для решения многих задач. Однако при небольших наборах данных имеет смысл обратиться к некоторым методам инженерии характеристик из MIR или разработать собственные представления, специфичные для конкретной задачи.
Совет 3: используйте предварительно обученные модели или эмбеддинги
При нехватке данных одной из наиболее эффективных стратегий является использование предварительно обученных моделей или эмбеддингов. Такой подход позволяет опираться на знания моделей, обученных на больших наборах данных, тем самым минимизируя ограничения небольшого набора данных.
Зачем использовать предварительно обученные модели?
Предварительно обученные модели уже научились определять и извлекать значимые признаки из своих обучающих данных. Например, модель, обученная классификации жанров, в процессе обучения, скорее всего, изучила множество значимых музыкальных паттернов. Чтобы создать собственную модель тегирования настроения, возможно, имеет смысл использовать в качестве отправной точки модель, предварительно обученную классификации жанров.
Если предварительно обученная модель была обучена на похожей задаче, вы можете перенести ее выученные представления на вашу конкретную задачу. Этот процесс, известный как трансферное обучение (дообучение), может значительно сократить объем данных и вычислительных ресурсов, необходимых для обучения собственной модели с нуля.
Популярные в музыкальном ИИ предварительно обученные модели
Несколько лет назад наиболее распространенным подходом было применение предварительно обученных моделей, таких как классификаторы жанров, и их настройка под конкретные задачи. Для этого обычно использовались такие модели, как MusiCNN.
Однако сегодня чаще всего используются предварительно обученные модели, специально натренированные на создание осмысленных музыкальных эмбеддингов, то есть векторных представлений песен. Вот три предварительно обученные эмбеддинг-модели, которые используются чаще всего:
- Mert-v1 от m-a-p;
- CLAP от LAION;
- CLAP от Microsoft.
Лично я наилучших результатов добился, используя CLAP от Microsoft для трансферного обучения и CLAP от LAION для поиска сходств.
Способы применения предварительно обученных моделей
Предварительно обученные модели можно использовать по-разному.
- Полная тонкая настройка. Использование предварительно обученной модели классификации или эмбеддинг-модели и ее тонкая настройка на небольшом наборе данных, специфичных для конкретной задачи. Этот метод часто позволяет достичь оптимальных результатов тому, кто может позволить себе использовать полную, большую модель для обучения и выводов и знает, как ее реализовать.
- Использование эмбеддингов в качестве входных признаков (более ресурсосберегающий подход). Извлечение из предварительно обученной модели эмбеддингов, используемых в качестве входных данных для новой, гораздо меньшей модели. Поскольку эти эмбеддинги часто представляют собой векторы размерностью 500-1000, к ним можно присоединить меньшую нейронную сеть с несколькими тысячами параметров для более эффективной тонкой настройки. Для небольших наборов данных этот метод обычно предпочтительнее, чем полная настройка.
- Прямое (без тонкой настройки) использование эмбеддингов. Метод использования напрямую эмбеддингов, извлеченных из предварительно обученных моделей, обычно помогает при обнаружении сходства музыкальных произведений. Модели CLAP применяются даже для музыкального воспроизведения текста или (хотя пока еще недостаточно эффективно) для zero-shot-классификации, т. е. классификации без обучения.
Использование эмбеддингов, извлеченных из предварительно обученных моделей, может значительно улучшить проекты в области музыкального ИИ. Опора на полученные в ходе обучения модели распознавания образов избавляет от необходимости изобретать велосипед. При нехватке данных всегда следует рассмотреть предварительно обученные модели.
Заключение
Не позволяйте нехватке данных сдерживать ваш энтузиазм! Многие задачи, для решения которых еще несколько лет назад требовались сотни тысяч обучающих образцов, теперь стали общедоступными.
Чтобы добиться высокой производительности при работе с небольшими наборами данных, необходимо придерживаться ресурсосберегающего подхода. Напомню ключевые лайфхаки, упоминаемые в этой статье:
- Аугментация данных — отличный способ позволить моделям обучаться на тренировочных образцах несколько раз с небольшими, но эффективными изменениями, что повышает надежность результатов.
- Уменьшение моделей и повышение эффективности представлений данных заставляют модель сосредоточиться на наиболее важных паттернах данных, что позволяет избежать чрезмерной подгонки.
- Предварительно обученные модели позволяют заимствовать некоторые интеллектуальные возможности больших систем ИИ путем тонкой настройки. Больше нет причин обучаться с нуля!
Конечно, существуют естественные ограничения в плане того, чего можно добиться с помощью небольших наборов данных. Если при наличии 100 помеченных треков, ваша цель — создать многометочный жанровый классификатор с 10 жанрами и 30 поджанрами, вы далеко не уедете — даже используя все мои лайфхаки.
Тем не менее я разработал удивительно способные классификаторы жанров и тональностей, используя всего 1000 меченых композиций. Еще 2 года назад добиться этого с таким маленьким набором данных было бы невозможно. На мой взгляд, такой уровень демократизации — один из самых захватывающих аспектов текущего ажиотажа вокруг ИИ.
Если у вас есть небольшой, но качественный набор музыкальных данных и вы подумываете использовать его для машинного обучения, сейчас самое время!
Читайте также:
- Новая большая речевая модель Watson от IBM предоставит голос генеративному ИИ
- Программирование будущего: беспилотный автомобиль, управляемый JavaScript и ИИ
- EdgeCloud: вывод генеративного ИИ на новый уровень с помощью конвейеризации моделей
Читайте нас в Telegram, VK и Дзен
Перевод статьи Max Hilsdorf: 3 Practical Tips to Combat Data Scarcity in Music AI