Skip to content

georgiy-vasilevskiy/pet_project_cd_covers

Repository files navigation

Определение музыкального жанра по изображению обложки компакт-диска


Determining the Music Genre Based on the CD Cover Image
Ключевые слова: извлечение эмбеддингов, Index, аугментация изображений, ResNet, область долины, скорость обучения, фокусирующая функция, кривая обучения, валидационная кривая, дисбаланс классов, accuracy

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

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

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

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

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

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

Тип ML-задачи: многоклассовая классификация (multiclass classification).

Инструменты: python, pandas, numpy, os, zipfile, matplotlib, pillow, scikit-learn, faiss, fastai, torchvision.

Основные этапы проекта:

  • описательный анализ данных:

    охарактеризованы распределения значений признаков;

  • предобработка данных:

    обработаны аномальные значения; обработаны дубликаты;

  • построение моделей:

    в данных выделены тренировочная, валидационная и тестовая выборки (8 : 1 : 1); оценка качества обученных моделей проведена методом валидации; критерий оценки качества моделей — максимальное значение правильности (accuracy), полученное в результате проведения валидации.

    Обучены модели нейронных сетей семейства ResNet, предобученных на ImageNet; построены валидационные кривые и подобраны гиперпараметры: скорость обучения, количество эпох, функция потерь, использование замораживания слоёв нейросети; для извлечения данных из папки и передачи их на обучение использовался загрузчик (ImageDataLoaders); к изображениям применена аугментация. Кроме того, была обучена простая модель на основе метода ближайших соседей.

    Выполнено описание поведения обученных моделей на сбалансированной и несбалансированной выборках, построены кривые обучения.

Результат исследования: наилучшие показатели качества продемонстрировала модель ResNet50, дообученная в течение 20 эпох на изображениях с применённой аугментацией при скорости обучения 0,01, фокусирующей функцией потерь с параметром фокусировки равным 2 и тремя замороженными нижними слоями нейросети. Правильность на валидационной выборке достигает значений 0,727–0,736. Значение правильности на тестовой выборке равно 0,727.