Vous êtes sur la page 1sur 65

1

INTRODUCTION

L’intelligence artificielle est une classe de technologies permettant de créer des


machines ou des applications intelligentes. Elle est un outil d’aide à la prise de décision
permettant aux gestionnaires des organisations de prendre des décisions optimales et
d’anticiper leurs actions. Les applications d’intelligence artificielle permettent par exemple
d’améliorer les diagnostics médicaux, accroître la productivité agricole, optimiser les chaînes
d’approvisionnement et assurer un accès équitable à l’éducation grâce à un apprentissage
hautement personnalisé.

Le terme intelligence artificielle date de 1956, lors de la conférence de


Darmouth par John McCarthy, Marvin Lee Minsky, Shannon, Allen Newell, Hebert Simon et
Rochester. L’Intelligence Artificielle tire naissance d’une fusion d’idées provenant de
plusieurs disciplines (Philosophie, Mathématique, Logique, Psychologie, Ophtalmologie,
Cybernétique, Linguistique, etc). La problématique fondamentale de l’Intelligence Artificielle
se résume de la manière suivante :

Comment concevoir une machine intelligente capable de reproduire le comportement de


l’humain dans ses activités de raisonnement.

C’est quoi une machine intelligente ?

Une machine est dite intelligente lorsqu’elle est capable de reproduire le comportement
humain dans un domaine spécifié ou non.

Une machine est dite intelligente lorsqu’elle est capable de modéliser le fonctionnement d’un
être humain.

1. Définitions

1. D’après WINSTON, L’intelligence artificielle est une étude des concepts qui
permettent de rendre les machines intelligentes.
2. La science s’intéressant aux machines qui réalisent ce qui est, fait par l’homme,
nécessitant de l’intelligence » (Minsky).

2. Domaines de l’intelligence Artificielle

Professeur Pierre KAFUNDA


2

 Le Système Expert

Tâche de diagnostic, de surveillance ou de dépannage d’installation industrielle, analyse


financière, configuration des appareils.

 Robotique et fabrication assistée par ordinateur

Introduction de robots qui acquièrent l’information à l’aide de capteurs ou caméras afin de se


mouvoir dans des environnements diversifiés.

 Compréhension de langage et traduction automatique

La requête au système est indépendante de langage utilisé

 Reconnaissance de formes

Reconnaissance de la parole, de l’image et de l’écriture.

 Apprentissage automatique

Créer des programmes qui génèrent leurs propres connaissances en se modifiant à partir de
leurs succès et leurs erreurs

L'apprentissage automatique (machine learning en anglais), un des


champs d'étude de l'intelligence artificielle, est la discipline scientifique concernée par
le développement, l'analyse et l'implémentation de méthodes automatisables qui
permettent à une machine (au sens large) d'évoluer grâce à un processus
d'apprentissage, et ainsi de remplir des tâches qui sont difficiles ou impossible d’être
réalisées par des moyens algorithmiques plus classiques.

3. Quelques Applications de l’intelligence artificielle

 Détecter des comportements frauduleux lors de transactions financières en ligne.


 Estimer un taux de transformation sur un site marchand en fonction du nombre de clics
sur certaines pages.
 Banque : Prédire les risques de non-solvabilité d’un client en fonction de ses
ressources et de son profil socioprofessionnel.
3

 Anticiper les intentions de résiliation d’un service en fonction des activités d’un
souscripteur. (Télécom)
 Découvrir les préférences d’un client que l’on souhaite retenir pour lui suggérer des
produits et des services adaptés à ses goûts et ses besoins.
 Diagnostic médical
 Pilotage automatique

CHAP 1 Apprentissage Automatique

1.1. Définition

L'apprentissage automatique (machine learning en anglais), un des


champs d'étude de l'intelligence artificielle, est la discipline scientifique concernée
par le développement, l'analyse et l'implémentation de méthodes automatisables qui
permettent à une machine (au sens large) d'évoluer grâce à un processus
d'apprentissage, et ainsi de remplir des tâches qui sont difficiles ou impossible d’être
réalisées par des moyens algorithmiques plus classiques.

Des systèmes complexes peuvent être analysés, y compris pour des


données associées à des valeurs symboliques (ex: sur un attribut numérique, non pas
simplement une valeur numérique, juste un nombre, mais une valeur probabilisée,
c'est-à-dire un nombre assorti d'une probabilité ou associé à un intervalle de
confiance) ou un ensemble de modalités possibles sur un attribut numérique ou
catégoriel. L'analyse peut même concerner des données présentées sous forme de
graphes ou d'arbres, ou encore de courbes (par exemple, la courbe d'évolution
temporelle d'une mesure ; on parle alors de données continues, par opposition aux
données discrètes associées à des attributs-valeurs classiques).

Le premier stade de l'analyse est celui de la classification, qui vise à « étiqueter »


chaque donnée en l'associant à une classe.
4

1.2. Apprentissage non Supervisées


L’apprentissage non supervisé consiste à mettre en évidence les
informations cachées par le grand volume de données, en vue de détecter dans ces
données des tendances cachées. Les techniques utilisées sont : La segmentation
(Clustering en anglais), L’analyse à composante principale, l’analyse factorielle de
correspondance. Dans ce cas les données ne sont pas étiquetées, on a pas des
hypothèses, ni des informations supplémentaires sur les données. C’est-à-dire les
classes ne sont pas connues et il faut les déterminer
5

1.3. Apprentissage Supervisées [20]

L’apprentissage supervisé consiste à extrapoler des nouvelles


connaissances à partir de l’échantillon représentatif (Data set) issu de l’apprentissage
non supervisé ou fourni par l’expert du domaine. Les techniques utilisées sont : Les
réseaux de neurones, le SVM, l’arbre de décision, les réseaux de bayes,…

L’apprentissage supervisé est définie de la manière suivante :

Formellement, la base d’apprentissage est un doublet ( ) * +


est l’ensemble des observations définies sur IRn décrivant les formes et :

est la fonction d’étiquetage. Les , k = 1,…, c sont les étiquettes des classes avec
c = card( )le nombre total de classes (une classe n’est associée qu’à une seule
étiquette). La reconnaissance consiste alors à affecter à une nouvelle observation non
étiquetée, une étiquette de classe par comparaison avec

est appelé classifieur.

Un classifieur est une fonction mathématique ou un algorithme qui réalise les tâches
d’affectation.
Ce classifieur peut être construit en utilisant les réseaux de neurones, l’arbre de
décision, le SVM ou les réseaux de bayes.

Par exemple, Construisons un classifieur bayesien, qui permet de distinguer les


femmes et les hommes en fonction de leurs tailles. (L’espace de description est à
une dimension: la taille).
6

Supposons que les densités de probabilité de la taille t (en mètres) pour les classes
femme et homme soient des gaussiennes: à titre d’exemple, soit
et ̅̅̅ ̅̅̅

Avec respectivement l’écart type pour les hommes et pour les femmes, et
̅̅̅ ̅̅̅ respectivement la taille moyenne pour les hommes et pour les femmes.

( ) ( ( ) )

( ) ( ( ) )

Construisons un classifieur permettant de trouver le sexe d'une personne mesurant 1.60


m

La formule de Bayes donne la probabilité, dite probabilité a posteriori, pour


qu'un individu décrit par le descripteur x appartienne à la classe k :

( )
( )
∑ ( )

∑ ( )

Ainsi, la formule de Bayes fournit les probabilités


( )
( ) bilités a posteriori suivantes:
∑ ( )

( )
( )
( ) ( )

et
7

( )
( )
( ) ( )

Avec ces valeurs, un individu provenant de la population et mesurant


1,60 m possède 60% de chance d'être une femme (40% d'être un homme). Si on désire
l'affecter à une classe, il est donc naturel de choisir celle des femmes ; ce choix (affecter
l'individu à la classe pour laquelle la probabilité a posteriori d'appartenance est
maximum), constitue la règle de décision de Bayes.

Les densités de probabilité

2.

2
Hommes

1.
1
Femmes
0.

0
1. 1. 1. 2 2.
1. 1.9

Taille (en m)

Figure 1.3. : Distribution des individus (femmes et hommes,) en fonction de la taille

Apprentissage Supervisé

