Vous êtes sur la page 1sur 28

Programmation Logique et IA

P. Habermehl et D. Kesner

Rseaux de neurones

Programmation Logique et IA

P. Habermehl et D. Kesner

Introduction
 Intelligence Articielle
 Cognitivisme (sciences cognitives)
 Connexionisme (rseaux de neurones)
Le cerveau : rseau trs complexe ayant un grand nombre de
cellules de base interconnectes. Il y a 100 milliards de neurones
et 1015 connexions.
Les rseaux de neurones : modle trs simple du cerveau o les
units de calcul lmentaire sont interconnectes. En particulier on
ne prends pas en compte de nombreuses caractristiques
biologiques.
2

Programmation Logique et IA

P. Habermehl et D. Kesner

Le connexionisme : tudie comment rendre compte des processus


cognitifs partir d'un ensemble d'units, dotes chacune d'une
faible puissance de calcul et interconnectes en rseau ?
C'est une mthode d'apprentissage non symbolique car on produit
un rsultat dicile interprter (contrairement aux arbres de
dcision).

Programmation Logique et IA

P. Habermehl et D. Kesner

Dirents modles de rseaux de neurones


 Le perceptron
 Les rseaux multi-couches

Programmation Logique et IA

P. Habermehl et D. Kesner

Le perceptron
 Un perceptron linaire seuil prend en entre n valeurs
x1 , . . . , xn et calcule une sortie o.
 Il est dni par n + 1 constantes :
 Les coecients (poids) synaptiques w1 , . . . , wn
 Le seuil (ou biais)
 La sortie o est calcule par :

1 si Pn w x >
i=1 i i
o=
0 sinon
 Les entres peuvent tre valeurs dans {0, 1} ou relles, les
coecients peuvent tre entiers ou rels.
5

Programmation Logique et IA

P. Habermehl et D. Kesner

Simplication du modle
On constate :
n
X

wi xi > ssi

i=1

n
X

wi xi > 0

i=1

On pose une entre supplmentaire x0 = 1 et on lui associe un


coecient wo = . On a donc

1 si Pn w x > 0
i=0 i i
o=
0 sinon

Programmation Logique et IA

P. Habermehl et D. Kesner

Simplication du modle
1. On calcul d'abord de x =
post-synaptique.

Pn

i=0 wi xi

qu'on appelle le potentiel

2. On applique ensuite au rsultat x la fonction d'activation :

1 si x > 0
f (x) =
0 sinon

Programmation Logique et IA

P. Habermehl et D. Kesner

Exemple : un perceptron qui calcule le OU logique


 Entres : x0 = 1, x1 et x2 arbitraires.
 Coecients : w0 = 0.5, w1 = 1 et w2 = 2.
 Sortie : o = x1 x2 .

Programmation Logique et IA

P. Habermehl et D. Kesner

Interprtation gomtrique
 Soit S un ensemble d'exemples dans IRn {0, 1}.
 Soit S0 = {s IRn | (s, 0) S}
 Soit S1 = {s IRn | (s, 1) S}.
 S est dit linairement sparable s'il existe un hyperplan H de
IRn tel que les ensemble S0 et S1 soient situs de part et d'autre
de cet hyperplan.

Programmation Logique et IA

P. Habermehl et D. Kesner

Rsultats sur les perceptrons


Thorme : Un perceptron linaire seuil n entres divise
l'espace des entres IRn en deux sous-espaces dlimits par un
hyperplan.

Thorme : Tout ensemble linairement sparable peut tre


discrimin par un perceptron.

Thorme : Le XOR ne peut pas tre calcul par un perceptron


linaire seuil.

10

Programmation Logique et IA

P. Habermehl et D. Kesner

Algorithme d'apprentissage par correction d'erreur


 Problme : Trouver les poids d'un perceptron qui classie
correctement un ensemble S d'apprentissage de {0, 1}n {0, 1}
ou IRn {0, 1}.
 Notations :
 ~x une description (dans IRn ou {0, 1}n )
 S est un ensemble de couples (~x, c)
 (~xs , cs ) : le s-ime lment de S
 os la sortie du perceptron pour l'entre ~xs
 Rappel : Il existe une entre x0 de valeur 1.

11

Programmation Logique et IA

P. Habermehl et D. Kesner

