# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  Classement par SVM

## medchok

Bonjour,

Intress par la classification d'images, on m'indique deux techniques : Les rseaux de neurones artificiels et les svm.

Pourriez vous me dire s'il y a rapport entre svm et rseaux de neurones, comment mettre en oeuvre (*concrtement*) les svm, est ce que a sert uniquement  rduire l'espace d'input aux lments du support..., et s'il peut y avoir des bibliothques disponibles (de prfrence matlab).

Toute indication d'algo, de ressource bibliographique ou autre serait la bienvenue.

Merci d'avance

----------


## pseudocode

Hum... mes rponses vont etre trs subjectives et sujets a controverse:




> Pourriez vous me dire s'il y a rapport entre svm et rseaux de neurones


principal point commun: ce sont 2 techiques de classification par apprentissage.

principale difference: Un SVM est un modle mathmatique transform en heuristique, alors qu'un NN est une heuristique transforme en modle mathmatique.




> comment mettre en oeuvre (*concrtement*) les svm


Si par concrtement tu veux dire "sans passer par la thorie", utilise directement une librairie et ne cherche pas  savoir.  ::mrgreen:: 




> est ce que a sert uniquement  rduire l'espace d'input aux lments du support


A la base, ca sert a trouver la "meilleure" ligne de sparation entre des donnes.




> et s'il peut y avoir des bibliothques disponibles (de prfrence matlab).


Aucune ide. Il faut aller demander sur le forum Matlab.




> Toute indication d'algo, de ressource bibliographique ou autre serait la bienvenue.


L'article de wikipedia (anglais) est trs bien fait, et ils donnent le lien vers un bon tutorial.

----------


## hanane78

Bonjour tout le monde,
est ce que ce serait possible de nous expliquer cette methode de classification(SVM) plus en dtail ?

j'ai lu quelques articles et je vois que c'est une mthode supervise

est ce qu'il y a un rapport avec la mthode d'analyse discriminante ?

Merci d'avance

----------


## pseudocode

> est ce qu'il y a un rapport avec la mthode d'analyse discriminante ?


L'objectif est le meme: trouver la "meilleure" ligne de sparation.

La difference c'est dans la dfinition du mot "meilleure":

- Pour l'analyse discriminante, ca signifie "le maximum de vraisemblance": donc une signification statistique

- Pour les SVM, ca signifie "plus grande distance aux cas critiques": donc une signification gometrique

----------


## hanane78

merci pour votre explication 
d'ailleurs j'ai fait une methode de classification base sur le methode d'analyse discriment il m'a donne des bonnes resultat mais qui me reste c'est de faire une methode de comparaison

je pense que la methode SVM peut etre march

est ce que si possible de me donner quelque article sur cette methode pour que je le puisse apprendre tres bien
merci bien

----------


## pseudocode

La mthode n'est pas tres compliqu (au moins pour le cas linaire). C'est assez simple a comprendre en 2 Dimensions. Et comme on utilise les vecteurs et les produits scalaires, c'est gnralisable en dimension N.

Par exemple ce document explique bien le probleme:

http://www.irisa.fr/cordial/lmiclet/...ivre/SVM/T.pdf

----------


## medchok

Bonjour  tous,

Un grand merci pour vtre intrt et vos contributions.

Pseudocode disait "...principal point commun: ce sont 2 techiques de classification par apprentissage."

Question : A quel niveau se situe la phase d'apprentissage dans les svm.

Si on essayait de reformuler les choses un peu:

