• Aucun résultat trouvé

Méthodes SVM

Dans le document Apprentissage supervisé (Page 37-50)

4.2 Méthodes SVM

On considère un problème de classification à deux classes, avec un ensemble d’apprentissage {(𝑥𝑖, 𝑦𝑖)1≤𝑖≤𝑛}tel que 𝑦𝑖∈ {−1, +1}.

Les méthodes SVM (Support Vector Machine ou Séparateur à Vaste Marge) reposent sur la définition d’une surface de séparation, c’est-à-dire une fonction 𝑓 ∶ 𝒳 →Rtel que 𝑦 = +1 ⇔ 𝑓(𝑥) > 0.

4.2.1 Séparateurs linéaires

Considérons dans un premier temps les fonctions𝑓 de type linéaires

𝑓(𝑥) =

𝑑

𝑗=1

𝑤𝑗𝑥𝑗+ 𝑏 =< 𝑤, 𝑥 > +𝑏

où 𝑑 désigne la dimension des données. Cela correspond à une séparation de l’espace par un hyperplan défini par< 𝑤, 𝑥 > +𝑏 = 0.

4.2.1.1 Données linéairement séparables

Les données d’apprentissage sont linéairement séparables si un tel hyperplan réalisant une classification parfaite existe

0.5 1.0 1.5

2.0 2.5 3.0 3.5 4.0 4.5

Sepal.Width

Petal.Width

38 CHAPITRE 4. MODÈLES BASÉES SUR LES DISTANCES Dans de tels cas, le nombre de séparateurs possibles est alors infinis et il convient de définir un critère de qualité pour définir le meilleur, qui sera retenu. Le critère retenu est alors lamargedu séparateur, définie par

𝑀 𝑎𝑟𝑔𝑒(𝑓) =min

𝑖 𝑑(𝑥𝑖, 𝐻) où𝑑(𝑥𝑖, 𝐻)est la distance du𝑖𝑒 point à l’hyperplan𝐻.

Intuitivement, le meilleur choix est celui de l’hyperplan qui passe au milieu de l’espace entre les deux nuages, ce qui correspond à l’hyperplan dont la marge est la plus grande.

Le problème de définition du séparateur devient donc de déterminer 𝑤 et 𝑏 tels que

𝑓=argmax𝑀 𝑎𝑟𝑔𝑒(𝑓) Vecteurs support :

Il est à noter que les éléments les plus proches de l’hyperplan𝐻 dans chacune des deux classes sont à même distance de𝐻 (sinon, l’hyperplan pourrait être légèrement décalé de façon à augmenter sa marge, ce qui contredirait la définition de𝑓). Les vecteurs les plus proches de𝐻 sont appelésvecteurs supports.

0.5 1.0 1.5

2.0 2.5 3.0 3.5 4.0 4.5

Sepal.Width

Petal.Width

Dans cet exemple, en admettant que l’hyperplan indiqué est optimal, il y a trois vecteurs supports (un point bleu et deux points rouges).

4.2. MÉTHODES SVM 39 Il est à noter :

1. ce sont les vecteurs supports qui définissent𝑓au sens où l’ajout de points supplémentaires dans le jeu de donnée à l’extérieur de la bande définie pour les points supports ne modifieront pas𝑓.

2. pour tout𝑥, si on note 𝑝(𝑥)son projeté sur 𝐻,

En particulier, si𝑥𝑠est un vecteur support, la marge du séparateur vaut 𝑀 𝑎𝑟𝑔𝑒(𝑓) = |<𝑤,𝑥‖𝑤‖𝑠>+𝑏|.

3. Multiplier 𝑤et 𝑏 par une même constante donne exactement la même séparation et la même marge. On peut donc imposer| < 𝑤, 𝑥𝑠> +𝑏| = 1 et obtenir une marge de ‖𝑤‖1

Optimisation :

Le problème s’écrit alors

Trouver𝑤=argmin1

2‖𝑤‖2 tel que∀𝑦𝑖= 1, < 𝑤, 𝑥𝑖> +𝑏 ≥ 1

∀𝑦𝑖= −1, < 𝑤, 𝑥𝑖> +𝑏 ≤ −1

En introduisant les multiplicateurs de Lagrange (un 𝛼𝑖 par condition, c’est-à-dire par vecteur de données), la nouvelle fonction à considérer est

