External Learning & Competitions

[2024][Basic][P3] Music Genre Classification

10-epoch 음악 장르 분류 결과를 다시 읽고, 리듬·스펙트럼 특징과 RBF-SVM으로 로컬 기준선을 개선했다.

Platform
Kaggle
진행 기간
2024-08-11–2024-08-27
Host
sw.baek_00
Metric
Accuracy
모델 조건
모델을 직접 설계해 수행하는 조건
Kaggle P3 Music Genre Classification 대회 개요 화면
정해진 사전학습 모델 없이 직접 모델을 설계하는 과제였다.

당시 학습 결과

Notebook에는 10 epoch 뒤 train loss 1.4228, train accuracy 0.5088이 남아 있었다. 음악 장르는 시간축 신호이므로 raw waveform만 넣기보다 어떤 음향 특징이 장르 차이를 드러내는지 먼저 비교했다.

특징을 다시 구성했다

MFCC와 delta는 음색의 시간 변화를, chroma는 pitch-class 에너지를, spectral centroid·bandwidth·rolloff는 주파수 분포를 요약한다. 각 통계량을 표준화한 뒤 RBF-SVM의 C를 training fold 안에서만 선택했다.

로컬 결과

80/20 stratified holdout에서 accuracy 0.8142, balanced accuracy 0.8120, macro-F1 0.8108을 얻었다. 단순 기준선의 macro-F1 0.0188과 비교하면 모든 class를 거의 한쪽으로 보내던 문제가 줄었다.

남은 한계

파일에는 track이나 artist group metadata가 없었다. 같은 artist의 유사한 녹음이 양쪽 분할에 있을 가능성을 배제하지 못하므로, 이 수치는 무작위 층화 분할의 로컬 결과다. Kaggle 제출 점수나 순위로 바꾸어 쓰지 않았다.

다시 실행하면서 바꾼 점

남아 있던 Notebook 결과와 새 로컬 홀드아웃 결과를 비교했다. 80/20 stratified holdout plus five-fold training-only C selection; seed 42 조건에서 MFCC, delta, chroma and spectral summaries + StandardScaler + RBF-SVM(C=3)을 사용했다.

당시 Notebook
10 epochs; final train loss 1.4227865277; final train accuracy 0.5087527352
단순 기준선
accuracy 0.1038; balanced accuracy 0.1000; macro-F1 0.0188
수정한 모델
accuracy 0.8142; balanced accuracy 0.8120; macro-F1 0.8108

장르별 트랙·아티스트 그룹 메타데이터가 없어 아티스트 조건부 분할은 수행하지 못했습니다. 결과는 로컬 무작위 층화 홀드아웃이며 Kaggle 점수가 아닙니다.

재실행 코드와 정제한 Notebook 보기

위 수치는 문서화한 로컬 분할에서 얻었다. 로그인된 Kaggle 제출 이력·점수·순위까지 다시 확인한 값은 아니다.

논문 첫 페이지 미리보기