Rémi Flamary

Site web professionel

Filtrage Vaste Marge


Ce code est une implémentation du filtrage vaste marge pour l'étiquetage de séquence 1D ou la classification de pixel en image. Il a été utilisé dans les expérimentations du papier :

R. Flamary, D. Tuia, B. Labbé, G. Camps-Valls, A. Rakotomamonjy, "Large Margin Filtering", IEEE Transactions Signal Processing, Vol. 60, N. 2, pp 648-659, 2012.

Abstract: Many signal processing problems are tackled by filtering the signal for subsequent feature classification or regression. Both steps are critical and need to be designed carefully to deal with the particular statistical characteristics of both signal and noise. Optimal design of the filter and the classifier are typically aborded in a separated way, thus leading to suboptimal classification schemes. This paper proposes an efficient methodology to learn an optimal signal filter and a support vector machine (SVM) classifier jointly. In particular, we derive algorithms to solve the optimization problem, prove its theoretical convergence, and discuss different filter regularizers for automated scaling and selection of the feature channels. The latter gives rise to different formulations with the appealing properties of sparseness and noise-robustness. We illustrate the performance of the method in several problems. First, linear and nonlinear toy classification examples, under the presence of both Gaussian and convolutional noise, show the robustness of the proposed methods. The approach is then evaluated on two challenging real life datasets: BCI time series classification and multispectral image segmentation. In all the examples, large margin filtering shows competitive classification performances while offering the advantage of interpretability of the filtered channels retrieved.
author = { Flamary, R. and Tuia, D. and Labbé, B. and Camps-Valls, G. and Rakotomamonjy, A.},
title = {Large Margin Filtering},
journal = { IEEE Transactions Signal Processing},
volume = {60},
number = {2},
pages = {648-659},
editor = {},
year = {2012}

Ce package contient également une version mise à jour de la Toolbox SVM-KM(les classifieurs sont définis par une structure unique au lieu plusieurs matrices), et des fonctions de validation généralistes.

Le package contient:

  • SVM-KM : SVM and kernel methods toolbox (voir ici)
  • la function svmclass2 qui permet d'apprendre différents SVM
  • Des solveurs SVM (libsvm, monqp, svqp2, ...)
  • D'autres méthodes de classification: GMM (using netlabs)


Version courante : 0.9

Téléchargement : FilterSVM.zip


Version rapide:

  • Ajouter tous les dossiers et sous-dossiers au path matlab.
  • Executer make.m pour compiler les fichiers mex (libsvm/svqp2)
  • Fichier d'entrée : Dataset_Toy/Test_FilterSVM.m


Hierarchie du code

  • 'costs/' : Fonctions de cout SVM
  • 'gradients/' : function retournant des gradients SVM (pour filtersvm)
  • 'netlab/' : netlab toolbox + fonctions gmmclass/gmmval
  • 'optim/' : functions d'optimisation (descente de gradient)
  • 'probasolvers/' : fonctions pour des svm probabilistes
  • 'svmsolvers/' : plusieurs toolboxes SVM/MKL et le wrapper svmclass2
  • 'utils/' : plusieurs fonctions utilitaires
  • 'validation/' : boucles de validation/cross-validation
  • 'visu/' : functions de visualisation

  • 'Dataset_*' : fonctions de test pour diférents jeux de données