𝐿(𝑤, 𝑏, 𝛼) = 1

Le problème dual associé est alors

Trouver 𝛼=argmax𝑄(𝛼) tel que∀𝑖, 𝛼𝑖≥ 0

40 CHAPITRE 4. MODÈLES BASÉES SUR LES DISTANCES

𝑄(𝛼) =inf

𝑤,𝑏𝐿(𝑤, 𝑏, 𝛼)

On rappelle (cf cours d’optimisation sous contraintes ou (Nocedal and Wright, 2006)) que lorsque la fonction à optimiser initialement (ici 12‖𝑤‖2) et les contraintes sont convexes, il est équivalent de résoudre les problèmes primal et dual.

En annulant les dérivées partielles suivant𝑤et𝑏(à faire en exercice), on obtient que

En injectant ces résultats dans𝐿, on obtient

𝑄(𝛼) = 1

Le problème d’optimisation dual à résoudre pour obtenir𝛼 est alors

Trouver𝛼=argmax

Ce problème peut être résolu à l’aide d’algorithmes d’optimisation quadratique à contraintes linéaires, et on obtient

1. La valeur de 𝛼. Les valeurs non nulle de ce vecteur donnent l’identité des vecteurs supports

4.2. MÉTHODES SVM 41 2. 𝑤 par la formule𝑤= 12𝑛𝑖=1𝛼𝑖𝑦𝑖𝑥𝑖

3. 𝑏 par la formule 𝑦𝑠(< 𝑤, 𝑥𝑠 > +𝑏) = 1 valable pour tout vecteur support.

Une nouvelle donnée𝑥peut dorénavant être classée en déterminant le signe de 𝑓(𝑥) =< 𝑤, 𝑥 > +𝑏.

4.2.2 Données non linéairement séparables

1.0 1.5 2.0 2.5

3 4 5 6 7

Petal.Length

Petal.Width

Dans la plupart des cas, les données ne sont pas linéairement séparables, c’est-à-dire qu’aucun hyperplan ne permet de séparer parfaitement l’ensemble d’apprentissage.

Dans ce cas, on introduit, pour des valeurs de𝑤et de𝑏 données, une pénalité pour chaque sommet

𝜉𝑖=max(0, 1 − 𝑦𝑖(< 𝑤, 𝑥𝑖> +𝑏))

Cette pénalité est nulle, pour les points qui sont bien classés, avec une distance l’hyperplan supérieure à 𝑓𝑟𝑎𝑐1‖𝑤‖ : dans le cas séparable, elle est nulle pour tout le monde.

Par contre, elle est non nulle pour les points situés dans la bande centrale (dis-tance à l’hyperplan inférieure à la marge) et les points mal classés.

Le problème considéré est alors

42 CHAPITRE 4. MODÈLES BASÉES SUR LES DISTANCES Il se résout de la même manière que dans le cas précédent. Il est à noter que le constante 𝐶 est à choisir et fait office de paramètre de régularisation (plus 𝐶 est petit, plus on impose la séparation).

4.2.3 SVM non linéaires : le Kernel Trick

4.2.3.1 Noyaux Définition :

Théorème 1 (Mercer). Soit 𝒳 un compact dans R𝑑 et 𝐾 ∶ 𝒳 × 𝒳 →R une fonction symétrique (càd K(x,y)=K(y,x)). On suppose aussi que ∀𝑓 ∈ 𝐿2(𝒳),

𝒳𝐾(𝑥, 𝑦)𝑓(𝑥)𝑓(𝑦)𝑑𝑥𝑑𝑦 ≥ 0 (condition de Mercer).

Alors il existe un espace de Hilbertet𝜙 ∶ 𝒳 → ℋtel que∀𝑥, 𝑦 ∈ 𝒳, 𝐾(𝑥, 𝑦) =< 𝜙(𝑥), 𝜙(𝑦) >

La fonction𝐾(𝑥, 𝑦) s’appelle **noyau** positif défini.

Exemples :

Noyau linéaire :𝐾(𝑥, 𝑥) =< 𝑥, 𝑥>

Noyau exponentiel :𝐾(𝑥, 𝑥) = 𝑒−𝛾‖𝑥−𝑥