Algorithme par correction d'erreurs


Entre : un chantillon S
Pour i = 0 . . . n initialiser alatoirement les poids wi
Rpter
Prendre un exemple (~x, c) dans S
Calculer la sortie o pour l'entre ~x
Pour i = 0 . . . n
wi wi + (c o) xi

Fin Pour
Fin Rpter
Sortie : Un perceptron P dni par (w0 , w1 , . . . , wn )
12

Programmation Logique et IA

P. Habermehl et D. Kesner

Exemple
On veut apprendre si un chire est pair ou impair. Les chires est
represent sur une retine de 7 leds.

1
--6 |

| 2
---

5 |

| 3
--4
13

Programmation Logique et IA

P. Habermehl et D. Kesner

On considre un ensemble complet

(1111110, 0), (0110000, 1), (1101101, 0),

S=
(1111001, 1), (0110011, 0), (1011011, 1),

(0011111, 0), (1110000, 1), (1111111, 0), (1111011, 1)

14

Programmation Logique et IA

P. Habermehl et D. Kesner

Trace de l'algorithme
Etape

(1, 1, 1, 1, 1, 1, 1, 1)

(1, 1, 1, 1, 1, 1, 1, 0)

(0, 0, 0, 0, 0, 0, 0, 1)

(1, 0, 1, 1, 0, 0, 0, 0)

(1, 0, 1, 1, 0, 0, 0, 1)

(1, 1, 1, 0, 1, 1, 0, 1)

(0, 1, 0, 1, 1, 1, 0, 0)

(1, 1, 1, 1, 1, 0, 0, 1)

(1, 0, 1, 2, 0, 1, 0, 1)

(1, 0, 1, 1, 0, 0, 1, 1)

(0, 0, 0, 1, 0, 1, 1, 0)

(1, 1, 0, 1, 1, 0, 1, 1)

(1, 1, 0, 2, 1, 1, 0, 1)

(1, 0, 0, 1, 1, 1, 1, 1)

(0, 1, 0, 1, 0, 2, 1, 0)

(1, 1, 1, 1, 0, 0, 0, 0)

(0, 1, 0, 1, 0, 2, 1, 0)

(1, 1, 1, 1, 1, 1, 1, 1)

10

(0, 1, 0, 1, 0, 2, 1, 0)

(1, 1, 1, 1, 1, 0, 1, 1)

15

Programmation Logique et IA

P. Habermehl et D. Kesner

Vrication
Coecients = (0, 1, 0, 1, 0, 2, 1, 0)
Entre

Sortie

(1, 1, 1, 1, 1, 1, 1, 0)

(1, 0, 1, 1, 0, 0, 0, 0)

(1, 1, 1, 0, 1, 1, 0, 1)

(1, 1, 1, 1, 1, 0, 0, 1)

(1, 0, 1, 1, 0, 0, 1, 1)

(1, 1, 0, 1, 1, 0, 1, 1)

(1, 0, 0, 1, 1, 1, 1, 1)

(1, 1, 1, 1, 0, 0, 0, 0)

(1, 1, 1, 1, 1, 1, 1, 1)

(1, 1, 1, 1, 1, 0, 1, 1)

16

Programmation Logique et IA

P. Habermehl et D. Kesner

Remarques sur l'algorithme par correction d'erreurs


 Dans quel ordre prsente-on les exemples ?
alatoirement ? en suivant un ordre prdni ? on les prsente
tous ?
 Critres d'arrt de la boucle ?
aprs un nb d'tapes ? aprs traitement de tous les exemples ?
lorsque les poids ne sont plus modis ?

17

Programmation Logique et IA

P. Habermehl et D. Kesner

Rsultat sur l'algorithme par correction d'erreurs


Thorme : Si S est linairement sparable et si les exemples
sont prsents quitablement, la procdure d'apprentissage par
correction d'erreur converge vers un perceptron linaire seuil qui
calcule S .

18

Programmation Logique et IA

P. Habermehl et D. Kesner

Problmes et Questions
 Qu'est-ce que se passe si S n'est pas linairement sparable ?
L'algorithme ne converge pas.
 Est-ce qu'on peut borner la valeur des poids et le seuil ? Oui,
