réseaux de neurones multicouches

42
Réseaux de neurones Multicouches Partie 1

Upload: others

Post on 23-Jun-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Réseaux de neurones Multicouches

Réseaux de neurones ���Multicouches ���

Partie 1

Page 2: Réseaux de neurones Multicouches

Caractérisé par: •  état interne s ∈ S •  voisinage s1, …. , sn

•  fonction de transfert f •  changement d’état s=f(s1, s2, ….,sn)

s1 s2

sn synapse

s=f(s1, s2, ….,sn)

Exemples

•  S={0,1} ou {-1,1} neurone binaire 1 : actif

0/-1 : inactif •  S={0,1,2, …,k} neurone discret

Si un neurone représente un pixel dans une image, i∈S représente le niveau de gris utilisé dans le codage.

•  S=[a,b] neurone continu

Neurone élémentaire

Page 3: Réseaux de neurones Multicouches

sn

s1

sk

s 1 s k

s n

f s i

Σ

entrées

Sortie S sommation

fonction de transfert

s i = f A

i ( )

Page 4: Réseaux de neurones Multicouches

A i

s i S = {0,1} ou {-1,1}

f(A) = 1 si A≥0

f(A) = 0 ou -1 si A<0

Linéaire

A i

s i

f = Id

A seuil

Quasi-linéaire

S = [-1,1] A i

1

-1

Page 5: Réseaux de neurones Multicouches

Fonctions sigmoïde

Page 6: Réseaux de neurones Multicouches

•  Connaissant la position d’un point, déterminer automatiquement sa classe.

• D’un point de vue géométrique: Déterminer les surfaces séparatrices entre les classes.

Solution:

Rechercher des surfaces séparatrices parmi une famille paramétrée donnée. Apprentissage:

Déterminer les bons paramètres pour réaliser «au mieux » la tâche de séparation.

Page 7: Réseaux de neurones Multicouches

Quelle famille de surfaces choisir?

y-ax-b>0 y-ax-b=0

y-ax-b<0

Cas simple : une séparation linéaire

y<f(x) classe C2

y=f(x) y>f(x) classe C1

Les surfaces séparatrices peuvent être complexes

2 classes linéairement séparables

2 classes non linéairement

séparables

Page 8: Réseaux de neurones Multicouches

Notations : x ∈ ℜn (input)

C1 : ensemble des formes de la classe 1

C2 : ensemble des formes de la classe 2

Hyperplan dans ℜn défini par l ’équation :

Vecteur orthogonal à H

Page 9: Réseaux de neurones Multicouches

Distance algébrique h de x à l’hyperplan

(D1) (H)

(D2)

g < 0 g = 0

g > 0

x

•  Si on pose :

g(x) = 0 ⇔ x ∈ (H)

•  L’hyperplan (H) sépare l’espace en 2 demi-espaces qui correspondent à :

D1 = {x / g(x) > 0} D2 = {x / g(x) < 0}

Distance algébrique

Page 10: Réseaux de neurones Multicouches

Formulation neuronale : ���Cas de 2 classes

Neurone à seuil

fonction seuil s

f

1 x n 1 x 2 x

s = 1 si

s = -1 si

S = f(A) = 1 si A ≥ 0

S = f(A) = -1 si A < 0

Page 11: Réseaux de neurones Multicouches
Page 12: Réseaux de neurones Multicouches

• Les neurones sont réparties dans des couche successives (CK) k=0, …, C+1

•  La couche C0 : « Couche d’entrée », contient n neurones imposées de l’extérieur. •  La couche CC+1: «Couche de sortie», contient p neurones. •  Les couches (Ck)1 ≤ k ≤ C sont les «Couches cachées». La couche Ck contient nk neurones (1 ≤ k ≤ C)

•  Les états des neurones de C0 sont dans ℜ. •  Les états des autres neurones sont en général dans [-a, a]. Les seules connexions autorisées sont d’un neurone de Ck à un neurone de Cl avec k<l.

Les fonctions de transferts des neurones

•  Les neurones d’entrées n’ont pas de fonctions de transferts, leurs états étant imposés par l’extérieurs. •  Les neurones cachées ont des fonctions de transferts sigmoïdes. •  Les neurones de sorties, suivant les applications , ont des fonctions de transfert : sigmoïdes, linéaires, exponentielles ou autres

Page 13: Réseaux de neurones Multicouches

Les entrées Les sorties La couche des neurones

Page 14: Réseaux de neurones Multicouches

On présente un vecteur input x = (x1, x2, …, xn) à la couche d’entrée qui sera propagé d’une couche à une autre vers la couche de sortie.

y : étant le vecteur de sortie « output » calculé. G : fonction définie par le réseau : y = G(x,W)

W représente l’ensemble des poids Synaptiques et des seuils

1

2

3

4 5

x1

x2

u1

u2 u3

u4

v1

v2

Seuil w4

Seuil w3

Seuil w5

Etat des neurones :

3 : s3 = f(u1x1 + u3x2 + w3)