Noyau gaussien :𝐾(𝑥, 𝑥) = 𝑒−𝛾‖𝑥−𝑥2

Interprétation :Le noyau peut être vu comme une mesure de similarité : plus 𝑥et𝑥 sont semblables, plus la valeur du noyau est grande.

Il a de plus l’avantage, via le théorème de Mercer, de représenter le produit sca-laire dans un espace de dimension plus grande où les nuages seront peut-être plus faciles à séparer linéairement. Or, les méthodes SVM vues précédemment n’uti-lisent la structure de l’espace que via les produits scalaires : utiliser un noyau va donc permettre d’utiliser les méthodes SVM dans l’espaceℋ, en remplaçant 𝑥par𝜙(𝑥), et ce sans avoir besoin de déterminerℋet 𝜙.

4.2.3.2 SVM à noyau

Dansℋ, le problème SVM s’écrit Trouver𝑤=argmin‖𝑤‖2+ 𝐶

4.2. MÉTHODES SVM 43 dont le problème dual peut s’écrire

Trouver𝛼=argmax

Ce problème peut être résolu algotihmiquement sans déterminer ℋ et 𝜙. De plus, on a alors 𝑤 = ∑𝑖𝛼𝑖𝑦𝑖𝜙(𝑥𝑖) et 𝑦𝑠(< 𝑤, 𝜙(𝑥𝑠) > +𝑏) = 1 pour tout vecteur support. Par conséquent, un nouveau vecteur𝑥est classé via la fonction

𝑓(𝑥) = ∑

𝑖

𝛼𝑖𝑦𝑖𝐾(𝑥𝑖, 𝑥) + 𝑏

où𝑏 est tel que, pour tout vecteur support𝑥𝑠,𝑦𝑠(∑𝑖𝛼𝑖𝐾(𝑥𝑖, 𝑥𝑠) + 𝑏) = 1.

44 CHAPITRE 4. MODÈLES BASÉES SUR LES DISTANCES

Chapitre 5

Réseaux de neurones feed-forward et

apprentissage profond

Ce chapitre du cours est en majeure partie issu du cours de Julie Delon, merce à elle de m’avoir permis de l’utiliser.

5.1 Réseaux de neurones : modélisation

Les modèles linéaires de régression ou de classification permettent de faire des prédiction sous la forme

̂

𝑦 = 𝑓(𝑤𝑥) où

— 𝑤est le vecteur des coefficients du modèle

xest obtenu en prenant en compte le variables prédictives et en ajoutant un1afin que le coefficient 𝑤0 permette la preise en compte d’un offset ;

— 𝑓 est une fonction de liaison, par exemple l’identité dans le cas des mo-dèles gaussiens ou la fonction logistique inverse pour le modèle logistique (éventuellement couplée à un seuillage si on veut une prédiction en 0/1) L’espace des fonctions candidates parmi lesquelles optimiser est par conséquent limité : la contrainte𝑓−1(𝑦)est linéaireest en effet très forte.

Le but d’un réseau de neurones est de représenter une fonction 𝑦(𝑥; 𝑤)̂ plus générale que dans le modèle linéaire et d’apprendre la valeur du vecteur de

45

46CHAPITRE 5. RÉSEAUX DE NEURONES FEED-FORWARD ET APPRENTISSAGE PROFOND paramètres 𝑤 permettant une bonne prédiction sur une base d’apprentissage

donnée. On s’intéresse ici aux réseauxfeedforward (non-bouclés), pour lesquels il n’y a pas de connexion retour de la sortie vers l’entrée ou vers les couches intermédiaires. De tels réseaux sont d’une importance considérable aujourd’hui dans de nombreuses applications commerciales ou académiques.

5.1.1 Exemple de réseau à deux couches

x2 x1

y

Commençons par un exemple très simple le réseaufeedforward à deux couches de la figure précédente. Ce réseau a une unique couche intermédiaire, on va supposer typiquement que ces valeurs s’écrivent :

𝑎[1]𝑖 = 𝑔(𝑊𝑖1[1]𝑥1+ 𝑊𝑖2[1]𝑥2), 𝑖 = 1, 2

avec𝑔 une fonction non linéaire, par exemple la fonctionRectified Linear Unit ou ReLU

ReLU(𝑥) = 𝑚𝑎𝑥(0, 𝑥)