mais par un nombre trs grand, donc pas d'application pratique.
 Combien de pas faut-il pour converger ? Exponentiel.
 Est-ce que la solution trouve est robuste ? Non.
 Est-ce que l'algorithme est tolrant aux bruits ? Non.

19

Programmation Logique et IA

P. Habermehl et D. Kesner

Algorithme par descente du gradient


 Ide : plutt que de classier correctement tous les exemples, on
dnit une fonction d'erreur qu'on essaie de minimiser.
 Un perceptron linaire prend en entre un vecteur ~x de n valeurs
(on limine ) et calcule la sortie o l'aide d'un vecteur w
~ de
constantes comme suit :

o = ~x.w
~=

n
X
i=1

20

wi xi

Programmation Logique et IA

P. Habermehl et D. Kesner

Erreur d'un perceptron


L'erreur d'un perceptron P dni par les coecients w
~ sur un
chantillon S d'exemples est donne par :

E(w)
~ = 1/2

(c o)2

(~
x,c)S

o o est la sortie calcule par P sur l'entre ~x.

Remarque : E(w)
~ = 0 ssi P classie correctement tout
l'ensemble S .

But : Detrminer un w
~ qui minimise E(w)
~ . On utilise la mthode
du gradient.
21

Programmation Logique et IA

P. Habermehl et D. Kesner

Mthode du gradient
 tant donn une fonction f on construit une suite (xn )
 Cette suite devrait s'approcher du minimum.
 On part de x0 quelconque et on dnit xn+1 = xn f 0 (xn ), o
est une valeur bien choisi.
 Le choix de est empirique (si trop petit, alors nb d'itrations
lev, si trop grand, alors peut ne pas converger).
 Rien ne garantit que le miminum trouv est un minimum global.

22

Programmation Logique et IA

P. Habermehl et D. Kesner

Concepts mathmatiques pour la descente du gradient


 E(w)
~ est une fonction de n variables. La mthode du gradient
peut tre tendue n variables.
 On calcule la drive partielle de E par rapport wi :

X
(w)
~
=
(c o) (xi )
wi
(~
x,c)S

 On dnit

X
(w)
~
(c o) xi
=
wi =
wi
(~
x,c)S

23

Programmation Logique et IA

P. Habermehl et D. Kesner

L'algorithme d'apprentissage par descente de gradient


Entre : un chantillon S de IRn {0, 1} et
Pour i = 0..n initialiser alatoirement les poids wi ;
Rpter
Pour tout i wi 0 ;
Pour tout exemple (~x, c) de S :
Calculer la sortie o ;
Pour tout i wi wi + (c o) xi ;
Pour tout i wi wi + wi ;

Fin Rpter
Sortie : Un perceptron P dni par (w1 , . . . , wn )
24

Programmation Logique et IA

P. Habermehl et D. Kesner

Remarques sur l'algorithme par descente de gradient


 L'algorithme converge pour un bien choisi susamment petit
mme si l'ensemble d'entre n'est pas linairement sparable.
 Si est trop grand, on risque d'osciller autour du minimum.
 La convergente peut tre lente, beaucoup de calcul chaque
itration.

25

Programmation Logique et IA

P. Habermehl et D. Kesner

Vers une variation


 On modie les poids chaque prsentation d'exemple avec la
formule :

wi = (c o) xi

26

Programmation Logique et IA

P. Habermehl et D. Kesner

L'algorithme d'apprentissage de Widrow-Ho


Entre : un chantillon S de IRn {0, 1} ou {0, 1}n {0, 1}
Pour i = 0..n initialiser alatoirement les poids wi ;
Rpter
Prendre un exemple (~x, c) dans S
Calculer la sortie o pour l'entre ~x
Pour i = 1..n wi wi + (c o) xi

Fin Rpter
Sortie : Un perceptron P dni par (w1 , . . . , wn )

27

Programmation Logique et IA

P. Habermehl et D. Kesner

Remarques sur l'algorithme de Widrow-Ho


 En gnral on parcourt S dans un ordre prdni.
 Critre d'arrt : pour un passage complet de S toutes les
modications de poids sont un seuil prdni.
 Il n'y a pas correction d'erreur, mais modication dans presque
tous les cas.
 L'algorithme converge vers une solution optimale (si on a bien
choisi ).
 Meilleure tolrance aux bruits.

28