En partant d'un tableau d'attributs (o chaque ligne correspond  diffrents indicateurs par rapport  l'une des images  traiter), je cherche  utiliser les svm pour la classification de ces images. Si on appliquait  la lettre la dmarche figurant dans le tutoriel propos par Pseudocode et se trouvant  l'adresse http://www.irisa.fr/cordial/lmiclet/...ivre/SVM/T.pdf on se ramnerait  la rsolution d'un problme d'optimisation primal ou dual avec les cofficients du Lagrangien (chose qu'on retrouve dans la majorit des tutoriels)... Bref, ce que je n'arrive pas  voir dans cette histoire c'est essentiellement:

1. Quel rapport il y a entre les donnes du problme de dpart (dans ce cas les valeurs se trouvant dans mon tableau de dpart) et les paramtres et vecteurs du systme  optimiser?

2. Est ce que la rsolution du systme doit se faire par apprentissage ou directement de faon "presque" formelle?

3. Une fois la solution au problme, primal ou dual, trouve, o se trouve le rapport avec les donnes de dpart et surtout comment interprter le rsultat svm.

Merci d'avance

----------


## pseudocode

Pfou... que de questions. Je suis pas sur de pouvoir t'aider sur toutes.  ::aie::  




> 1. Quel rapport il y a entre les donnes du problme de dpart (dans ce cas les valeurs se trouvant dans mon tableau de dpart) et les paramtres et vecteurs du systme  optimiser?


Comment dire... tout ca c'est une histoire de vecteurs.

Tes donnes de dparts sont des vecteurs. Chaque ligne de ton tableau reprsente un vecteur, et chaque colonne est l'un des "axes" (= catgories). Par exemple tu peux crer un espace a 5 dimensions dans lequel chaque point de ton image est reprsent par un vecteur: (x,y,r,g,b)

On cherche ensuite une "ligne" qui spare ces donnes en 2. Cette ligne est elle aussi dans l'espace a 5 dimensions et peut donc se reprsenter sous forme parametrique et vectorielle: ligne = t*W + W0, ou W est le vecteur directeur, W0 un point de passage et "t" un rel. 




> 2. Est ce que la rsolution du systme doit se faire par apprentissage ou directement de faon "presque" formelle?


Ce n'est pas un apprentissage "a posteriori" comme avec le reseaux neuronaux. On construit la "ligne" a partir des donnes connues, donc c'est "completement" formel.




> 3. Une fois la solution au problme, primal ou dual, trouve, o se trouve le rapport avec les donnes de dpart et surtout comment interprter le rsultat svm.


Pour un nouveau point, il suffit de regarder s'il est au dessus ou en dessous de la "ligne" de sparation pour le classer.

----------


## hanane78

a titre de la meme sujet c'est a dire SVM
je vais vous donner un exemple que j'ai appliquer la methode d'analyse discrimente comme a je vais voir comment je peux appliquer SVM a mon probleme.

je vais vous expliquer mon cas d'etude: j'ai fait l'aquisition d'une sequence d'image de joueurs de football mon objectif est de trouver l'espace couleur qui nous donne les classe plus separ.
pour cette raison j'ai appliqu la methode d'analyse discrimente.

dans mes image, chaque image contient 4 objet c'est a dire j'ai 4 classe.
alors j'ai pris plusieurs image dans des instant differente et puis pour chaque objet j'ai pris 4 fenetre.
pour chaque fenetre j'ai pris un echantillon de 50 pixel aleatoire et j'ai pris leur moyenne 
enfin j'ai trouv une matrice M dans les ligne contient les espace (R B G X Y Z...) et dans les colonnes contient l'intensite de chaque pixels extrait

apres la construction de cette matrice j'applique la methode d'analyse discrimement et je cherche la composante qui a le maximun de pouvoir discriment
je pense que j'etais claire
voila le type de l'image que j'ai les  utilis

alors ma question dans ce cas comment je peux appliquer le SVM

Merci bien

----------


## medchok

Un grand merci pour la rponse et l'intrt,

Ces rponses m'ont certes permis une meilleur connaissance de cet outil. Je commence  raliser, par exemple, qu'il s'agit d'une mthode formelle qui aboutit  la dfinition du vecteur w. Toutefois, certains dtails m'chappent encore.

Pseudocode disait :"Par exemple tu peux crer un espace a 5 dimensions dans lequel chaque point de ton image est reprsent par un vecteur: (x,y,r,g,b)", ok partant de cet exemple. Ce qui veut dire que je vais avoir un tableau se prsentant de la sorte:

Im01, x1, y1, r1, g1, b1
Im02, x2, y2, r2, g2, b2
...
...
Im0n, xn, yn, rn, gn, bn


Mes deux questions:

1. "On cherche ensuite une "ligne" qui spare ces donnes en 2. Cette ligne est elle aussi dans l'espace a 5 dimensions et peut donc se reprsenter sous forme parametrique et vectorielle: ligne = t*W + W0, ou W est le vecteur directeur, W0 un point de passage et "t" un rel." 

En gros, cela reviendrait  optimiser 2/||w||... ou le lagrangien d'une faon ou d'une autre. Mais o retrouve-t-on les (xi, yi, ri, gi, bi) de dpart l dedans (dans ces quations, je veux dire)? Sinon, tous les problmes seraient identiques chose inconcevable, naturellement.

2. Quel nombre d'attributs (et d'images) interviennent (sont ncessaires  la...) dans la rsolution de ce systme.

