Vous êtes sur la page 1sur 14

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche


Scientifique
Université des Sciences et de la Technologie Houari
Boumediene

Faculté de Génie Électrique

Spécialité Electronique des systèmes embarqués

COMPTE RENDU TP2


Machines à Vecteurs
Support
Module: Intelligence Artificielle Embarqué
Section : ESE B SGRP 03

Présenté par :

SERHANE IKRAM 202031043270

Sarah Bounab 191931061617

Mouaad Yaici 191931039562

Dr. Khidar
L’objectif du TP :

Extension de Maitriser en pratique


l'analyse à des les algorithmes SVM
ensembles de linéaires et non
données plus linéaires.
complexes.

MACHINES Utiliser l’astuce du


Analyse de noyau pour appliquer
l'interprétation À une SVM à marge douce
des poids des dans le cas non li-
VECTEURS néaire.
caractéristique
s. SUPPORTS

Optimisation Calculer la performance


des du classificateur avec un
hyperparamètr protocole expérimental,
es à savoir la pré-
diction.

Matériel:

Matlab. Liste de
bases de
donnés.

Des codes. . Documentation

2
Définitions

SUPPORT FONCTIONS
VECTOR DU NOYAU C MARGE HYPERPLAN
MACHINES DANS LA SVM
La fonction noyau Le paramètre de La distance entre
L'algorithme SVM Une surface de
dans les SVM régularisation l'hyperplan de
recherche séparation qui
transforme les dans les SVM qui séparation et les
l'hyperplan optimal données pour
sépare les
contrôle le points de données
pour séparer les faciliter le données en
compromis entre les plus proches
classes en traitement, différentes
permettant ainsi la maximisation de de chaque classe,
maximisant la classes dans un
une classification la marge et la maximisée dans
marge entre les espace de
efficace dans des minimisation de les SVM pour
vecteurs de caractéristiques.
espaces de améliorer la
support et cet l'erreur
dimension plus
d'entraînement. généralisation.
hyperplan. élevée.

1-Partie Théorique
Q1: Quelle est la différence entre le SVM à marge rigide
et le SVM à marge douce ?

La principale différence entre le SVM à marge rigide et le SVM à marge douce réside dans leur approche à l'égard
des erreurs de classification et des données aberrantes. Le SVM à marge rigide exige des données linéairement
séparables et n'accepte aucune erreur, tandis que le SVM à marge douce autorise des erreurs de classification et
des données aberrantes, ce qui le rend plus résistant dans des situations réelles où les données peuvent être plus
complexes.

Q2 : le rôle de l’hyperparamétre C et V dans les SVM


Le paramètre C joue un rôle crucial dans le contrôle de la tolérance aux erreurs et dans la régularisation du modèle.
Dans le cadre du SVM à marge douce, C détermine la pénalité associée aux erreurs de classification. Une valeur plus
élevée de C accroît cette pénalité, ce qui se traduit par un modèle doté d'une marge plus étroite et capable de
classifier les exemples d'entraînement de manière plus précise. En d'autres termes, un modèle avec une valeur
élevée de C sera plus réactif aux exemples d'entraînement et s'efforcera de les classifier correctement.

D'autre part, le paramètre Σ contrôle la complexité et la flexibilité de la frontière de décision dans le SVM.
L'hyperparamètre σ (sigma), quant à lui, influence la largeur de la fonction de similarité utilisée pour mesurer la
similitude entre les exemples d'entraînement dans l'espace des caractéristiques transformé. Une valeur plus petite
de σ engendre une fonction de similarité plus large, ce qui signifie que les exemples d'entraînement ont une
influence sur une région plus vaste de l'espace des caractéristiques.

3
Q3:Quels sont les vecteurs de support dans le SVM
Les vecteurs de support sont les exemples qui déterminent l'hyperplan de séparation optimal entre les classes pour
le SVM à marge rigide, ou qui se situent à l'intérieur de la marge pour le SVM à marge douce. Ce sont les exemples
les plus proches de la frontière de décision et ceux qui posent le plus de difficultés pour être correctement classés.

Q4 :Que signifie le sur-apprentissage dans les SVM


Dans le cadre des SVM, le sur-apprentissage survient lorsque la frontière de décision générée par le modèle devient
excessivement complexe et épouse de trop près les exemples d'entraînement spécifiques, incluant le bruit et les
variations aléatoires. Ce phénomène peut entraîner une performance médiocre du modèle lorsqu'il est confronté à
de nouvelles données qui ne font pas partie de l'ensemble d'entraînement.

2- Partie pratique
1-SVM à noyaux linéaire
Q1 : que représente la matrice X et Y
Les matrices X et y représentent les données d'entraînement (les attributs et les étiquettes de classe).

« Le tracé des données d'entraînement en 2D »