Cet apprentissage est dit supervisé parce que les hypothèses de l’expert
du domaine sont nécessaires, elles servent d’ailleurs de base pour l’apprentissage.
Ces hypothèses se traduisent par la définition de la classe d’appartenance de chaque
individu pour la classification, et pour la régression, en la définition de la valeur de
sortie pour chaque entrée sur les données expérimentales. Une méthode
d’apprentissage non supervisé peut aussi être considérée comme un expert du fait
qu’il permet de faire l’étiquetage des données.
8

I.4.1. Définition

L'apprentissage supervisé est une technique d'apprentissage artificiel où l'on cherche


à produire automatiquement des règles à partir d'une base de données
d'apprentissage contenant des « exemples » (en général des cas déjà traités et
validés).

I.4.2. Problème

Soit un ensemble de individus classés, c’est-à-dire pour chaque


individu caractérisé par variables notées * + , sa classe ou sa valeur de
sortie est connue. On a donc que *( ) * + +.
Le problème devant être résolu est le suivant :
En se basant sur l’ensemble ainsi définit, quelle est la valeur d’un nouvel
individu ?

Lorsque :
alors il s’agit d’une régression parce que la valeur de sortie est
variante dans l’ensemble de réels.
* + alors il s’agit de la classification parce que la valeur de sortie
correspond à une classe d’appartenance, c’est-à-dire que chaque
codifie une classe d’appartenance.
Dans le cadre de ce travail, nous nous intéresserons plus à la classification.
En classification, Il est question de mettre en place un classeur ou
classificateur qui permettra de classer tous les individus du domaine.

Etant donné qu’on part des exemples pour enfin classer les individus, nous sommes
en train de faire de l’induction donc une généralisation. Il faudrait qu’on prenne en
compte le fait que l’on commet des erreurs dans ce processus. C’est pourquoi, il faut
minimiser le risque de fausses affectations au niveau du classeur.
9

Vraie classe
Superviseur

Entrée
Mesure d'erreur

Classifieur
Classe estimée

Algorithme
d'apprentissage

Figure I.2. Apprentissage Supervisé [KAF]

I.4.Quelques Algorithmes de Prédiction

I.4.1. K plus proches voisins (k nearest neighbors)

I.4.1.1. Principes

Disposant d’une base d’apprentissage , lorsqu’un nouvel exemple


arrive, on le compare à tous les exemples issus de , on regroupe les ( entier
généralement inférieur à 20) exemples qui en sont le plus similaire (plus proches
voisins), on observe leurs étiquettes(classe), enfin, le nouvel individu sera affecté à
la classe majoritaire dans ces plus proches exemples.

I.4.1.2. Notion de Mesure de la Dissimilarité

Parlant des individus (exemples) similaires, il y a la notion de proximité


qui intervient. Pour dire qu’un exemple est similaire à l’autre, on se base sur des
indicateurs qu’on appelle mesure de similarité ou dissimilarité ou encore indice
d’agrégation. En utilisant une mesure de dissimiliarité, deux exemples seront dits
similaires lorsque leur mesure de dissimilarité est faible.
Ces mesures sont basées sur la notion de distance.
10

I.5. Notion de Distance

Une distance est une application qui associe un réel positif à un couple de point.
C’est-à-dire une application définie comme suit :

( ) ( )

Vérifiant les conditions suivantes :

( ) ( )
( ) ( ) ( )( )
( ) ( ) ( ) ( ) (inégalité triangulaire)
Il est à signaler que pour une mesure de dissimilarité, seules les conditions (1) et (2)
sont obligatoires.

I.5.1. Mesure de dissimilarité Usuelles

Soit ( ) un couple d’individus caractérisés par attributs et le poids


de l’attribut avec * +, nous avons :

a) Attributs quantitaifs

Distance de Minkowski

( ) √∑

, on obtient la Distance de Manhattan :

( ) ∑

, on obtient la Distance euclidienne :


11

( ) √∑ ( )

Pour être très juste sur ces mesures de dissimilarités, il faut parfois
normaliser les données afin d’éliminer les effets des unités de mesure. En lieu et
place d’utiliser les attributs de départ, on utilisera les attributs normalisés en
appliquant la formule ci-dessous :

( )
̂
( ) ( )

Ce qui donne une valeur comprise entre 0 et 1.

b) Pour les Attributs qualitatifs

Pour le cas d’un attribut qualitatif, généralement, on considère une


distance nulle si les valeurs sont égales et 1 sinon. Cependant, pour un attribut
ordinal, cette manière de faire n’est pas très correcte, raison pour laquelle il est
mieux de définir une distance en utilisant la relation d’ordre.

I.4.3.1.3. Algorithme

Algorithme K-NN
Entrée : , ,
Début
Pour tout ( ) faire
Calculer ( )
Fin pour
Y=EnsClass( )
Pour j=1 à |Y| faire
CmptrCl[ j ]=0
Fin pour
Pour l=1 à k faire
Vppv[ l ] * + ( )
( , - )
CmptrCl[indice(Y, , - )] CmptrCl[ indice(Y, , - )]+1
Fin pour
12

