Download - Réseaux de neurones Multicouches
Réseaux de neurones ���Multicouches ���
Partie 1
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
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 ( )
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
Fonctions sigmoïde
• 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.
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
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
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
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
• 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
Les entrées Les sorties La couche des neurones
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
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 :
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)
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 :
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
On pose :
(1)
j k
neurone i Αi fi
succ(i) pred(i)
Car
On a :
wij
j i wij sj zi
Pour i : neurone de la couche de sortie
• La quantité Ai intervient directement dans J :
(2)
(1) et (2)
(3)
et
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 :
• (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
Tenant compte de :
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.
Cas particulier :Classification
p classes
Classification
Détermination de frontières de décision complexes
Codage des classes
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
• Exemple d’une architecture multicouche pour la reconnaissance de visages [Viennet 91].
• Exemple d’un réseau de neurones TDNN.
• Architecture utilisée pour l’identification vocale du locuteur [Bennani 92].
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.
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
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
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
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.
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
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.
• 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.