250 lines
9.3 KiB
TeX
250 lines
9.3 KiB
TeX
\section{Principes}
|
|
|
|
L’approche \gls{svm} est un ensemble de méthodes supervisées utilisant :
|
|
\begin{enum}
|
|
\item{un \gls{ds} d’apprentissage pour entraîner l’algorithme,\\
|
|
et qui fait donc office de superviseur}
|
|
\item{un \gls{ds} de test pour vérifier sa pertinence}
|
|
\end{enum}
|
|
|
|
Cette approche se révèle appropriée dans de nombreux cas d’utilisation :
|
|
\begin{itmz}
|
|
\item{filtrage d’email, courriel légitime ou pourriel (phishing, spam)}
|
|
\item{classification d’images, quel que soit le \gls{si}}
|
|
\item{détection de \gls{sgn} dans des fichiers multimédias}
|
|
\item{quantification de granularité dans des textures}
|
|
\item{reconnaissance de caractères et d’écriture dans des images}
|
|
\item{classification d’expressions faciales dans des images}
|
|
\item{reconnaissance vocale dans des échantillons sonores}
|
|
\item{classification et prédiction de structure de protéines}
|
|
\item{établissement de diagnostics médicaux}
|
|
\item{classification de documents texte en différentes catégories}
|
|
\end{itmz}
|
|
|
|
En fonction du type de problèmes, deux types de résolution :
|
|
\begin{itmz}
|
|
\item{\textbf{régression} (\gls{svr}) → nombre}
|
|
\item{\textbf{classification} (\gls{svc}) → catégorie}
|
|
\end{itmz}
|
|
|
|
En fonction des \glspl{ds}, deux types d’approches mathématiques :
|
|
\begin{itmz}
|
|
\item{\textbf{linéaire} : la plus simple}
|
|
\item{\textbf{non linéaire} : faisant appel à des \glspl{kf}}
|
|
\end{itmz}
|
|
|
|
Quatre paramètres permettent d’affiner le modèle :
|
|
\begin{itmz}
|
|
\item{\textbf{noyau} : linéaire, \gls{rbf}, polynomial, \gls{sigmoid}, etc.}
|
|
\item{\textbf{degré} : aide à trouver un \gls{hpp} séparateur en contexte polynomial,
|
|
faisant rapidement augmenter le temps nécessaire à l’entraînement}
|
|
\item{\textbf{γ} : pour les \glspl{hpp} non linéaires}
|
|
\item{\textbf{C} : pénalité augmentant la distance des données prises en compte,\\
|
|
au risque d’engendrer un surentraînement si trop importante}
|
|
\end{itmz}
|
|
|
|
\pagebreak
|
|
|
|
\subsection{Régression}
|
|
|
|
Un hyperparamètre \textbf{ε} permet de fait varier l’épaisseur de la marge,
|
|
pour y inclure le plus de données possible.
|
|
Les éléments exclus sont identifiés en rose.
|
|
|
|
\subsubsection{Régression linéaire}
|
|
|
|
Régression la plus simple : une approximation affine est suffisante.
|
|
|
|
\bifig{}{Régression linéaire, variation d’ε \cite{homl-linear}}
|
|
{15em}{regression_linear_left}{regression_linear_right}
|
|
|
|
\subsubsection{Régression non linéaire}
|
|
|
|
Régression nécessitant l’utilisation d’une fonction noyau.\\
|
|
Une plus grande valeur de C intègre des données plus éloignées.
|
|
|
|
\bifig{}{Régression polynomiale de degré 2, variation de C \cite{homl-nonlinear}}
|
|
{15em}{regression_nonlinear_left}{regression_nonlinear_right}
|
|
|
|
\pagebreak
|
|
|
|
\subsection{Classification}
|
|
|
|
Il s’agit du type de résolution le plus fréquemment utilisé.
|
|
|
|
\subsubsection{Classification linéaire}
|
|
|
|
Cette section se penche sur la classification de 2 espèces d’iris,
|
|
en fonction des longueurs et largeurs de leurs pétales.
|
|
|
|
\textbf{Séparation à Vaste Marge}
|
|
|
|
La figure de gauche montre que dans l’absolu, un grand nombre de droites
|
|
peut séparer correctement les 2 ensembles à classifier.
|
|
La figure de droite montre cependant qu’en utilisant les éléments
|
|
les plus proches, appelés dans ce cas \glspl{sv}, il est alors possible
|
|
de définir une marge de séparation la plus large qui soit, afin de
|
|
déterminer la droite médiane de séparation la plus efficace.
|
|
|
|
\bifig{}{Séparation à Vaste Marge \cite{homl-large-scale}}
|
|
{9em}{margin_large_left}{margin_large_right}
|
|
|
|
Un changement d’échelle préalable aide à la séparation des données,
|
|
et peut mener à une meilleure efficacité du modèle pour la classification.
|
|
\cite{scaling}
|
|
|
|
La figure de droite montre l’inclusion d’un \gls{sv} supplémentaire.
|
|
|
|
\bifig{}{Changements d’échelles de dimensions \cite{homl-large-scale}}
|
|
{10em}{margin_scale_left}{margin_scale_right}
|
|
|
|
\pagebreak
|
|
|
|
\textbf{Séparation à marge souple}
|
|
|
|
L’approche de vaste marge peut être perturbée par 2 problématiques distinctes.
|
|
|
|
La figure de droite montre par exemple des \glspl{sv} tellement proches,
|
|
que la pertinence du modèle s’en trouve forcément impactée, réduisant
|
|
ainsi la fiabilité de la séparation.
|
|
|
|
La figure de gauche montre quant à elle une anomalie (outlier),
|
|
rendant de fait toute séparation linéaire impossible.
|
|
|
|
\bifig{}{Sensibilité de vaste marge aux anomalies \cite{homl-hard-few}}
|
|
{9.5em}{margin_hard_left}{margin_hard_right}
|
|
|
|
Il faut donc utiliser un modèle plus flexible pour pouvoir éviter
|
|
ce type de problèmes. Le but étant de trouver le meilleur compromis
|
|
entre avoir la marge la plus large, et y retrouver le moins possible
|
|
d’éléments intrus, appelés violations de marge.
|
|
|
|
Il est ainsi possible d’utiliser l’hyperparamètre \textbf{C} pour faire
|
|
varier la distance de prise en compte des éléments proches de la marge.
|
|
|
|
Plus la valeur de \textbf{C} augmente, plus le nombre de violations de
|
|
marge diminiue, mais plus le modèle se spécialise.
|
|
|
|
Une attention particulière doit donc être portée à la réduction de marge,
|
|
sans quoi le modèle perdrait en capacité de généralisation
|
|
et donc en précision.
|
|
|
|
\bifig{}{Plus ou moins de violations de marge, variation de C \cite{homl-hard-few}}
|
|
{9.5em}{margin_few_left}{margin_few_right}
|
|
|
|
\pagebreak
|
|
|
|
\subsubsection{Classification non linéaire}
|
|
|
|
Toutes les données ne sont pas forcément séparables de façon linéaire.
|
|
|
|
Pour y adapter un modèle, il est donc nécessaire de passer par la création
|
|
de nouvelles variables résultant de la transformation des données.
|
|
|
|
Sur la ligne de la figure de gauche, des éléments verts sont entourés d’éléments bleus, inséparables linéairement tels quels.
|
|
|
|
La figure de droite introduit alors une variable $X_{2}$, élévation
|
|
au carré de la variable d’origine $X_{1}$, permettant ainsi
|
|
une séparation linéaire des données.
|
|
|
|
\bifig{}{Séparation linéaire par ajout de variable \cite{homl-nonlinear-linear}}
|
|
{14.5em}{nonlinear_linear_left}{nonlinear_linear_right}
|
|
|
|
L’ajout de variables polynomiales autorise donc des séparations sous
|
|
forme de courbes, et non plus seulement de droites.
|
|
|
|
La figure suivante montre un exemple de séparation curviligne régulière,
|
|
correspondant à la répartition des 2 catégories présentes.
|
|
|
|
\fig{}{Classification utilisant des variables polynomiales \cite{homl-feat-poly}}
|
|
{14em}{features_polynomial}
|
|
|
|
\pagebreak
|
|
|
|
\textbf{Noyau polynomial}
|
|
|
|
Combiner des polynomes de degrés faibles est simple, pratique et
|
|
relativement rapide à calculer.
|
|
|
|
Mais plus les \glspl{ds} seront complexes, plus il faudra composer avec
|
|
des polynomes de plus haut degré, générant un grand nombre de variables,
|
|
et rendant ainsi le modèle trop lent.
|
|
|
|
Un outil mathématique appelé \gls{kt} permet de contourner ce problème.
|
|
Se basant sur le théorème de Mercer, il permet de remplacer dans un espace
|
|
de grande dimension, un produit scalaire par une \gls{kf} facile à calculer.
|
|
|
|
Ce \gls{kt} simplifie donc les calculs ultérieurs d’affinage.
|
|
La technique \gls{gs}, limitant les hyperparamètres à des sous-ensembles
|
|
de valeurs prédéfinies respectant un certain pas, permet ensuite un bon
|
|
compromis de temps de calcul pour trouver les valeurs de réglages
|
|
les plus appropriées.
|
|
|
|
\bifig{}{\Gls{kf} polynomiale \cite{homl-poly}}
|
|
{14em}{kernel_polynomial_left}{kernel_polynomial_right}
|
|
|
|
\textbf{Similarité}
|
|
|
|
Une autre façon de gérer des données non linéairement séparables
|
|
est d’utiliser une fonction de similarité, comme la \gls{rbf} gaussienne.
|
|
|
|
Le principe est de transformer les éléments en fonction de leur similitude
|
|
avec des points de repères déterminés dans l’ensemble d’origine.
|
|
Utiliser chacun des éléments comme point de repère augmente la probabilité
|
|
de séparabilité linéaire, mais également le nombre de variables et donc
|
|
le temps de calcul.
|
|
|
|
La figure de gauche montre les 2 points de repère choisis en rouge,
|
|
ainsi que leur courbe gaussienne associée.
|
|
|
|
La figure de droite montre tous les points transformés avec la \gls{rbf}
|
|
gaussienne, devenant également linéairement séparables.
|
|
|
|
\bifig{}{Variables de similarité utilisant la \gls{rbf} gaussienne \cite{homl-feat-simi}}
|
|
{14em}{features_similar_left}{features_similar_right}
|
|
|
|
\textbf{Noyau gaussien \gls{rbf}}
|
|
|
|
Le \gls{kt} marche également dans un tel contexte de similarité.
|
|
|
|
Faire varier \textbf{C} (colonnes) change la distance de prise en compte.\\
|
|
Faire varier \textbf{γ} (rangées) modifie l’épaisseur de la « cloche » gaussienne.
|
|
|
|
\bifig{}{\Gls{kf} gaussienne (\gls{rbf}) \cite{homl-rbf}}
|
|
{26em}{kernel_rbf_left}{kernel_rbf_right}
|
|
|
|
\pagebreak
|
|
|
|
\textbf{Autres noyaux}
|
|
|
|
En complément aux plus courants vus précédemment, un certain nombre
|
|
d’autres noyaux existe :
|
|
|
|
\begin{itmz}
|
|
\item{\gls{rbf} de Laplace}
|
|
\item{tangente hyperbolique}
|
|
\item{sigmoïde}
|
|
\item{fonction de Bessel de première espèce}
|
|
\item{\gls{rbf} \gls{anova}}
|
|
\item{sillon linéaire à 1 dimension}
|
|
\item{chaîne (utilisé pour les documents texte ou séquences d’ADN)}
|
|
\end{itmz}
|
|
|
|
\textbf{Autres outils}
|
|
|
|
Des algorithmes récents se sont montrés plus efficaces avec de grands \glspl{ds} :
|
|
|
|
\begin{itmz}
|
|
\item{descente par sous-gradient, avec des techniques de décomposition}
|
|
\item{descente par coordonnée, en effectuant des minimisations itératives}
|
|
\end{itmz}
|
|
|
|
\subsubsection{Classification multi-classes}
|
|
|
|
Référence multi-classes \cite{multi-class}
|
|
|
|
\subsubsection{Optimisation}
|
|
|
|
Référence optimisation \cite{mri} \cite{optimization}
|
|
|
|
\pagebreak
|