Classe Y[ * + , --
Fin

Remarque :
M est un nombre suffisamment grand (M>>>);
( ) est une mesure de dissimilarité
Ce classifieur n’apprend pas. C’est-à-dire pas de phase d’apprentissage, c’est
pour cela qu’il est qualifié de naïf ;
Il nécessite une grande mémoire de stockage quand le nombre d’exemples
devient grand.

I.6. Réseaux de neurones

Les réseaux de neurones est un ensemble de neurones (processeur ou


unité de calcul) interconnectés tel que chaque neurone calcul la somme pondérée de
ses entrées et affecte à cette somme la fonction d’activation, ainsi le résultat obtenu
est envoyé aux neurones qui sont en aval.
Il est basé sur le paradigme du cerveau humain comme nous pouvons le
voir sur la figure ci-dessous :

Figure I.3. Neurone artificiel et biologique [ebm63 page 15]

Où les synapses, axones, dendrite et noyau correspondent respectivement au poids


de connexion (poids synaptique), signal de sortie, signal d’entrée et la fonction
d’activation.
Avec :

Le biais qui est toujours égal à 1 s’il est pris en compte ;


( ) Le signal d’entrée (un individu)
Les poids des entrées (poids synaptique)
( ) La sortie du neurone
13

La fonction d’activation (seuil, logistique, normal, tangente hyperbolique…)


∑ La somme pondérée des entrées

I.4.3.2.1. Principe

Disposant d’une base d’apprentissage, il faut entrainer le réseau de façon


à obtenir la sortie désirée pour chaque entrée, cela revient donc à ajuster les poids
synaptiques de chaque unité du réseau de telle sorte que lorsqu’un nouvel individu
arrive, il suffirait de le soumettre au réseau et on a la sortie prédite donc sa classe
d’appartenance en classification.

I.4.3.2.2. Algorithmes

L’algorithme à utiliser dépend de l’architecture du RN. Si les données sont


linéairement séparables, un perceptron suffit pour faire la prédiction et dans ce cas,
l’algorithme de Hebb ou perceptron peuvent s’utiliser, mais quand les données ne
sont pas linéairement séparables, c’est prouvé par Hornik *1991+ que pour la tâche de
classification, un RN avec une seule couche cachée de perceptrons sigmoïdes et une
couche de sortie peut résoudre tout problème de classification, et dans ce cas, on
peut utiliser l’algorithme de retro propagation du gradient.

I.4.3.2.3. Etapes pour la Mise en Place du RN

Pour mettre en place un réseau de neurone, il faut commencer par le


choix de la structure du RN, ensuite choisir l’algorithme et ses paramètres, passer au
processus d’apprentissage (entrainement) comme présenter dans l’ordinogramme ci-
dessous :
Choix de la
Choix de l'algo structure du
non Fin de la session oui
d'apprentissage réseau de
neurones

Fin de
Processus oui Simulation Ajout d'une forme
l'apprentissage
d'apprentissage d'apprentissage

oui
Entrée d'une forme
à reconnaitre
Entrée d'une forme
non
d'apprentissage

Figure I.4. Ordinogramme de la conception du réseau de neurones [KAF]


14

CHAP 2. Le Réseaux de neurones

2.0 Introduction.

Lorsqu’un phénomène physique, biologique ou autre, est très complexe


ou encore bruité pour accéder à une description analytique débouchant sur une
modélisation déterministe, on utilise les techniques d’apprentissage supervisé afin de
décrire au mieux le comportement à partir d’une série d’observation.

Les réseaux de neurones sont utilisés comme outils de modélisation par


apprentissage, qui permettent d’ajuster des fonctions non linéaires. Le problème
d’apprentissage consiste à construire une fonction f (ou machine) à partir des
données (x1, y1), …, (xn, yn) de sorte que f(X) soit une bonne approximation de la
réponse souhaitée Y. souvent, on choisit f de manière à minimiser un critère
fonctionnel. Par exemple, on peut former la somme des erreurs quadratiques

n
E= (y
i 1
i  f ( xi )) 2 et chercher à rendre cette somme la plus petite possible.

En général, l’apprentissage des réseaux de neurones est effectué de


sorte que pour une entrée particulière présentée au réseau corresponde une cible
spécifique. L’ajustement des poids se fait par comparaison entre la réponse du réseau
(ou sortie) et la cible, jusqu’à ce que la sortie corresponde (au mieux ?) à la cible.

L’objectif de ce chapitre est de mettre au point un classifieur


automatique basé sur le réseau de neurones. Ce classifieur aura pour rôle d’affecter
chaque individu dans sa classe. La topologie de notre réseau de neurones est simple :
nous considérons un réseau de neurones à une seule couche cachée et ce réseau a
une structure d’un graphe biparti. Nous avons exploité l’algorithme de retro
propagation de gradient pour ajuster les poids synaptiques.
15

2.2. Présentation des réseaux de neurones.

Les méthodes neuronales se sont développées depuis ces trente


dernières années simultanément au paradigme de l’apprentissage (machine
learning). Selon ce paradigme, les machines ne sont pas programmé à l’avance pour
une taches donnée (par exemple, la reconnaissance d’une forme), mais
‘’apprennent’’ à effectuer cette tâche à partir d’exemples.

Un problème typique d’apprentissage consiste à apprendre à prédire


une variable Y, appelée réponse ou variable de sortie, à partir d’une variable X
(appelée variable d’entrée ou vecteur de caractéristiques). En général, la relation
entre Y et X est stochastique. Le couple (X, Y) obéit à une certaine loi de probabilité,
notée p, et on dispose d’un ensemble d’apprentissage (x1,y1), …, (xn, yn) constitué de
données indépendantes observées à partir de la loi p. dans cet échantillon, y i est la
réponse correspondant à l’entrée xi.

Le problème d’apprentissage consiste à construire une fonction f (ou


machine) à partir des données (x1, y1), …, (xn, yn) de sorte que f(X) soit une bonne
approximation de la réponse souhaitée Y. souvent, on choisit f de manière à
minimiser un critère fonctionnel. Par exemple, on peut former la somme des erreurs
n
quadratiques E =  ( y i  f ( xi )) 2 et chercher à rendre cette somme la plus petite
i 1

possible.

Les réseaux de neurones sont utilisés comme outils de modélisation par


apprentissage, qui permettent d’ajuster des fonctions non linéaires très générales à
des ensembles de points ; comme toute méthode qui s’appuie sur des techniques
statistiques, l’utilisation de réseaux de neurones nécessite que l’on dispose de
données suffisamment nombreuses et représentatives. Le neurone artificiel est
calqué sur le modèle biologique.
16

4.2. Neurone Biologique

La figure 3.1 reprend l’hypothèse proposée par de nombreux biologistes pour recréer
le comportement intelligent du cerveau.

Comportement global du
cerveau

Système et voies de
communication

Circuits

Neurone

Figure 2.1. Hypothèse biologique de génération d’un comportement intelligent

Le cerveau se compose d’environ 1012 neurones (mille milliards), avec


1000 à 10000 synapses (connexions) par neurone. Le neurone est une cellule
composée d’un corps cellulaire et d’un noyau. Le corps cellulaire se ramifie pour
former ce que l’on nomme les dendrites. Celles-ci sont parfois si nombreuses que l’on
parle alors de chevelure dendritique ou d’arborisation dendritique. C’est par les
dendrites que l’information est acheminée de l’extérieur vers le soma, corps du
neurone. L’information traitée par le neurone chemine ensuite le long de l’axone
(unique) pour être transmise aux neurones. La transmission entre deux neurones
n’est pas directe. En fait, il existe un espace intercellulaire de quelques dizaines
d’Angstrom (10-9m) entre l’axone du neurone afférent et les dendrites (on dit une
dendrite) du neurone efférent. La jonction entre deux neurones est appelée la
synapse.
17

Figure 2.3. Neurone biologique

Fig 2.4 Neurone biologique

Fig 2.4 Neurone Artificiel


18

2.2. Réseaux de neurones Artificiel (RNA)

2.2.1. Définitions

a) Définition 1

Un RNA est un ensemble des processeurs (ou neurones, ou unité de


calcul) interconnectés fonctionnant en parallèle, chaque processeur calcul le potentiel
(ou somme pondérée) sur base des données qu’il reçoit, et applique ensuite la fonction
d’activation sur le potentiel, le résultat obtenu est transmis aux processeurs se trouvant
en aval.

b) Définition 2

Un RNA est un graphe pondéré G = (X, A, W), où

 X est un ensemble non vide et au plus dénombrable dont les éléments sont
appelés « neurone, ou processeur, ou unité de calcul » du réseau.
 A est une famille d’éléments du produit cartésien XxX  x, y  / x, y  X  les
éléments de A sont appelés : synapse et sur chaque synapse et associé un poids
w
 La matrice W  wij i , j u est appelée « la matrice de pondération, ou la

matrices des poids synaptiques, wij  IR ».

C) Définition 3
19

Un RNA est une fonction paramétrée qui est la composition d’opérateurs


mathématiques simples appelés neurones formels (ou plus simplement neurones).

Un neurone est une fonction algébrique non linéaire, paramétrée, a valeurs


bornées, de variables réelles appelées entrées.

x1 x2 xn

Figure 3. 5. Un neurone réalise une fonction non linéaire bornée y = f (x1, ... xn ; w1,...wp)
où les {xj} sont les entrées et les {wj} sont des paramètres

L’argument de la fonction f est une combinaison linéaire des entrées du


neurone (à laquelle on ajoute un terme constant, le "biais"). La combinaison linéaire est
appelée potentiel ; les coefficients de pondération {wj} sont fréquemment appelés "poids
synaptiques" (ou plus simplement poids) en référence à l’ origine "biologique" des
réseaux de neurones.

Le potentiel d’un neurone est donc calculé de la façon suivante :


20

Le biais wo peut être envisagé comme le coefficient de pondération de


l'entrée n°0, qui prend toujours la valeur 1 :

La valeur de la sortie du neurone est donc :

( ) ( ∑ )

La fonction f est appelée "fonction d'activation"

Exemple d’un RNA à 3 couches.

Figure 3 RNA à 3 Couches

Ces modèles ont été fortement inspirés par le système nerveux


biologique. On peut entraîner un réseau de neurone pour une tâche spécifique
(reconnaissance de caractères par exemple) en ajustant les valeurs des connections (ou
poids) entre les éléments (neurone).

En général, l’apprentissage des réseaux de neurones est effectué de sorte


que pour une entrée particulière présentée au réseau corresponde une cible
spécifique. L’ajustement des poids se fait par comparaison entre la réponse du réseau
(ou sortie) et la cible, jusqu’à ce que la sortie corresponde au mieux à la cible. On
21

utilise pour ce type d’apprentissage dit supervisé, un nombre conséquent de pair


entrée/sortie.

En ce qui concerne le fonctionnement de RNA, nous distinguons deux phases :

La première est habituellement le calcul de la somme pondérée des


entrées selon l’expression suivante :

Figure 4Fonctionnement d’un RNA

La deuxième phase consiste à appliquer la fonction d’activation sur la valeur v


obtenue lors de la deuxième phase, et la valeur f(v) est transmise aux neurones
avals.

Il existe de nombreuses formes possibles pour la fonction de transfert.

Les différentes fonctions d’activation


22

Figure 3.8.a Fonction à Figure 3.8.b Fonction Figure 3.8.c Fonction


seuil sigmoïde gaussienne

Figure 3. Les fonctions d’activation


23

Figure 4 Sortie d’un neurone à 3 entrées * + munies des poids

* +, dont la fonction d’activation est une tangente hyperbolique : y =