Merci encore

----------


## pseudocode

> alors ma question dans ce cas comment je peux appliquer le SVM


Si c'est pour Matlab, je te conseille de demander sur le forum Matlab s'il y a une bibliotheque qui gere les SVM et comment on l'utilise. Moi je m'arrete a l'algorithme.  ::aie:: 




> En gros, cela reviendrait  optimiser 2/||w||... ou le lagrangien d'une faon ou d'une autre. Mais o retrouve-t-on les (xi, yi, ri, gi, bi) de dpart l dedans (dans ces quations, je veux dire)? Sinon, tous les problmes seraient identiques chose inconcevable, naturellement.


On retrouve les donnes sous leur forme vectorielle "ui", avec ui = {xi, yi, ri, gi, bi}. C'est toute la puissance de cette methode: l'operation de base est un produit scalaire entre les vecteurs "ui".

Remarque: le "W" que j'ai mentionn dans mon post prcdent etait le vecteur directeur de la ligne. Dans la ralit, vu le nombre de dimensions, la ligne est en fait un hyperplan. On definit donc les points "h" de l'hyperplan comme solution de l'equation w.(h-p)=0, avec "w" un vecteur normal a l'hyperplan et p un point sur l'hyperplan.




> 2. Quel nombre d'attributs (et d'images) interviennent (sont ncessaires  la...) dans la rsolution de ce systme.


Ca on ne peut pas le savoir... Le SVM te donne l'hyperplan qui spare le "mieux" tes donnes. A toi de voir si ca te va. Par exemple en regardant si la marge "2/||w||" est suffisament grande.

----------


## mr_samurai

salut tout le monde,

Au niveau thorie : un SVM depend de 3 parameres: 
- *Le noyau* : produit scalaire dans le cas linaire, et le noyau gaussien ( exp(-(||x1-x2||^2)/(2*Sigma^2)) ... un noyau a ces paramtres. 
- *la fonction du Cout* : nu , mu ...  generalemenrt de le forme \_/ utilise l'hors de l'etape d'optimisation.
- *La marge* : un facteur C qui permet definie la marge autour du plan separateur, et par definition les vecteurs qui se trouve sur cette ligne sont bien ce qu'on appel les vecteurs supports.

Au niveau pratique : le plus delicat est de paramtrer le noyau. sinon tout roule bien.

Sinon, il y a la version probabilistique de la SVM : La RVM (Relevance Vector Machine) base sur une formulation baysienne....

Conclusion : 
SVM plus adapt  la classification
RVM plus adapt  la regression 

++

----------


## Matthieu Brucher

> je vais vous donner un exemple que j'ai appliquer la methode d'analyse discrimente comme a je vais voir comment je peux appliquer SVM a mon probleme.


L'analyse discriminante et les SVM "linaires" c'est kif kif, il me semble. En revanche, la classification se fait mieux dans un espace "rempli", avec 50 dimesions, tu as intrt  avoir des milliards de milliards d'images si tu veux aboutir  quelque chose de presque correct !
Le plus simple : rduire cet espace avec une technique linaire ou non puis utiliser des outils de classification (d'abord linaire puis non linaire si a ne suffit pas). Il ne faut pas mettre la charrue avant les boeufs, la maldiction de la dimensionalit existe.

----------


## toumi23

> SVM plus adapt  la classification
> RVM plus adapt  la regression 
> 
> ++


slt moi j'ai besoin des SVM pour une prediction donc que doit-je utiliser????? precisement je travail avec l'outil weka pour datamining

----------


## Matthieu Brucher

Prdiction de quoi ?

----------

