Skip to content

MSc Dissertation project: Inter-rater Ambiguity as Privileged Information for Classification of Emotion in Music Using SVM+

Notifications You must be signed in to change notification settings

Jay-Down/MER-using-SVM_plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

MER Using SVM+

Music Emotion Recognition on the PMEmo dataset (http://pmemo.hellohui.cn/) employing the Learning Using Privileged Information (LUPI) paradigm via SVM+ as developed by Vapnik et al. [https://www.sciencedirect.com/science/article/pii/S0893608009001130]. LUPI makes use of additional (privileged) information available at train time, but not at test, to increase performance of learning algorithms.

The objective of this classifier is to identify the emotional valence (positive or negative) and arousal (high or low) associated with a set of musical excerpts. The privileged information in this case is the level of disagreement between the ground truth responses of individual annotators of the dataset; classically, disagreement between annotators has been seen as noise - a problem to be solved. This is an attempt to extract signal from that disagreement, and to test the predictive power of that signal for classification. The LUPI algorithm used is SVM+, an extension of a support vector machine, as implemented by Li et al.

Repository contains 2 folders:

annotation_py_files

.ipynb files for segmenting music clip annotations and features.

Contents:

  • annotation_loading_segmentation.ipynb Reads in individual annotation csv files and segments them based on affective change point locations
  • features_segmentation.ipynb Segments dynamic audio features from PMEmo dataset according to breakpoints determined in annotation_loading_segmentation

Github occasionally struggles to render large .ipynb files; if they are not displaying, please paste the whole URL into nb viewer (https://nbviewer.jupyter.org/).

SVM_plus

MATLAB .m files for SVM and SVM+ modelling.

  • arousal_preproc.m
  • valence_preproc.m Load segmented features and ground truths then create train/test splits, scale features, create privileged information measures, test labels created, then save workspace variables.
  • libSVM_cv.m Creates 10-fold cross-validated accuracies for training data - requires LIBSVM classifier LIBSVM
  • SVM_param_tuning.m Carries out coarse to fine grid search using libSVM_cv.m for cross-validation; records test accuracy
  • SVM_plus_SMO.m Carries out L2-SVM+ classification for train, privileged info and test data arguments
  • SVM_plus_cv.m Creates 10-fold cross-validated accuracies for training data using L2-SVM+
  • SVM_plus_param_tuning.m carries out coarse to fine grid search using libSVM_cv.m for cross validation; records test accuracy
  • solve_l2svmplus_kernel.m
  • utils contains helper functions for carrying out L2-SVM+
  • getKernel.m
  • L1_normalization.m
  • L2_distance_2.m
  • return_GaussianKernel.m

All SVM_plus files require Li et al.’s L2-SVM+ implementation contained in solve_l2svmplus_kernel.m SVMPLUS

About

MSc Dissertation project: Inter-rater Ambiguity as Privileged Information for Classification of Emotion in Music Using SVM+

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published