th( ).

Quelques applications de RNA

Les réseaux de neurones servent aujourd’hui à toutes sortes d’applications dans


divers domaines. Par exemple :

 Pilotage automatique des avions, ou encore un système de guidage pour


automobile ;
 les systèmes de lecture automatique de chèques bancaires et d’adresses
postales ;
 les systèmes de traitement du signal pour différentes applications militaires ;
 les réseaux sont aussi utilisés pour faire des prévisions sur les marchés
monétaires, pour évaluer le risque financier, pour le diagnostic médical, pour
l’exploration pétrolière ou gazière, en robotique, en télécommunication.
24

2.3. Le neurone formel

Un neurone formel est un automate très simple imitant grossièrement


la structure et le fonctionnement d’un neurone biologique. La première version de ce
dernier est celle de Mc Culloch et W. Pitts et date de 1943. S’inspirant de leurs
travaux sur les neurones biologiques, ils ont proposé le modèle du neurone formel
qui se voit comme un opérateur effectuant une somme pondérée de ses entrées
suivie d’une fonction d’activation (ou de transfert) comme indiqué par la figure 2.5.

Figure 2.5. Neurone formel

représente la somme pondérée des entrées du neurone

Où :
25

( )

2.4. Topologie d’un réseau de neurones

Les connexions entre les neurones qui composent le réseau décrivent la


topologie du modèle. Un réseau de neurones (RN) est un système informatique,
constitué de plusieurs unités (neurones) organisées sous forme de niveaux différents
appelés couches du réseau. Les neurones appartenant à la même couche possèdent
les mêmes caractéristiques et utilisent le même type de fonction d’activation. Entre
deux couches voisines les connexions se font par l’intermédiaire de poids qui jouent
le rôle des synapses. L’information est portée par la valeur de ses poids, tandis que la
structure du réseau de neurones ne sert qu’à traiter l’information et l’acheminer vers
la sortie. La structure ou la topologie d’un réseau de neurones est la manière dont les
neurones sont connectés. Les structures résultantes peuvent être très variées mais
elles sont souvent réparties en deux grandes familles à savoir : les réseaux de
neurones non bouclés et les réseaux de neurones bouclés.

Un réseau de neurone est non bouclé lorsque sont graphe


d’interconnexion ne contient pas des circuits (Figure 3.12)

Un réseau de neurone est bouclé lorsque sont graphe d’interconnexion


contient des circuits (Fig.3.13)

2.4.1. Réseaux non bouclés


26

Dans ce type de structure dite feedforward, la propagation de


l’information se fait uniquement de l’entrée vers la sortie. Les neurones de la même
couche peuvent se connecter uniquement avec les neurones de la couche suivante.
L’architecture la plus utilisée est le Perceptron multicouches. Les neurones
composant ce réseau s’organisent en N couches successives (N=3). Dans l’exemple
suivant (figure 3.12), nous présentons un perceptron à trois couches. Les neurones de
la première couche, nommée couche d’entrée, voient leur activation forcée à la
valeur d’entrée. La dernière couche est appelée couche de sortie.

Elle regroupe les neurones dont les fonctions d’activation sont généralement de type
linéaire. Les couches intermédiaires sont appelées couches cachées. Elles constituent
le cœur du réseau. Les fonctions d’activation utilisées sont de type sigmoïde.

Figure 2.6. réseau de neurone non bouclé à 3 couches

Les réseaux de neurones disposés suivant cette architecture sont aussi appelés
"perceptrons multicouche" (ou MLP pour Multi-Layer Perceptrons).
27

désignent respectivement le biais du neurone i de la couche l et le poids de


connexion entre le neurone j de la couche l-1 et le neurone i de la couche l.

( )

l = 1,2

où ( ) est la fonction d’activation des neurones de la couche l. On peut réécrire les


équations ci – dessus sous forme matricielle comme suit :

( ) ( ) ( )

( ) ( ( ))

( )
28

Le perceptron multicouche présente une alternative prometteuse pour la


modélisation des systèmes complexes. Avec une seule couche cachée, il constitue
une approximation universelle.

Les études menées dans (Hornik et al., 1989; Cybenko, 1989) montrent qu’il peut être
entrainé de manière à approximer n’importe quelle fonction sous réserve de mettre
suffisamment de neurones dans la couche cachée et d’utiliser des sigmoïdes comme
fonctions d’activation.

2.4.2. Réseaux bouclés (ou dynamique ou recurent)

Un réseau dynamique ou récurrent possède la même structure qu’un


réseau multicouche munie de rétroactions. Les connexions rétroactives peuvent
exister entre tous les neurones du réseau sans distinction, ou seulement entre
certains neurones (les neurones de la couche de sortie et les neurones de la couche
d’entrée ou les neurones de la même couche par exemple). La figure 3.1.3 montre
deux exemples de réseaux récurrents. Le premier est un simple multicouche qui
utilise un vecteur d’entrée qui contient les copies des activations de la couche de
sortie du réseau et le deuxième est un réseau à mémoire se distingue du premier par
la présence des unités mémoires.
29

Figure 2.7 réseau de neurone bouclé à 3 couches

Nous utiliserons le réseau de neurones non bouclé, à une seule couche cachée. Ce
réseau se structure en trois couches successives. La couche d’entrée permet de saisir
le vecteur de caractéristiques x, et la couche de sortie fournit la prédiction. Les
entrées sont redistribuées sur des unités cachées intermédiaires à la sortie. Ces
unités cachées forment la seconde couche. Un réseau de neurones est paramétré par

un ensemble de poids wi et de biais  i .


j

Chaque unité effectue une somme pondérée de ses entrées, ajoute une
constante et évalue le résultat selon une fonction  h . Les unités de sortie ont la

même forme, mais l’évaluation se fait selon une fonction  0 qui peut être différente
30

de  h . Ainsi, le modèle calcule la fonction

g k ( x, )  0 ( k   k h h ( h   wh x j )), 1  k  K (1.1) jième


j
où x j est la
h j

coordonnée de x, et K la dimension de l’espace de sortie. La fonction d’activation  h


1
de la couche cachée est la fonction logistique  h ( z )  l ( z )  .
1  exp( z )

En revanche, ( 0 ( z )  z ) selon que l’on souhaite faire de la classification

ou estimer une régression.

En résumé, un réseau de neurones est une structure de traitement de


l’information parallèle et distribuée, constitué d’unités de calcul interconnectées par
des canaux unidirectionnels appelés connexions. Chaque unité de traitement n’a
qu’une seule connexion de sortie qui peut être dupliquée en autant d’exemplaire que
désiré, les duplicata transportant tous le même signal. Le traitement effectué par
chaque unité peut être défini de manière arbitraire pourvu qu’il soit complètement
local, c’est-à-dire qu’il ne dépende que des valeurs courantes des signaux arrivant à
l’unité par ses connexions entrantes et du contenu de la mémoire locale attachée à
cette unité.

2.5. APPRENTISSAGE DES RESEAUX DE NEURONES

L’apprentissage est une phase du développement d’un réseau de neurones durant


laquelle le comportement du réseau est modifié jusqu’à l’obtention du comportement
désiré. L’apprentissage neuronal fait appel à des exemples de comportement.

a) Problème
Etant donnée un ensemble E de N paires *( )+ , ≤ i ≤ N, Xi Rn, Yi
p
. construire un réseaux Fw capable de mettre ces formes en correspondance,
c’est-à dire tel que : Fw (Xi) = Yi.
31

Ceci passe tout d’abord par le choix de l’architecture du réseau, ensuite


déterminé au cours d’une phase dite d’apprentissage, un ensemble de poids W
permettant à cette architecture de réaliser la tache associative demandée.
L’apprentissage présenté ainsi est qualifié de supervisé.

b) Définition

L’apprentissage dans le contexte des réseaux de neurones, est le processus de


modification des poids de connexions (y compris les biais) ou plus rarement du
nombre de couches et de neurones (Man et Halang, 1997), afin d’adapter le
traitement effectué par le réseau à une tache particulière.

Figure 3.14 illustre Le paradigme (en problèmes de classification) du professeur-élève


de l'apprentissage supervisé. Les poids de l'élève doivent être ajustés pour donner la
même réponse que celle du professeur. Cet ajustement, l'apprentissage, est réalisé
en général de façon itérative, en minimisant une mesure de l'erreur, jusqu'à ce que le
réseau-élève puisse émuler aussi bien que possible le professeur.
32