Le graphe liant les variables intervenants dans ce réseau peut se dessiner ainsi

5.1. RÉSEAUX DE NEURONES : MODÉLISATION 47

𝑥 𝑦

Figure 5.1 – La fonction𝑅𝑒𝐿𝑈 (𝑥) =max(0, 𝑥). Cette fonction est recomman-dée comme fonction d’activation par défaut dans les réseaux de neurones.

x2 x1

z2 z1

a2 a1

y

ReLu ReLu

W1 W2

On suppose que la sortie𝑦est calculée à partir de la couche intermédiaire comme 𝑦 = 𝑊1[2]𝑎[1]1 + 𝑊2[2]𝑎[1]2 .

La fonction complète représentée par ce réseau est donc la suivante :

̂

𝑦(𝑥) =

2

𝑖=1

𝑊𝑖[2]𝑔 (

2

𝑘=1

𝑊𝑖𝑘[1]𝑥𝑘) = 𝑊[2]𝑚𝑎𝑥(0, 𝑊[1]𝑥),

et elle dépend des paramètres𝑊[1]= (𝑊11[1] 𝑊12[1]

𝑊21[1] 𝑊22[1])et 𝑊[2]= (𝑊1[2] 𝑊2[2]).

Le numéro entre crochets dans la notation 𝑊[1] désigne la couche sur laquelle on se trouve.

48CHAPITRE 5. RÉSEAUX DE NEURONES FEED-FORWARD ET APPRENTISSAGE PROFOND Représenter la fonction binaire XOR (ou exclusif) par un réseau à deux couches

n’est pas très complexe et une solution peut être trouvée intuitivement. Dans les cas réels, on peut avoir des données massives et de grande dimension, que l’on cherche à approcher par un réseau profond dépendant de plusieurs millions de paramètres. Dans ce type de cas, déterminer le bon jeu de paramètres est donc beaucoup moins évident.

5.1.2 Architecture du réseau et Forward Propagation

Un réseau de neurone de typefeedforward enchaîne différentes couches de neu-rones, chaque couche étant fonction de la précédente. Si le vecteur d’entrée est 𝑥 ∈R𝑝, la première couche effectue d’abord une opération linéaire ou affine sur 𝑥, puis calcule une fonction non linéaire du résultat :

𝑧[1]= 𝑊[1]𝑥 + 𝑏[1] puis 𝑎[1]= 𝑔[1](𝑧[1]) (5.1) avec𝑊[1]une première matrice de poids de taille𝑛[2]× 𝑝,𝑏[1]un vecteur d’offset de taille 𝑛[2]× 1 et 𝑔[1] une fonction d’activation, généralement non linéaire (lorsqu’on écrit 𝑔[1](𝑧) avec 𝑧 un vecteur, cela signifie que 𝑔[1] est appliquée à

toutes les coordonnées de𝑧).

La𝑘𝑒𝑚𝑒 couche s’écrit alors en fonction de la précédente comme 𝑎[𝑘]= 𝑔[𝑘]⏟⏟⏟⏟⏟⏟⏟(𝑊[𝑘]𝑎[𝑘−1]+ 𝑏[𝑘])

Les fonctions𝑔[𝑘] sont appliquées sur les noeuds intermédiaires du réseau. Elle permettent au modèle de capturer des non linéarités dans les relations entre les données. Voici quelques exemples de fonctions d’activation que l’on trouve dans la littérature

— la fonction tanh et la fonction logistique𝜎(𝑧) = 1+𝑒1−𝑧 ont été très long-temps plébiscitées comme fonctions d’activation pour les réseaux de neu-rones ; ces deux fonctions présentent le défaut d’avoir une dérivée quasi-ment nulle dès que𝑧 s’éloigne trop de0, on verra que cela peut être un handicap pour entraîner le réseau ;

5.1. RÉSEAUX DE NEURONES : MODÉLISATION 49

— la fonction 𝑅𝑒𝐿𝑈 (𝑥) = max(𝑥, 0) est aujourd’hui considérée comme la fonction d’activation standard à la fois dans l’industrie et dans la re-cherche académique, mais de très nombreux autres choix sont possibles et fonctionnent bien selon les applications, l’idée étant de garder des fonc-tions suffisamment simples pour pouvoir optimiser le réseau rapidement ;