Q2 :donner les coordonnées des points aberrants
Selon les données de la figure, on observe qu'il n'y a qu'un seul point aberrant, caractérisé par les coordonnées
suivantes :
X = 0.086405
Y = 4.1045

4
Q3 :en faisant varier le paramètre de régularisation
C =1 , 10 ,100 ,1000

«Le tracé de la frontière linéaire »


Observation :
- Lorsque C = 1 : la frontière de décision s'ajuste moins étroitement aux données d'entraînement.
- Lorsque C = 10 : la frontière de décision peut devenir légèrement plus complexe par rapport à C = 1.
- Lorsque C = 100 : la frontière de décision s'adapte davantage aux données d'entraînement.
- Lorsque C = 1000 : la frontière de décision s'ajuste fortement aux données d'entraînement.

Q4 : justifier votre choix de paramètre C pour une


utilisation future de ce modèle
Nous optons pour une valeur de C égale à 1, car cette faible valeur favorise l'obtention d'une
marge maximale entre les classes. Cette approche permet d'obtenir une frontière de décision
plus généralisable, assurant ainsi une meilleure séparation entre les classes.t.

2-SVM à noyau gaussien

Q1 : Affichage des données en 2D (TP2data2.mat) :


clear all, close all, clc,
load('TP2data1.mat');
traceData(X,y);

« Le tracé des données d'entraînement en 2D » 5


Q2 : visualiser une SVM linéaire sur les données :
clear all, close all, clc,
load('TP2data1.mat');
traceData(X,y);C=1;
model = svmModel(X,y,C(i),@Noyaulineare,1e-3,20);
VFL(X,y,model);

« Le tracé d’une SVM linéaire sur les données


(TP2data.mat)
Pour une meilleure
classification il faut un SVM
non linéaire.

Q3 : testez le noyau sur les deux vecteurs

la structure de la fonction sim :


function sim = Noyaugaussien(x1 , x2 , sigma )
x1 = x1 (:) ; x2 = x2 (:) ;
sim = 0;
sim = exp(sum((x1x2).^2)/(2*sigma^2));
end

Pour le teste on appelle la fonction sim dans le


programme principal :

6
x1=[1 1 1 0]; %test
x2=[1 1 1 1];
sigma=2;
sim 1= Noyaugaussien (x1 , x2 , sigma )
x3=[1 -1 4 0]; x4=[0 5 2 1 ];
sigma=2;
sim2 = Noyaugaussien (x3 , x4 , sigma )

On obtient :
✓sim1 =0.8825 sim2= 0.0052

Q4 :
La première paire de vecteurs, x1 et x2, présente une similarité
élevée avec une valeur de sim1 = 0.8825, indiquant une mesure
de similarité relativement élevée selon le noyau gaussien. Cela
suggère que les vecteurs x1 et x2 partagent une similitude
notable.

En revanche, la deuxième paire de vecteurs, x3 et x4, présente


une similarité très faible avec une valeur de sim2 = 0.0052. Ceci
suggère une grande disparité entre les vecteurs x3 et x4 en
termes de similarité, malgré l'utilisation du même écart type de
sigma = 2 dans la mesure de similarité du noyau gaussien.

Le rôle principal du noyau gaussien :


Le noyau gaussien est fréquemment adopté en raison de ses
caractéristiques mathématiques avantageuses, telles que sa
positivité, sa continuité, sa décroissance exponentielle, et sa
capacité à modéliser des distributions de probabilité. De plus, il
bénéficie d'une interprétation probabiliste dans le cadre des
processus gaussiens, où il exprime la covariance entre les
variables aléatoires.

7
Q5 : Refaites le même tests pour les différents valeurs
de sigma
x1=[1 1 1 0];
x2=[1 1 1 1];
sigma=0.5;
sim 1= Noyaugaussien (x1 , x2 , sigma )
x3=[1 -1 4 0];
x4=[0 5 2 1 ];
sigma=0.5;
sim 2 = Noyaugaussien (x3 , x4 , sigma )

Pour sigma = 0.5 :


- sim1 = 0.1353
- sim2 = 3.3057e-37

Pour sigma = 5 :
- sim1 = 0.9802
- sim2 = 0.4317

Pour sigma = 20 :
- sim1 = 0.9988
- sim2 = 0.4317

L'impact de sigma sur le fonctionnement du noyau :


Dans ce cas spécifique, l'augmentation de sigma n'a pas un
effet significatif sur la transformation non linéaire. En général,
augmenter sigma tend à accroître la similarité entre les
vecteurs x et y.

8
Q6 : visualiser une SVM non linéaire sur les données
pour C=1 , sigma =0.1

load('TP2data2.mat');
figure(2) traceData(X,y);
C = 1;
sigma1=0.1;
model=svmModel (X, y,
C,@(x1,x2)Noyaugaussien(x1,x2,sigma1));
VFNL(X,y,model);