Figure 2.8 Le paradigme du professeur-élève pour l’apprentissage supervisé

4.8.1 Apprentissage par minimisation de l’erreur

Soit E l’ensemble d’apprentissage. On considère un réseau dont la


couche de sortie comporte P cellules. Soit ( )Les poids de la kè cellule à un instant
donné. L’erreur commise par cette cellule sur l’ensemble E, ( ( ))est définie
comme étant la moyenne des erreurs quadratique commise sur chaque forme.

( ( )) ( ( )) ∑ ( ( )) ∑( ( ) )

où ( ) est la sortie de la Kè cellules au temps t en fonction de l’entrée Xi.

L’apprentissage consiste donc simplement à rechercher un vecteur


qui minimise C. La méthode proposée par Widrow et Hoff pour résoudre ce problème
consiste à adapter une méthode d’optimisation bien connue : La minimisation par
33

descente en gradient. Le principe en est simple l’opposé du gradient C par rapport au


( ) ( )
poids en ( ) pointe dans la direction dans laquelle la diminution de
( ) est maximale ; en modifiant le vecteur poids, par itération successives, dans la
direction opposée au gradient, on peut espérer aboutir à un minimum de ( ).

Figure Minimisation de la fonction Cout par descente en gradient

Le gradient de la fonction coût par rapport à se calcul aisément par :

( ( )) ∑ ( ( )) ∑( ( ) )

Et l’algorithme d’apprentissage par descente en gradient est donc le suivant :

Etape 0 : t=0

Initialiser aléatoirement les poids ( )

Etape 1 : Pour chaque automate sur l’ensemble d’apprentissage E : ( ( ))


34

Etape 2 : Pour chaque automate K, modifier les poids par :

( ) ( ) ( ( ))

Etape 3 : t = t+1

Si la condition d’arrêt non remplie, aller à l’étape 2.

Avec Taux d’apprentissage

En résumé soit ( ⃗⃗ ) ∑ ( ( )) l’erreur d’apprentissage due aux poids

⃗⃗ . Si la fonction d’activation est linéaire, cette erreur E s’écrit :

( ⃗⃗ ) ∑( ∑ )

On voit donc que l’erreur E est un parabolique dans l’espace des poids.
Donc, E possède un seul minimum et il s’agit de trouver la valeur des poids
correspondant à ce minimum. Pour cela, la technique classique consiste à utiliser un
algorithme de descente de gradient. Pour cela, on part d’un point (dans l’espace des
poids, espace de dimension P+1) ⃗⃗ : ensuite, itérativement, on corrige ce point pour
se rapprocher du minimum de E. Pour cela, on corrige chaque poids d’une quantité
proportionnelle au gradient de E en ce point, cela dans chaque direction, donc par
rapport à chacun des poids. Ce gradient est donc la dérivée (partielle) de E par
rapport à chacun des points. Reste à déterminer le coefficient à appliquer à cette
correction.

⃗⃗ ⃗⃗ ( ⃗⃗ )

∆(𝑤
⃗⃗ )
35

Il nous reste à calculer ce terme général :

[ ∑( ( )) ]

[∑( ( )) ]

∑ [( ( )) ]

∑ ( ( )) ( ( ))

∑( ( )) [( ∑ )]

∑( ( ))( )

D’où :

∆ ∑( ( ))

Les algorithmes d’apprentissage

L’apprentissage avec des réseaux de neurones multicouches se fait principalement


suivant deux approches :

a) Approche par retro propagation de gradient (RPG)


La retro propagation de gradient détermine les poids de minimisation d’un
cout. Cet algorithme nécessite l’introduction de l’architecture de réseau.
b) Approche constructive
36

Avec cette approche, on apprend en même temps le nombre d’unités et les


poids, commençant généralement avec une seule unité.

ALGORITHME DE HEBB

Cet algorithme se déroule en 5 étapes de la manière suivante :

Etape 1 : initialisation des poids

Etape 2 : présentation d’une entrée ( ) de la base d’apprentissage

Etape 3 calcul de la sortie x pour l’entrée E telle que :

∑( )

( )

Etape 4 : si la sortie calculée x est différente de la sortie désirée d alors il y a


modification des poids

Etape 5 : Retour à l’étape 2.

Exemple d’application
37

Soient les entrées , la sortie d, du tableau ci- après

d E
1 1 1
1 -1 1
-1 1 -1
-1 -1 -1

Solution

Etape 1 : initialisation des poids

Etape 2 : présentation d’une entrée ( ) de la base d’apprentissage

( ) ( )

Etape 3 calcul de la sortie x pour l’entrée E telle que :

∑( ) ( )

Comme n = 0 donc
( )

Il y a modification des poids

( ) ( )
38

Etape 5 : Retour à l’étape 2.

Etape 2 : présentation d’une entrée ( ) de la base d’apprentissage

( ) ( )

Etape 3 calcul de la sortie x pour l’entrée E telle que :

∑( ) ( )

Comme n = 0 donc
( ) et x alors modification des poids

Etape 4 modification des poids

( ) ( )

Etape 5 : Retour à l’étape 2.

Etape 2 : présentation d’une entrée ( ) de la base d’apprentissage

( ) ( )

Etape 3 calcul de la sortie x pour l’entrée E telle que :

∑( ) ( )

Comme n = 0 donc
( ) et x alors pas de modification des poids

Etape 5 : Retour à l’étape 2.

Etape 2 : présentation d’une entrée ( ) de la base d’apprentissage

( ) ( )
39

Etape 3 calcul de la sortie x pour l’entrée E telle que :

∑( ) ( )

Comme n = 0 donc
( ) et x alors pas de modification des poids

Etape 5 : Retour à l’étape 2.

Etape 2 : présentation d’une entrée ( ) de la base d’apprentissage

( ) ( )

Etape 3 calcul de la sortie x pour l’entrée E telle que :

∑( ) ( )

Comme n = 0 donc
( ) et x alors pas de modification des poids

Etape 5 : Retour à l’étape 2.

Etape 2 : présentation d’une entrée ( ) de la base d’apprentissage

( ) ( )

Etape 3 calcul de la sortie x pour l’entrée E telle que :

∑( ) ( )

Comme n = 0 donc
( ) et x alors pas de modification des poids

Les poids pour cette base d’apprentissage c’est :

4.8. 2. Algorithme d’apprentissage du perceptron


40

Nécessite : les exemples d’apprentissage . Chaque exemple xi possède P attributs


dont les valeurs sont notées . Pour chaque donnée, est un attribut virtuel,
toujours égal à 1. La classe de l’exemple est

Nécessite : taux d’apprentissage - -

Nécessite : un seuil

Initialiser les aléatoirement

Répéter

// E mesure l’erreur courante

Mélanger les exemples

Pour tous les exemples du jeu d’apprentissage faire

(∑ )

Pour tous les poids * + faire

fin pour

fin pour

jusque
41

4.8.3. Algorithme de propagation de gradient pour un


perceptron

Nécessite : les instances d’apprentissage

Nécessite : taux d’apprentissage - -

Nécessite : un seuil

Initialiser les * + aléatoirement

Répéter

// mesure l’erreur courante

Pour tous les poids * + faire

( )

fin pour

mélanger les exemples

pour tous les exemples du jeu d’apprentissage * + faire

( ( ))

Pour tous les poids * + faire