— la fonction𝑅𝑒𝐿𝑈 peut parfois être avantageusement remplacée par une fonction du type max(𝑥, 0) + 𝜖min(𝑥, 0)avec𝜖petit ;

— La fonction valeur absolue |𝑥| est utilisée lorsque l’on souhaite modé-liser une invariance par changement de signe (comme par exemple en reconnaissance d’objets, pour approcher une invariance en fonction des conditions d’illumination).

Forward Propagation.

Le processus consistant à évaluer la fonction𝑦(𝑥; 𝑊 ; 𝑏)̂ dans un réseau feedfor-wardest appeléForward Propagation, puisqu’il consiste à propager l’information de gauche à droite dans le réseau. C’est ce processus qui permet à un réseau de neurones de faire des prédictions à partir de données.

Justification biologique.

On parle de réseaux deneuronescar ces réseaux sont en partie inspirés par les neurosciences, chaque noeud du réseau jouant un rôle ‘analogue’ à celui d’un neurone dans le cerveau. Si de nombreux articles font des parallèles entre les deux, la comparaison a ses limites : les réseaux de neurones que l’on étudie et utilise actuellement en informatique sont extrêmement simplistes si on les compare au cerveau humain… L’intelligence artificielle n’est pour l’instant pas aussi intelligente que les médias veulent le croire.

5.1.3 Propriété d’approximation universelle et réseaux profonds

Le théorème suivant~? ?dit qu’un réseau feedforward à deux couches avec une sortie linéaire et une fonction d’activation 𝑔 bornée croissante, continue (non constante) peut approcher aussi finement que l’on veut n’importe quelle fonction continue sur l’hypercube [0, 1]𝐷 du moment qu’il a suffisamment de neurones sur sa couche intermédiaire.

Théorème 2 (Théorème d’approximation universel). Soit𝑔 une fonction non constante, bornée et croissante et continue. L’ensemble des fonctions sur l’hy-percube [0, 1]𝐷 de la forme

𝑦(𝑥) = 𝜃𝑇𝑔 (𝑊 𝑥 + 𝑏)

avec𝑁 ∈N,𝑊 ∈ ℳ𝑁×𝐷(R),𝜃 ∈R𝑁 et𝑏 ∈R𝑁, est dense dans l’ensemble des fonctions continues sur [0, 1]𝐷.

50CHAPITRE 5. RÉSEAUX DE NEURONES FEED-FORWARD ET APPRENTISSAGE PROFOND Sous des conditions un peu plus fortes sur𝑔, on peut approcher n’importe quelle

fonction mesurable sur l’hypercube. En d’autres termes, on peut approcher aussi finement que l’on veut n’importe quelle fonction sur un compact en dimension finie avec un réseau de neurones à deux couches suffisamment grand. Le problème est que la taille de la couche intermédiaire nécessaire peut-être tellement grande que le réseau n’est pas utilisable ou optimisable en pratique. Or, en pratique, il est souvent beaucoup plus utile d’utiliser des réseaux moins larges mais plus profonds.

Deep learning.

Pendant longtemps, on se contentait d’utiliser des réseaux de neurones à quelques couches, donc peu profonds, pour des raisons de temps de calcul. On se contentait en général d’une quinzaine de couches au maximum. Les réseaux de neurones modernes doivent un partie de leur succès retentissant dans de nombreux domaines (image, son, vidéo, médecine, etc) au fait qu’ils utilisent de très nombreuses couches, on parle alors d’apprentissage profond (ou deep learning). Certains de ces réseaux peuvent avoir des milliers de couches, et des millions de neurones. Pour entraîner de tels réseaux, qui dépendent de milliers ou dizaines de milliers de paramètres, il faut des bases massives de données d’entraînement. Le succès actuel des réseaux de neurones profonds est en grande partie dû à l’utilisation de ces immenses masses de données.

Les réseaux de neurones et en particulier les réseaux profonds permettent de construire des fonctions extrêmement sophistiquées des données d’entrée, à par-tir des paramètres entre les noeuds du réseau. On parle aussi de representa-tion learning. Ces paramètres sont appris automatiquement à partir d’une base d’apprentissage. Cette délicate étape d’optimisation est l’objet de la prochaine section.

Dans le document Apprentissage supervisé (Page 37-50)

Documents relatifs