Извлечение признаков (Feature Extraction) и машинное обучение в музыке — центральная тема 27-й лекции курса MIT «Computational Music Theory». Преподаватель Майкл Катберт (Michael Cuthbert) представляет этот этап как «необходимое зло», превращающее живое звучание в сухие цифры, без которых работа современных ИИ-алгоритмов невозможна.
🎹 Извлечение признаков: Музыка как набор чисел 8:58
По определению Майкла Катберта, извлечение признаков — это процесс конвертации музыкальных элементов в числа, массивы, векторы или тензоры . Несмотря на то что этот процесс может показаться скучным, Катберт называет его критически важным этапом, так как любые алгоритмы глубокого обучения работают исключительно с числовыми данными .
Для демонстрации процесса используется корпус произведений И. С. Баха (в частности, хорал BWV 66.6). Ручное извлечение признаков может выглядеть просто: например, определение количества голосов или размера . Однако для работы с большими данными требуются автоматизированные экстракторы на Python.
Стек инструментов и ПО:
- Библиотека
music21: Основной инструмент для анализа нотных текстов. - Orange 3: Визуальный и программный инструментарий для машинного обучения.
- scikit-learn: Библиотека, устанавливаемая вместе с Orange для реализации классических алгоритмов (например, K-Nearest Neighbors).
⚖️ Этические дилеммы и «Sentinel Values» 14:45
Создание автоматических инструментов неизбежно сталкивает программиста с этическими и техническими проблемами.
- Проблема отсутствующих данных: Если в партитуре нет размера (например, в григорианском хорале), программа может выдать ошибку. Катберт предлагает возвращать «сигнальные значения» (sentinel values), такие как
0, 0. Это предотвращает падение системы при многочасовых вычислениях в облаке. - Риск «проглатывания» ошибок: Сигнальные значения могут скрыть за собой дефекты в логике программы. Например, игнорирование аккордов при поиске высоты тона может привести к потере важной части данных .
- Социокультурная предвзятость ИИ: Катберт подчеркивает, что технические допущения программистов (например, в системах распознавания лиц) часто приводят к дискриминации меньшинств. В музыкальном анализе это проявляется в игнорировании незападных или внеметровых традиций .
🎻 Кейс: Отличие Жиги от Рила 18:34
Основная практическая задача лекции — построение системы, способной отличить жанр «жига» (jig) от жанра «рил» (reel) на основе коллекции Райана (Ryan’s Mammoth Collection). Это собрание содержит около 1050 скрипичных мелодий XIX века .
Ключевые признаки, выделенные студентами и преподавателем:
- Размер: Жиги чаще пишутся в 6/8, рилы — в 2/4 или 4/4 .
- Ритмическое деление: В рилах преобладают 16-е ноты, в жигах — 8-е .
- Тональность: Количество знаков при ключе (Sharps feature) также может служить признаком .
Преподаватель предупреждает о проблеме «Ground Truth» (эталонной истины). Если жанр в названии файла указан неверно или два эксперта спорят о классификации, ИИ получит «грязные» данные, на которых невозможно построить точную модель .
🤖 Обучение классификатора и оценка точности 45:07
После того как признаки извлечены и сохранены в текстовый файл с разделителями (TSV), данные делятся на тренировочную и тестовую выборки .
В работе используются два типа «учеников» (Learners):
- Majority Learner: Контрольная группа. Он просто всегда выдает самый частый класс из выборки (например, «это всегда жига») . Если ваш алгоритм не показывает результат выше Majority Learner, он бесполезен.
- K-Nearest Neighbors (KNN): Алгоритм, который классифицирует объект, анализируя ближайших «соседей» в многомерном пространстве признаков .
Результаты эксперимента:
- Majority Learner: 59% точности (так как 59% базы составляли жиги) .
- KNN (с 4-5 признаками): 87% точности .
- KNN (с использованием JSymbolic/Music21): Несмотря на добавление десятков новых признаков, точность упала до 61% .
Катберт поясняет этот парадокс: на малых наборах данных избыток сложных признаков («кухонная раковина») только вредит. Эффективнее использовать несколько, но глубоко продуманных музыкальных характеристик .
🔍 Дерево решений: Бах против Монтеверди 1:02:14
В финальной части лектор сравнивает кораллы Баха и мадригалы Монтеверди. Вместо «черного ящика» нейросетей он предлагает использовать Decision Tree (дерево решений), которое наглядно показывает логику ИИ .
Признаки, которые нашел компьютер для отделения Баха (с точностью 99%):
- Если нота «фа» малой октавы используется чаще 14% времени — это Бах .
- Если дистанция между сопрано и басом меньше двух октав и малой сексты — это Бах .
Однако Катберт разоблачает этот успех: ИИ на самом деле не «понял» музыку. Он отследил привычки современных редакторов, которые по-разному записывали размеры и расставляли тактовые черты для композиторов разных эпох . Аналогичный пример приводится с классификатором аудио: ИИ научился различать не жанры, а типы микрофонов, характерные для кантри или хип-хопа .