( ) ( ) ( ( )

fin pour

pour tous les poids * + faire

( ) Avec :∆( ) ( )

fin pour

jusque
42

Apprentissage d’un réseau de neurones multicouches

Dans notre cas, nous allons nous limité dans las de réseau de neurones à 3couches.
Un réseau de neurones multicouche est appelé PMC qui signifie, perceptron
multicouche.

( ) ( ( ) ( ))

Avec :

E(t) la valeur du critère à l’instant t

( ) est la valeur de la i ème sortie désirée à l’instant t

Les paramètres du réseau sont modifiés suivant la règle du gradient comme suit :

( )
( ) ( )
( )

( )
( ) ( )
( )

( ) ( ) ( )
( ) ( ) ( )

( ) ( ) ( )
( ) ( ) ( )
43

De l’équation (2.2) on déduit que

( )
( )

( )
( )

En posant

( )
( ) :
( )

( )
( )
( )

( )
( )
( )

La quantité ( ) exprime la sensibilité du critère de performance aux


changements du potentiel du neurone i de la couche l. Dans le cas où i est
l’indice d’un neurone de sortie (l = L) on obtient :

( ) ( ) ( )
( ) ( ( ) ( )) (̇( ( ))
( ) ( ) ( )

( ( ))
(̇ ( ))
( )

Dans le cas où i est l’indice d’un neurone caché (1<l< L - 1) on peut vérifier
aisément que les fonctions de sensibilité satisfont la relation récurrente ci –
dessous

̇( )( )
44

̇ ( ( ))
̇ ( ) ̇( ( ))

( ̇( ( )))

e kx 1
On appelle fonction sigmoïde de paramètre k  0, la fonction  k ( x)  
1 e kx
1  e  kx

Cette fonction est une approximation indéfiniment dérivable de la fonction à seuil de


Heaviside, d’autant meilleure que k est grand, nous prendrons k = 1 dans la suite, on a

ex 1
g ( x)  x  (2)
e  1 1  ex

La dérivé de cette fonction sera utilisée dans la règle de mise à jour des poids par
l’algorithme de rétroprogration du gradient.

ex
g ' ( x)   g ( x) . (1  g ( x) (3)
(1  e x ) 2

Algorithme de rétro propagation du gradient de l’erreur pour un perceptron


multi couche ayant p+1 entrées (p attributs + biais), q+1 couches numérotée s de
0 (Co : couche d’entrée) à q (cq : couche de sortie). ( ) est la sortie du PMC
pour la données x i, ( ) est la sortie de la ième unité de la couche l, à l’instant t,
( )est le poids de la connexion entre l’unité j de la couche l et le neurone i de
la couche l+1 à l’instant t (k=0 correspond au biais), est le nombre d’unité
composant la couche . L’algorithme donné correspond à des neurones à

fonction d’activation logistique


45

4.10. Algorithme de retro propagation de gradient pour un


PMC

Nécessité : Les N instances d’apprentissage 

Nécessité : Taux d’apprentissage - -

Initialiser les

Tant que critère d’arrêt non rempli faire

Mettre à jour

Mélanger les exemples

Pour tout exemple faire

( )

( ) ( )( ( ))( ( ) ( ))

Pour toutes les couches cachées l décroissant de q-1 à 1 faire

Pour tous les neurones j de la couche faire

( ) ( )( ( )) ∑
()

Fin pour

Fin pour

// Mise à jour des poids

Pour toutes les couches l croissant de 0 à L-1 faire

Pour toutes les unités k de la couche l, k variant de 1 à faire

Pour tous les neurones m connectés sur la sortie du neurone


k de la couche l, m variant de 1 à faire
46

Fin pour

Fin pour

Fin pour

Fin pour

Fin tant que


47

Exemple
48

Présentation d’un simulateur

Base d’apprentissage et de test

Bibliothèque d’algorithmes

Rétro ART ARP

Interface

Description
structurelle du
réseau
Interface

Réseau

Description
comportementale de
neurones (fonction de
transfert)

Simulateur
49

Chapitre 3. Arbre de décision.

Un arbre de décision est une structure qui permet de déduire un


résultat à partir de décisions successives. Pour parcourir un arbre de décision et
trouver une solution il faut partir de la racine. Chaque nœud est une décision
atomique. Chaque réponse possible est prise en compte et permet de se diriger
vers un des fils du nœud. De proche en proche, on descend dans l’arbre jusqu’`a
tomber sur une feuille. La feuille représente la réponse qu’apporte l’arbre au cas
que l’on vient de tester.

 Débuter à la racine de l’arbre


 Descendre dans l’arbre en passant par les nœuds de test
 La feuille atteinte à la fin permet de classer l’instance testée.

Très souvent on considère qu’un nœud pose une question sur une
variable, la valeur de cette variable permet de savoir sur quels fils descendre.
Pour les variables énumérées il est parfois possible d’avoir un fils par valeur, on
peut aussi décider que plusieurs variables différentes mènent au même sous
arbre. Pour les variables continues il n’est pas imaginable de créer un nœud qui
aurait potentiellement un nombre de fils infini, on doit discrétiser le domaine
continu (arrondis, approximation), donc décider de segmenter le domaine en
sous ensembles. Plus l’arbre est simple, et plus il semble techniquement rapide à
utiliser.

En fait, il est plus intéressant d’obtenir un arbre qui est adapté aux probabilités
des variables à tester. La plupart du temps un arbre équilibré sera un bon
résultat. Si un sous arbre ne peut mener qu’`a une solution unique, alors tout ce
50

sous-arbre peut être réduit à sa simple conclusion, cela simplifie le traitement et


ne change rien au résultat final.

L’algorithme ID3 fut propos´e par Quinlan en 1979 afin de


générer des arbres de décisions à partir de données. Imaginons que nous ayons à
notre disposition un ensemble d’enregistrements. Tous les enregistrements ont
la même structure, à savoir un certain nombre de paires attribut ou val eur. L’un
de ses attributs représente la catégorie de l’enregistrement. Le problème
consiste à construire un arbre de décision qui sur la base de réponses à des
questions posées sur des attributs non cibles peut prédire correctement la valeur
de l’attribut cible. Souvent l’attribut cible prend seulement les valeurs vrai, faux
ou échec, succès.

Les principales idées sur lesquels repose ID3 sont les suivantes :

 Dans l’arbre de décision chaque nœud correspond `a un attribut non cible


et chaque arc à une valeur possible de cet attribut. Une feuille de l’arbre
donne la valeur escomptée de l’attribut cible pour l’enregistrement testé
décrit par le chemin de la racine de l’arbre de décision jusqu’à la feuille.
(Définition d’un arbre de décision)
 Dans l’arbre de décision, à chaque nœud doit etre associé l’attribut non
cible qui apporte le plus d’information par rapport aux autres attributs
non encore utilisés dans le chemin depuis la racine. (Critère d’un bon
arbre de décision)
 L’entropie est utilisée pour mesurer la quantité d’information apportée
par un nœud. (Cette notion a été introduite par Claude Shannon lors de
ses recherches concernant la théorie de l’information qui sert de base à
énormément de méthodes du datamining.)

Algorithme ID 3 :
51

entrées : ensemble d'attributs A; échantillon E; classe c

début

initialiser à l'arbre vide;

si tous les exemples de E ont la même classe c

alors étiqueter la racine par c;

sinon si l'ensemble des attributs A est vide

alors étiqueter la racine par la classe majoritaire dans E;

sinon soit a le meilleur attribut choisi dans A;

étiqueter la racine par a;

pour toute valeur v de a

construire une branche étiquetée par v;

soit Eav l'ensemble des exemples tels que e(a) = v;

ajouter l'arbre construit par ID3(A-{a}, Eav, c);

finpour

finsinon

finsinon

retourner racine;

fin
52

3.1 Exemple introductif

Client Montant Age Résidence Etudes Consultation


internet

1 moyenne moyen village oui oui

2 élevé moyen bourg non non

3 faible âgé bourg non non

4 faible moyen bourg oui oui

5 moyen jeune ville oui oui

6 élevé âgé ville non non

7 moyen âgé ville non non

8 faible moyen village non non

Ici, on voit bien que la procédure de classification à trouver qui à partir de la


description d'un client, nous indique si le client effectue la consultation de ses
comptes par Internet, c'est-à-dire la classe associée au client.

Choix du meilleur attribut : Pour cet algorithme deux mesures existent pour
choisir le meilleur attribut : la mesure d'entropie et la mesure de fréquence:

 L'entropie ou le gain : Le gain (avec pour fonction i l'entropie) est


également appelé l'entropie de Shannon et peut se réécrire de la manière
suivante :
Hs(C|A) = - Σi P(Xi) . Σk P(Ck|Xi).log(P(Ck|Xi))

 Mesure de fréquence : (mieux en pratique)


53

Freq(a,E) = (1 / |Va|) . ΣPmax(Ea,v)

Pour l’exemple de la consultation de comptes sur Internet :

Pour déterminer le premier attribut test (racine de l'arbre), on recherche


l'attribut d'entropie la plus faible. On doit donc calculer H(C|Solde), H(C|Age),
H(C|Lieu), H(C|Etudes), où la classe C correspond aux personnes qui consultent
leurs comptes sur Internet.

H(C|Solde) = -P (faible).(P (C|faible) log(P (C|faible)) + P (/C |faible) log(P (/C|faible)))

-P (moyen).(P (C|moyen) log(P (C|moyen)) + P (/C|moyen) log(P (/C|moyen)))


-P (eleve).(P (C|eleve) log(P (C|eleve)) + P (/C|eleve) log(P
(/C|eleve)))H(C|Solde)
H(C|Solde) = -3/8(1/3.log(1/3) + 2/3.log(2/3)
-3/8(2/3.log(2/3) + 1/3.log(1/3)
-2/8(0.log(0) + 1.log(1)
H(C|Solde) = 0.20725
H(C|Age) = -P (jeune).(P (C|jeune) log(P (C|jeune)) + P (/C |jeune) log(P (/C|jeune)))
-P (moyen).(P (C|moyen) log(P (C|moyen)) + P (/C |moyen) log(P (/C|moyen)))
-P (age).(P (C|age) log(P (C|age)) + P (/C|age) log(P (/C|age)))
H(C|Age) = 0.15051
H(C|Lieu) = -P (bourg).(P (C|bourg) log(P (C|bourg)) + P (/C |bourg) log(P (/C|bourg)))-
P (village).(P (C|village) log(P (C|village)) + P (/C |village) log(P (/C|village)))-
P (ville).(P (C|ville) log(P (C|ville)) + P (/C|ville) log(P (/C|ville)))
H(C|Lieu) = 0.2825
H(C|Etudes) = -P (oui).(P (C|oui) log(P (C|oui)) + P (/C |oui) log(P (/C|oui)))
-P (non).(P (C|non) log(P (C|non)) + P (/C|non) log(P (/C|non)))
H(C|Etudes)=0.18275

Le premier attribut est donc l'âge (attribut dont l'entropie est minimale).
On obtient l’arbre suivant :
54

Age

jeune Agé
moyen

Non consultation
Consultation ?

Pour la branche correspondant à un âge moyen, on ne peut pas conclure, on


doit donc recalculer l'entropie sur la partition correspondante.

H(C|Solde) = -P (faible).(P (C|faible) log(P (C|faible)) + P (/C |faible) log(P (/C|faible)))


-P (moyen).(P (C|moyen) log(P (C|moyen)) + P (/C|moyen) log(P (/C|moyen)))
-P (eleve).(P (C|eleve) log(P (C|eleve)) + P (/C|eleve) log(P (/C|eleve)))
H(C|Solde) = -2/4(1/2.log(1/2) + 1/2.log(1/2)
-1/4(1.log(1) + 0.log(0)
-1/4(0.log(0) + 1.log(1)
H(C|Solde) = 0.15051
H(C|Lieu) = -P (bourg).(P (C|bourg) log(P (C|bourg)) + P (C |bourg) log(P (C|bourg)))
-P (village).(P (C|village) log(P (C|village)) + P (C |village) log(P (C|village)))
-P (ville).(P (C|ville) log(P (C|ville)) + P (C|ville) log(P (C|ville)))
H(C|Lieu) = 0.30103
H(C|Etudes) = -P (oui).(P (C|oui) log(P (C|oui)) + P (C |oui) log(P (C|oui)))
-P (non).(P (C|non) log(P (C|non)) + P (C|non) log(P (C|non)))
H(C|Etudes) = 0
55

L'attribut qui a l'entropie la plus faible est « Etudes ». L'arbre devient alors :

Age

jeune âgé

moyen
Consultation Non consultation

Etudes

Non consultation
Consultation
Oui Non

L'ensemble des exemples est classé et on constate que sur cet ensemble
d'apprentissage, seuls deux attributs sur les quatre sont discriminants.
56

Chapitre 4 Machines à Vecteurs de Support


4.1. Présentation

Les Machines à vecteurs de support ou Support Vector Machine


constituent une méthode récente de classification par apprentissage supervisé,
qui fut introduit par Vladimir Vapnik en 1995. La montée en puissance de cet te
méthode est justifiée par les solides bases théoriques qui la soutiennent.
Cette méthode repose, en effet, sur l’existence d’un séparateur linéaire
dans un espace approprié et l’utilisation d’une fonction noyau (Kernel) qui
permettent une séparation optimale des données.
4.2. Principe de Fonctionnement

Le but des SVM, dans le cas d’un problème de classification binaire, est de
construire une fonction de décision (séparateur) qui permet de mieux séparer les
données et maximiser la distance entre deux classes

H2 H
Y

H1

Machines à Vecteurs de support


57

Séparateur H est appelé hyperplan optimal ;


La distance séparant les hyperplans H1 et H2 représente la marge qu’il faut
maximiser ;
Les points (vecteurs) les plus proches de l’hyperplan, qui seuls sont utilisés pour
sa détermination, sont appelés vecteurs de support ;
Plusieurs hyperplans peuvent séparés un ensemble de données, mais les
machines à vecteurs de support cherchent un hyperplan qui soit optimal, c’est-à-
dire celui qui maximise la marge ; d’où l’appellation de Séparateur à Vaste
Marge.
On distingue, du point de vue de la séparation des données, les SVM linéaires
(séparateur linéaire) et les SVM non linéaires (Séparateur non linéaire).
4.2. Les Machines à Vecteurs de Support Linéaires

On parle des SVM linéaires, lorsqu’il existe une fonction linéaire séparant
l’ensemble des données. Cependant ils sont abordés de deux manières, selon
que les données sont complètement séparables par la fonction ou pas.
Cas Séparables (SVM à Marge dure)
Supposons qu’on ait un ensemble E de M exemples d’apprentissage, défini
comme suit :
E = {( )} , où :
est un vecteur réel, c’est-à-dire Є Rn ;
Є ,-1, +1-, représente la classe d’une donnée.
Le Séparateur linéaire (fonction de décision) définie par les SVM, est donnée
par :
(⃗⃗⃗ )= . +b, où :
w est un vecteur perpendiculaire au séparateur linéaire, appelé vecteur de
poids ;
b est appelé biais ;
« . » représente le produit scalaire des vecteurs ⃗⃗⃗ et ⃗⃗⃗⃗ .
N.B :
Ce séparateur linéaire ne fournit pas des valeurs valant exactement −1 ou 1, mais
on considère que lorsque le résultat de f( ) est positif, le vecteur ⃗⃗⃗ appartient à
la classe d'étiquette 1, et que quand ce résultat est négatif, le vecteur
⃗⃗⃗ appartient à la classe d'étiquette −1.
D’où (⃗⃗⃗ )=sgn( . +b)
Séparabilité Linéaire
58

Reprenons notre ensemble E, d’exemples d’apprentissage, et décomposons-le en


deux sous-ensembles selon la valeur de Y.
On définit donc : ( )
= { : ( , ) Є E et =1} et = { : ( , ) Є E et =-1}
On dit que E est linéairement séparable s'il existe un w et b tel que :
( )> 0 Є et ( )< 0 Є .
Ou simplement , ( )> 0
Détermination du Séparateur à Marge Maximale
Supposons que l’ensemble E des exemples soit linéairement séparable, comme
décrit dans la figure ci-dessous. La préoccupation consiste à déterminer un
hyperplan tel que la marge entre les deux classes soit maximale.

Y H2
H
H1

Vecteurs de Support
Cas séparable des SVM linéaires support

Considérons l’hyperplan H . =0 et deux hyperplans parallèles à H, H1 et


H2. Avec H1 : . et H2 : . .
Si on suppose qu’il n’y a pas de données entre H1 et H2, la marge maximale est
belle et bien la distance entre H1 et H2.
Cependant, on peut rappeler que dans un plan (R2), la distance d’un point
(x0,y0) par rapport à une droite =0, est donnée par la formule
suivante :
|
d

De manière similaire, on peut déduire la distance d’un vecteur ( ⃗⃗⃗⃗ ) à


l’hyperplan (w.x+b=0):
59

‖ ‖
, Or pour les points situés sur les hyperplans H1 et H2, c’est-à-dire
vecteurs de support, = 1 ; ceci implique que :

‖ ‖

La distance à maximiser, c’est-à-dire entre H1 et H2, vaut : ‖ ‖

La maximisation de cette distance revient donc à minimiser ‖ ‖, ce qui est à


peu près égal à minimiser ‖ ‖2 ; à condition qu’il n’y ait pas de données
(vecteurs) entre H1 et H2, c’est-à-dire : ( )
()
{
( )
Les Conditions (i) et (ii) peuvent être combinées en une seule, soit :
( . ) (iii)
Le séparateur à marge maximale ou hyperplan optimal peut être obtenu en
résolvant le problème d’optimisation sous contrainte suivant :
‖ ‖
{ (1)
( )
N.B : L’expression (1) est appelée primal du problème.
Résolution du Problème d’optimisation
La fonction objective étant convexe, le problème d’optimisation peut être résolu
par la méthode du Multiplicateur de Lagrange :
ℒP(w,b, )= ‖ ‖2 - ∑ ( )+∑ (2)

Le gradient de ℒP devant être nul par rapport w et b, on écrit :

{ (3)

Ce qui permet d’obtenir, après calcul des dérivées partielles :



{ (4)

En remplaçant ces valeurs dans le Lagrangien du primal, on obtient le problème
dual à maximiser suivant :
Q( )= ∑ ∑ ∑ (5)
S/C: ∑ et ,
La résolution de ce problème permet d’obtenir les multiplicateurs de Lagrange
optimaux ( ). Ceci implique que :
60

∑ (6)
La fonction de décision (hyperplan) devient :
( )= ∑ (7)
Conditions de Karush, Kuhn et Tucker (KKT)
L’existence de la solution optimale du problème primal (w*; b*) et des
multiplicateurs de Lagrange ( ) peut être caractérisée par les conditions
d’optimalité de Karush, Kuhn et Tucker :



( ) (8)

{ * ( ) +

Remarques
Les deux dernières lignes indiquent que pour toute donnée ⃗⃗⃗⃗ , soit , soit
( )
Le multiplicateur de Lagrange associé à un vecteur support est non nul ;
En fait, seuls les vecteurs supports sont réellement utiles dans la construction du
modèle de prédiction. Si on les connaissait a priori, on pourrait construire ce
modèle sans tenir compte des autres vecteurs (exemples).
Calcul du biais (b)
N’apparaissant pas dans le problème dual, le biais b est calculé à partir d’un
vecteur de support :
=
Pour plus de précision, on prend la moyenne des vecteurs de support :
= ∑ ( ) , où S est l’ensemble des vecteurs de support.
Classement d’une nouvelle donnée
On a vu plus haut que la classe d’une donnée était donnée par le signe de la
fonction de décision ( ( )).
Pour classer une donnée , on a :
( ) ( )
((∑ ) )
(∑ ( ) )
Cas Non Séparable (SVM à Marge Souple)
61

Dans le cas où les données ne sont pas linéairement séparables, on essaie


d’assouplir les contraintes par l’introduction de termes d’erreur ( ) qui contrôle
le dépassement :
( )
{ ( )

Une donnée est bien classée si ; elle est dans la marge mais bien
classée si et est mal classée dans les autres cas. Ainsi, indique à quel
point la donnée peut être du mauvais côté : si est du mauvais côté de la
séparatrice (hyperplan), plus est loin de la séparatrice, plus est grand.
Donc, ∑ est une borne supérieure du nombre d'erreurs de classification.
Le problème consiste donc à chercher un hyperplan qui maximise la marge et qui
minimise les erreurs permises :
‖ ‖ ∑
(9)
( )
{
Où est une variable de pénalisation des erreurs et faisant un compromis entre
la dimension de la marge et les données mal classées.
En introduisant les Multiplicateurs de Lagrange ( ), on a :
ℒP(w,b, , )= ‖ ‖2+ ∑ - ∑ ( ( ) ) - ∑
(10)
= + ∑ - ∑ ∑ ∑ ∑ -

On obtient, après des dérivations partielles :

∑ (11)


Ce qui donne : {∑ (12)

Le problème dual devient :


62

∑ ∑ ∑
(13)

{
Le reste de la résolution se fait comme pour le cas séparable.
Les Conditions de KKT
Les conditions d’optimalité de Karush, Kuhn et Tucker qui permettent de
caractériser la solution du problème primal (w*; b*, ) et les multiplicateurs de
Lagrange ( ), s’ecrivent :


( )
* ( ) + (14)

Remarques
La seule différence entre les problèmes duales dans les cas séparables et non
séparables est que les valeurs des sont majorées par ; 19 /
Les conditions KKT impliquent que et = 0 si 0. Par
conséquent, les données mal classées ou placées dans la marge ont un =C;

Dans le cas des Machines à vecteurs de support à marge souple, une donnée
peut être :
Un vecteur de support ( );
Bien classée, mais pas un vecteur de support ( );
A l’intérieur de la marge, mais quand même bien classée ( );
Mal classée ( )

Y H2
H
H1

𝛼𝑖 𝜉𝑖

𝛼𝑖 𝐶 𝜉𝑖
𝛼𝑖 𝐶 𝜉𝑖
X
63

4.3. Les Machines à Vecteurs de Support Non Linéaires


Supposons que les données sont non linéairement séparables. La détermination
de la fonction de décision passe d’abord par une transformation de l’espace de
données dans un autre espace caractéristique ( ) ou de représentation,
éventuellement de grande dimension, où les données deviennent linéairement
séparables.
Cette démarche s’appuie sur le théorème de Cover *1965+ qui indique qu'un
ensemble d'exemples transformé de manière non linéaire dans un espace de
plus grande dimension a plus de chance d'être linéairement séparable que dans
son espace d'origine.

Détermination du Séparateur à vaste marge


Considérons l’application
( )

Transformation de l’espace de données

L’ensemble des données d’apprentissage devient :


64

E = {( ( ) )} , où : ( ) et Є ,-1, +1}.
Par conséquent, le problème d’optimisation peut s’écrire de la manière
suivante :
‖ ‖
{ (15)
( ( ) )
Après résolution, on obtient :

∑ ( )
{ (16)

Avec
Le dual du problème donne :
∑ ∑ ∑ ⟨ ( ) ( )⟩
(17)

{
Pour certains espaces caractéristiques et applications associées, les produits
scalaires sont facilement calculables grâce à des fonctions spécifiques, appelées
fonctions noyaux (kernel functions) telles que :
( ) ⟨ ( ) ( )⟩ (18)
L'intérêt de ces fonctions noyaux est de rendre possible le calcul des produits
scalaires dans sans devoir explicitement transformer les données par la
fonction , donc, sans nécessairement connaître cette fonction .
En intégrant l’équation (15) dans (16), on obtient le problème dual suivant :
∑ ∑ ∑ ( )
(19)

{
Classement d’une Nouvelle Donnée
De ce qui précède, on peut donc déduire la fonction de décision, pour le
classement d’une nouvelle donnée :
( ) ( ( ) )
((∑ ( )) ( ) )
(∑ ⟨ ( ) ( )⟩ )
(∑ ( ) )
Note
65

Il sied de signaler que seul le cas des données séparables linéairement dans
l’espace caractéristique a été abordé ci-haut. Cependant les données peuvent
être aussi non séparable linéairement dans cet espace. Dans ce cas, on applique
la démarche utilisée dans les SVM linéaires, c’est-à-dire l’introduction des
termes d’erreurs.
Ainsi, d’une manière générale, le problème d’optimisation des Machines à
vecteurs de Support peut s’écrire de la manière suivante :
‖ ‖ ∑
(20)
( ( ) )
{
Le dual du problème d’optimisation général à résoudre sera donc:
∑ ∑ ∑ ( )
(21)

{

Fonction Noyau
Considérons un ensemble X des observations * + dans les données
d’apprentissage. La matrice de Gram du noyau ( ) associée à cet ensemble,
est une matrice carrée d’ordre M et de terme général : ( ) ( ).
Théorème 1 : Une fonction est un noyau valide si elle symétrique
et définie positive.
En d’autres termes, une fonction est noyau si et seulement si :
( ) ( );
∑ ∑ ( )
Cette dernière condition se traduit par le fait que toutes les valeurs propres de la
matrice de Gram soit positives non nulles.

Exemples de Quelques Fonctions Noyaux


Linéaires : ( )
Polynomial : ( ) ( ) ou ( )
‖ ‖
RBF(Radial Basic Function) : ( )

Vous aimerez peut-être aussi