« Le tracé d’une SVM non- linéaire sur les données


(TP2 data2.mat),pour C=1 et sigma=0.1 »
Q7 : l'effet de C et sigma sur la séparatrice et les
vecteurs de support
Pour observer l'effet, nous conservons C=1 et choisissons sigma=0.03.

load('TP2data2.mat');
figure(2) traceData(X,y);
C = 1;
sigma1=0.03;
model=svmModel (X, y, C,
@(x1,x2)Noyaugaussien(x1,x2,sigma1 ));
VFNL(X,y,model); 9
« Le tracé d’une SVM non- linéaire sur les données
(TP2 data2.mat), pour C=1 et sigma=0.03 »

Une séparation améliorée entre les classes est observée avec une valeur de sigma
plus faible (0.03), offrant ainsi une meilleure distinction par rapport à sigma = 0.1.
On remarque que les frontières de décision semblent mieux comprendre la
structure des données, avec moins de chevauchement entre les classes.

La réduction de sigma entraîne un resserrement du noyau gaussien, ce qui signifie


que les exemples d'entraînement ont un impact plus important sur la prédiction
locale. Cela se traduit par une division plus nette des catégories, avec moins
d'ambiguïté dans la classification des données.

10
3-validation croisée
Q1 : complète le code fourni

function [C, sigma , predictions ] = ParamsTP2data3


(X,y,Xval , yval )
steps = [0.01 0.03 0.1 0.3 1 3 10 30];
minSim = 1/ length ( yval ) 8 for i = 1: length ( steps ) testC
= steps (i);
for j=1: length ( steps ) testSigma = steps (j);
model =svmModel (X, y, testC,
@(x1,x2)Noyaugaussien(x1,x2,testSigma ));
predictions = svmPredict(model,Xval);
moySim =mean(predictions==yval).*100;
if ( moySim > minSim ) C = testC ;
sigma = testSigma ;
minSim = moySim ;
fprintf ('MoySim = %f', moySim );
end
end
end
end

Les paramètres C et sigma :


En exécutant le script tp2.m, nous obtenons les valeurs suivantes :
-C=1
- Sigma = 0.100

11
Q2 : Visualisation d’une SVM non- linéaire sur les
données (TP2data3.mat)
clear all;close all; clc
load('TP2data3.mat');
figure(3) traceData(X,y);
C=1;
sigma=0.1;
model=svmModel (X, y, C,
@(x1,x2)Noyaugaussien(x1,x2,sigma ));
VFNL(X,y,model);

« Le tracé d’une SVM non- linéaire sur les données


TP2data3.mat ,C=1 sigma=0.1 »

Une fois que la SVM non linéaire a été exécutée avec un paramètre de
régularisation C=1 et un paramètre sigma=0.1, il apparaît une
séparation inadéquate entre les classes au niveau des détails. Il
semble que la frontière de décision générée ait du mal à saisir la
structure sous-jacente des données, entraînant ainsi un
chevauchement significatif entre les deux classes. Il est envisageable
que les paramètres choisis pour la SVM ne soient pas les plus adaptés
à la tâche de classification spécifique.

12
En utilisant la fonction SVMPredict pour générer
les prédictions :
Clear all ;close all; clc
load('TP2data3.mat');
[[C, sigma , predictions ] = ParamsTP2data3 (X,y,Xval , yval
) model=svmModel (X, y, C,
@(x1,x2)Noyaugaussien(x1,x2,sigma ));
yvald=svmPredict(model,Xval);
acc=mean(yval==yvald).*100;
plotconfusion(yval',yvald');

On obtient la matrice de confusion suivante:

« Le modèle SVM avec noyau gaussien via la matrice


de confusion »

D’après cette matrice : On


remarque qu’on a une
précision de validation=97%

13
conclusion
ce TP a permis d'explorer en profondeur
les concepts et les techniques associés aux
Machines à Vecteurs de Support (SVM).
Nous avons pu comprendre le
fonctionnement des SVM, tant linéaires
que non linéaires, ainsi que l'importance
des paramètres tels que C et sigma dans la
performance du modèle. De plus, nous
avons observé l'impact de ces paramètres
sur la séparation entre les classes et sur la
capacité de généralisation du modèle. Ce
TP a également souligné l'importance de
l'analyse approfondie des résultats pour
ajuster les paramètres de manière
adéquate et obtenir des performances
optimales du modèle. En somme, cette
expérience a renforcé notre
compréhension des SVM et de leur
application dans la résolution de
problèmes de classification, tout en
mettant en lumière les défis associés à la
sélection des paramètres pour obtenir des
résultats précis et généralisables

14

Vous aimerez peut-être aussi