4 : s4 = f(u2x1 + u4x2 + w4)

5 : s5 = f(v1s3 + v2s4 + w5)

Ainsi dans ce cas :

Y =G(X,W)=f[v1 f(u1x1 + u3x2 + w3)+v2f(u2x1 + u4x2 + w4) +w5]

Les neurones 3, 4 et 5 ont la même fonction de transfert f

Exemple de propagation avant

Page 15: Réseaux de neurones Multicouches

Entrée du réseau

Choisir l’architecture du réseau (ayant n entrées et p sorties).

On note par W l’ensemble des poids et des seuils. Calculer les états : propagation de couche en couche.

Sortie calculée x = y =

Avec y = G(x,W)

On note cette famille de fonctions par :

Le réseau définit une famille de fonctions paramétrée par W :

Page 16: Réseaux de neurones Multicouches

Apprentissage On dispose d’un ensemble d’apprentissage :

App = {(xk,dk) ; k=1, …, N}

Où xk est la représentation d’un individu et dk est la réponse qui lui est associée.

Pour une architecture fixée et un système de poids donnés W, le réseau définie une fonction G(.,W).

Pour un individu xk le réseau calcule la sortie yk :

yk = G(xk,W)

L’apprentissage consiste à trouver les poids W* de façon que pour tout xk : yk dk

Minimiser une fonction erreur J(App,W)

Page 17: Réseaux de neurones Multicouches

Erreur Quadratique

L’erreur entre dk et yk sera mesurée par la distance euclidienne :

Où et sont les iième composantes de yket dk

La fonction « erreur quadratique » est alors définie par :

Il s’agit d’une erreur globale L’apprentissage consiste à minimiser cette fonction :

La minimisation se fait par une méthode de gradient

Qui nécessite le calcule des :

Page 18: Réseaux de neurones Multicouches

Algorithme de la rétro-propagation du gradient

Détermination de

Erreur sur la kième forme

Calcul la dérivée de par rapport wij de :

Il suffit de savoir calculer :

Afin de simplifier les notations, on note par la

suite ce terme par

Page 19: Réseaux de neurones Multicouches

On pose :

(1)

j k

neurone i Αi fi

succ(i) pred(i)

Car

On a :

wij

j i wij sj zi

Page 20: Réseaux de neurones Multicouches

Pour i : neurone de la couche de sortie

•  La quantité Ai intervient directement dans J :

(2)

(1) et (2)

(3)

et

Page 21: Réseaux de neurones Multicouches

Pour i : neurone sur une couche cachée

La quantité Ai intervient dans la fonction J par le biais du calcul des états de l’ensemble des neurones successeurs de i succ(i).

(4)

Comme

On tire alors :

Page 22: Réseaux de neurones Multicouches

•  (2) permet de calculer zi pour les neurones de sortie.

•  (4) permet (par récurrence) de calculer zi pour les autres neurones (cachées).

On commence le calcule pour les neurones de sortie, puis pour les neurones de l’avant dernière couche et ainsi de suite jusqu’aux neurones de la seconde couche

Page 23: Réseaux de neurones Multicouches

Tenant compte de :

Page 24: Réseaux de neurones Multicouches

Conclusion

J étant l’erreur relative à un couple (x, d) de la base d’apprentissage. Le calcule du gradient se présente ainsi : - Présenter x aux neurones de la couche d’entrée et faire un propagation avant afin de calculer les états des neurones du réseau MLP - Initialiser les neurones de sorties par (2) et appliquer l’algorithme de la rétro-propgation du gradient afin de calculer les zi des neurones. - Pour chaque poids synaptique wij appliquer la formule :

Remarque : Le seuil ωi d’un neurone i peut être considéré comme un poids synaptique particulier. Il suffit d’ajouter un neurone fictif à la couche d’entrée ayant un état constant égale à 1 et d’interpréter ωi comme étant son poids synaptique.

Page 25: Réseaux de neurones Multicouches

Cas particulier :Classification

p classes

Classification

Détermination de frontières de décision complexes

Codage des classes

Page 26: Réseaux de neurones Multicouches

Mise au point pratique d'un réseau multicouche

Exemple 1 Problème: détecter un évènement dans un signal "3 dans 8"

Exemple Contre exemple 256 exemples

Réseau Connection complète

complexe

Représentation interne

a b

c d

Page 27: Réseaux de neurones Multicouches

• Exemple d’une architecture multicouche pour la reconnaissance de visages [Viennet 91].

Page 28: Réseaux de neurones Multicouches
Page 29: Réseaux de neurones Multicouches

• Exemple d’un réseau de neurones TDNN.

• Architecture utilisée pour l’identification vocale du locuteur [Bennani 92].

Page 30: Réseaux de neurones Multicouches
Page 31: Réseaux de neurones Multicouches
Page 32: Réseaux de neurones Multicouches
Page 33: Réseaux de neurones Multicouches
Page 34: Réseaux de neurones Multicouches

