Réseau de neurones Fonctions d`activation g Apprentissage

Transcription

Réseau de neurones Fonctions d`activation g Apprentissage
Réseau de neurones :
Réseau de neurones
„
„
Fonctions d’activation g
Plusieurs neurones interconnectés ensemble
Chaque neurone a la forme suivante
„
Fonctions continues entre 0 et 1
(a)
(b)
Fonction d’activation à seuil (step function)
Fonction sigmoïde
26
27
Réseau de neurones :
Réseau de neurones :
Apprentissage
Perceptron
„
L’ajustement des poids
…
„
Modifier les paramètres de la
fonction représentée par le
réseau.
a1
a3
a5
Par exemple, la sortie du
réseau a5 dépend de:
…
…
La valeur des entrées a1 et a2.
Des paramètres de la fonction
qui sont les poids W.
a2
a4
a5 = g (W3,5 a3 + W4,5 a4 )
Ij
= g (W3,5 .g (W1,3 a1 + W2,3 a2 ) + W4,5 .g (W1, 4 a1 + W2, 4 a2 ))
Neurones
d'entré
d'entrée
Wji
Oi
Neurones
de sortie
Réseau de perceptrons
28
Ij
Neurones
d'entré
d'entrée
Wj
O
Neurone
de sortie
Un seul perceptron
29
1
Réseau de neurones - perceptron :
Réseau de neurones - perceptron:
Fonction linéaire
Représentation de fonctions
X0 = -1
„
w0
X1
X2
Les perceptrons peuvent représenter toutes les
fonctions linéairement séparables.
w1
..
.
w2
X1
ai
Somme
-
wn
-
Xn
X1
+
+
+
-
+
-
-
+
X2
Exemple de
fonction liné
linéairement
séparable
X2
Une fonction non
liné
linéairement sé
séparable
(OU Exclusif)
30
31
Réseau de neurones – perceptron :
Réseau de neurones - perceptron :
Exemple de fonction booléenne
Règle d'apprentissage du perceptron
„
La fonction ET
… Les
„
entrées prennent les valeurs 1 (vrai) ou 0 (faux)
„
X0 = -1
„
ai
0.8
X1
X2
0.5
Commencer avec des poids de valeurs aléatoires.
Traiter tous les exemples d'entraînement jusqu'à ce
que le perceptron les classifie tous correctement.
Pour chaque exemple, les poids sont révisés à l'aide
de la règle suivante:
wi ← wi + α × Err × g ' (in )× xi
Somme
0.5
où
Err = y − g (in )
Pour une fonction sigmoïde :
Pour un OU, quelle valeur donner à w0 ?
32
y : sortie dé
désiré
sirée
g : sortie obtenue
α : constante d'apprentissage,
généralement petite (ex. 0.1)
g ' = g (1 − g )
33
2
Réseau de neurones - perceptron :
Réseau de neurones - perceptron :
Règle d'apprentissage du perceptron
Algorithme d’apprentissage
∆wi ← α .( y − g (in )).g ' (in ).xi
„
Pourquoi une telle règle converge-t-elle?
Sortie
du perceptron
Erreur
y – g(in)
Input
xi
Bonne valeur
0
---
Inchangé
Trop faible
+
+
-
Augmente
Diminue
Trop élevée
-
+
Diminue
Augmente
Poids
Wi
34
35
Réseau de neurones - perceptron :
Réseau de neurones :
Exemple d’apprentissage
Réseau multicouches
ai
aj
ak
Wjk
Wij
Neurone(s)
de sortie
Neurones
caché
cachés
Neurones
d'entré
d'entrée
36
37
3
Réseau de neurones multicouches :
Réseau de neurones multicouches :
Expressivité
Algorithme de rétropropagation
„
Expressivité
„
… La
couche cachée élargie l’espace
d’hypothèses que le réseau peut représenter
„
„
Utilise l'algorithme de descente du gradient.
Tente de réduire la différence entre les sorties du
réseau et les sorties désirées.
L'erreur E du réseau est:
E (w ) =
1
2
∑ ∑ ( yi − gi (in ))
2 d∈D i∈sorties
yi : sortie dé
désiré
sirée
ai ou gi(in) : sortie obtenue
D : ensemble des exemples
d'entraî
d'entraînement
sorties : ensemble des sorties
du ré
réseau
38
39
Réseau de neurones multicouches :
Réseau de neurones multicouches :
Algorithme de rétropropagation
Algorithme de rétropropagation
- Initialiser les poids à de petites valeurs aléatoires
-
Habituellement entre -0.05 et 0.05
- Tant que la condition d'arrêt n'est pas atteinte
- Pour chaque exemple d'entraînement
„
Calculer les sorties du réseau.
„
Pour toutes les unités de sortie i, calculer l'erreur:
∆ i ← g ' (ini )× ( yi − ai )
„
Pour toutes les unités cachées j, calculer l'erreur:
„
Mettre à jour tous les poids Wji
∆ j ← g ' (in j )∑ W ji ∆ i
i
W ji ← W ji + α × a j × ∆ i
40
41
4
Réseau de neurones multicouches :
Réseau de neurones multicouches :
Exemple
Exemple – Calcul de la sortie
Entré
Entrées
-1
x0
2
x1
5
x2
Couche caché
cachée
W04 = -0.5
-1
W14 = -0.2
x3
x4
W24 = 0.1
Entré
Entrées
Sortie
W35 = -0.4
x5
W45 = 0.3
2
-1
x0
2
x1
5
x2
α = 0.05
W04 = -0.5
Couche caché
cachée
-1
W14 = -0.2
x3
x4
in4 = a0 w04 + a1 w24 + a2 w24
2
in5 = a3 w35 + a4 w45
= (− 1× −0.4 ) + (0.6457 × 0.3)
= 0.5937
= 0.6
Fonction sigmoïde g aux noeuds x4 et x5
x5
W45 = 0.3
W24 = 0.1
= (− 1× −0.5) + (2 × −0.2 ) + (5 × 0.1)
Taux d’apprentissage α = 0.05
Sortie
W35 = -0.4
1
= 0.6457
a4 = g (in4 ) =
1 − e −0.6
a5 = g (in5 ) =
1
= 0.6442
1 − e −0.5937
42
Réseau de neurones multicouches :
Réseau de neurones multicouches :
Exemple – Erreur ∆ de sortie
Entré
Entrées
-1
2
5
x0
x1
x2
α = 0.05
W04 = -0.5
W14 = -0.2
Couche caché
cachée
-1
x3
x4
W24 = 0.1
Exemple – ∆ couche cachée
Entré
Entrées
Sortie
W35 = -0.4
a4 = 0.6457
W45 = 0.3
43
-1
a5 = 0.6442
x5
2
2
∆ 5 = g ' (in5 )× ( y5 − a5 )
5
= a5 × (1 − a5 ) × ( y5 − a5 )
x0
x1
x2
α = 0.05
W04 = -0.5
W14 = -0.2
Couche caché
cachée
-1
x3
W35 = -0.4
a4 = 0.6457
x4
W45 = 0.3
W24 = 0.1
Sortie
a5 = 0.6442
∆ 5 = 0.3108
x5
2
∆ 4 = g ' (in4 )∑ W4i ∆ i
i
= 0.6442 × (1 − 0.6442 )× (2 − 0.6442)
= 0.3108
44
= a4 × (1 − a4 )× W45 ∆ 5
= 0.6457 × (1 − 0.6457 )× (0.3 × 0.3108)
= 0.0213
45
5
Réseau de neurones multicouches :
Réseau de neurones multicouches :
Exemple – ajustement de poids
Exemple – ajustement de poids
Entré
Entrées
-1
2
5
x0
x1
x2
α = 0.05
W04 = -0.5
Couche caché
cachée
-1
x3
a4 = 0.6457
W35 = -0.4
x4
W24 = 0.1
a5 = 0.6442
-1
∆ 5 = 0.3108
∆ 4 = 0.0213
W14 = -0.2
Entré
Entrées
Sortie
W45 = 0.3
x5
2
2
w45 = w45 + α × a4 × ∆ 5
5
= 0.3 + 0.05 × 0.6457 × 0.3108 = 0.3100
w35 = w35 + α × a3 × ∆ 5
x0
x1
x2
Couche caché
cachée
α = 0.05
-1
W04 = -0.5
a4 = 0.6457
Sortie
W35 = -0.4
x4
a5 = 0.6442
∆ 5 = 0.3108
∆ 4 = 0.0213
W14 = -0.2
W24 = 0.1
x3
W45 = 0.3
x5
2
w04 = w04 + α × a0 × ∆ 4
= −0.5 + 0.05 × −1× 0.0213 = −0.5011
w14 = w14 + α × a1 × ∆ 4
= −0.2 + 0.05 × 2 × 0.0213 = −0.1979
w24 = w24 + α × a2 × ∆ 4
= −0.4 + 0.05 × −1× 0.3108 = −0.4155
= 0.1 + 0.05 × 5 × 0.0213 = 0.1053
46
47
Réseau de neurones multicouches :
Réseau de neurones multicouches :
Condition d'arrêt
Convergence
„
Le nombre d'itérations est important car:
…
…
„
„
Si trop faible, l'erreur n'est pas suffisamment réduite.
Si trop grand, le réseau devient trop spécifique aux données
d'entraînement.
„
„
Il y a plusieurs conditions d'arrêt possible
…
…
…
…
La surface qui représente l'erreur contient plusieurs
minimums locaux.
L'algorithme ne garantit pas l'atteinte du minimum global.
Mais, tout de même bon en pratique
…
…
Après un certain nombre fixe d'itérations.
Lorsque les poids se stabilisent
Lorsque l'erreur dans les sorties des exemples d'entraînement
descend en dessous d'une certaine borne.
Lorsque l'erreur avec les exemples de validation descend en
dessous d'une certaine borne.
…
…
48
Poids initialiser à de petites valeurs.
La sigmoïde est presque linéaire pour de petites valeurs, donc
pas de minimums locaux.
Les poids grandissent à une vitesse contrôlée par le coefficient
d'apprentissage.
Donc, les poids ont le temps de se rapprocher du minimum
global avant que la fonction devienne plus complexe avec
plusieurs minimums locaux.
49
6
Réseau de neurones multicouches :
Réseau de neurones multicouches :
Caractéristiques
Exemple du restaurant
„
Instances représentées par des pairs attribut-valeur.
…
…
Les attributs peuvent être indépendants ou non.
Les valeurs peuvent être réelles.
„
Sorties
„
Les exemples peuvent contenir des erreurs.
Le temps d'apprentissage peut être long.
L'évaluation de la fonction apprise est très rapide.
La fonction visée est souvent très peu compréhensible
par un humain.
…
„
„
„
Peuvent être des valeurs discrètes, continues ou vectorielles.
50
51
Réseau de neurones multicouches :
Réseau de neurones :
Construction du réseau
Applications
„
Il n’existe aucune technique précise
„
Il y a quelques algorithmes:
…
…
Algorithmes génétiques
…
« Optimal brain damage »
„
„
„
„
„
…
„
La construction se fait souvent par essais et erreurs
„
Demande beaucoup de temps de calcul
„
On commence avec un réseau complètement connecté.
On enlève les poids qui sont proches de zéro.
On peut aussi enlever les neurones qui ne contribuent pas au résultat.
On entraîne de nouveau et on répète jusqu’à ce qu’il n’y ait plus d’amélioration.
„
Pavage (Tiling algorithm)
„
„
„
On commence avec une seule unité.
On ajoute successivement des neurones pour prendre en compte les exemples qu’on
arrive pas à classifier correctement.
On n’ajoute que le nombre nécessaire pour couvrir tous les exemples.
52
„
L'interprétation d'images.
La reconnaissance vocale.
La reconnaissance de mots écrits à la main.
L'apprentissage de stratégies de contrôle pour
les robots.
Une des meilleurs méthodes connues pour
l'interprétation de données provenant de
capteurs dans le monde réel.
53
7
Réseau de neurones :
Réseau de neurones :
Applications
Applications
„
Le système ALVINN a conduit une voiture
à 55 milles/h pendant 90 miles sur une
autoroute.
54
„
L’architecture d’ALVINN est un
réseau de neurones à
rétropropagation avec une couche
cachée.
„
La sortie est une distribution de
Gauss centrée autour de la direction
appropriée.
55
Réseau de neurones :
Reconnaissance de chiffres
3NN
Taux d’erreur (%)
RN 300
Hidden
LeNet
LeNet +
Boosting
SVM
Virtual
SVM
Match
Forme
0.63
2.4
1.6
0.9
0.7
1.1
0.56
1000
10
30
50
2000
200
Mémoire (Mbytes)
12
.49
.012
.21
11
Temps d’entraînement
0
7
14
30
10
8.1
3.2
1.8
0.5
1.8
Temps calcul (ms/pixel)
% rejet pour 0.5 d’erreur
56
8