Apprentissage : Un exemple de la régression

On dispose d’une base d’apprentissage : {(xi,di) ;i==1,…,N}

Où xi appartient à R et di à R . L’apprentissage consiste à déterminer une fonction F(., w) de R dans R et qui minimise l’erreur quadratique :

Il s’agit donc d’un problème de régression simple. Si nous faisons l’hypothèse que les réponse désirée di sont générées de la manière suivante :

di = g(xi) + εi (5) Où g est une fonction de R dans R et εi est un bruit

blanc tiré suivant la loi normale N(0,σ).

Normalement, le but de l’apprentissage, dans ce cas, est de retrouver g qui est la fonction sou- jacente aux données.

Page 35: Réseaux de neurones Multicouches

Un exemple simple de la régression :

Ensemble généré suivant (*) et qui a servi

à l’apprentissage

Ensemble Test1 généré suivant (5) et qui n’a servi lors de l’apprentissage

Ensemble test2 généré suivant (5) et qui n’a servi lors de l’apprentissage

Page 36: Réseaux de neurones Multicouches

Remarques concernant l’exemple •  Les réseaux A et B sont formés d’un couche cachée ayant

respectivement 2 et 5 neurones. •  Ainsi, lors de l’apprentissage, le réseau B arrive à générer

une courbe plus complexe et qui passe par les points de l’ensemble d’apprentissage (donc il annule l’erreur quadratique).

•  Par contre, le réseau A arrive à mieux reproduire la fonction (g) qui est sous-jacente aux données générées.

•  Quand on visualise le comportement ces deux réseaux sur les deux bases TEST1 et TEST2 on remarque que : –  Le réseau A un comportement plus robuste sur les deux

bases Test1 et Test2. –  Le réseau B un comportement beaucoup moins robuste

puisqu’il est très mauvais relativement à test1 et beaucoup mieux relativement à Test2

Remarque : L’apprentissage ne doit pas consister à trouver l’architecture qui minimise jusqu’au bout la fonction erreur définie sur l’ensemble d’apprentissage

Page 37: Réseaux de neurones Multicouches

Apprentissage "par coeur" : le modèle ne "connaît" que les points utilisés pour l'apprentissage et fait n'importe quoi ailleurs.

Modèle théorique sous-jacent

Modèle trouvé après apprentissage

Page 38: Réseaux de neurones Multicouches

Mais la fonction F(x,W*) ne minimise pas nécessairement l’erreur en généralisation :

•  Un système est décrit comme un vecteur aléatoire x dont les valeurs sont régies par la densité de probabilité p(x).

•  A chaque vecteur x est associée un vecteur y qui se réalise suivant la loi conditionnelle p(y/x).

•  L’apprentissage consiste à ajuster les paramètres W, pour une famille de fonctions {F(x,W}w , en minimisant l’erreur d’apprentissage calculée sur un ensemble de N exemples:

App = {(x1, d1), (x2, d2), …, (xN , dN)}

En effet, l’objectif de l’apprentissage est de proposer un modèle capable d’avoir de « bonnes performances » sur l’ensemble des exemples possibles.

Page 39: Réseaux de neurones Multicouches

Estimation, de l’erreur en généralisation

•  L’erreur en généralisation Egene est théorique, on ne peut pas la calculer. Il faut donc lui définir un estimateur. •  Si l’on dispose de suffisamment de données, on pourra alors retenir une partie pour l’ensemble d’apprentissage (App) et utiliser une partie de ce qui reste afin de constituer une sorte base appelée base de teste : Test = {(x1, y1), (x2, y2), …, (xp , yp)} •  On définit alors l’erreur moyenne quadratique sur cet ensemble :

•  Etest dépend du choix aléatoire de l’ensemble de teste, elle représente donc une variable aléatoire.

On démontre que la moyenne de Etest relativement à tous les ensembles d’apprentissages possibles et de taille p est égale à Egene.

Etest est un estimateur non biaisé de Egene

Page 40: Réseaux de neurones Multicouches

Quelques remarques •  Egene représente la valeur moyenne de Etest. •  La précision avec laquelle Etest approche Egene dépend

de la variance de Etest. Plus la variance est petite plus on a la garantie que l’estimation est meilleure.

•  Il faut donc : –  Choisir les exemples de l’ensemble Test en

respectant au mieux la distribution des données p(x,y).

–  Prendre le nombre p suffisamment élevé.

p=30 p=50 p=200 p=250 p=1000

Erreur en test

Erreur en généralisation

La variance de Etest diminue lorsque p augmente.

Page 41: Réseaux de neurones Multicouches

• Comparaison de Japp(W, App) et Jval(W, Test) pour 2 architectures différentes et deux ensembles de tests différents

•  Le réseau B apprend par cœur, il a de mauvaises performances sur la base de validation

•  Le réseau A montre qu'il y a une relation presque linéaire entre les données et réalise de meilleurs performances sur la base de validation.

Page 42: Réseaux de neurones Multicouches