8

Click here to load reader

Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

Embed Size (px)

Citation preview

Page 1: Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

1

26

Réseau de neurones

Plusieurs neurones interconnectés ensembleChaque neurone a la forme suivante

27

Réseau de neurones :

Fonctions d’activation gFonctions continues entre 0 et 1

(a) Fonction d’activation à seuil (step function)(b) Fonction sigmoïde

28

Réseau de neurones :

ApprentissageL’ajustement des poids

Modifier les paramètres de la fonction représentée par le réseau.

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.

( )45,435,35 aWaWga +=

a5

a3

a4

a1

a2

( ) ( )( )24,214,15,423,213,15,3 .. aWaWgWaWaWgWg +++=

29

Réseau de neurones :

Perceptron

RRééseau de perceptronsseau de perceptrons

IIjj WWjiji OOiiNeurones Neurones d'entrd'entrééee

Neurones Neurones de sortiede sortie

Un seul perceptronUn seul perceptron

IIjj WWjj OO

Neurones Neurones d'entrd'entrééee

Neurone Neurone de sortiede sortie

Page 2: Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

2

30

Réseau de neurones - perceptron :

Fonction linéaire

Somme

X1

X2

Xn

...

X0 = -1

w0

w1

w2

wn

ai

31

Réseau de neurones - perceptron:

Représentation de fonctionsLes perceptrons peuvent représenter toutes les fonctions linéairement séparables.

XX11

XX22

++++

++

----

--

Exemple de Exemple de fonction linfonction linééairementairement

ssééparableparable

XX11

XX22

++

++--

--

Une fonction non Une fonction non linlinééairement sairement sééparableparable

(OU Exclusif)(OU Exclusif)

32

Réseau de neurones – perceptron :

Exemple de fonction booléenneLa fonction ET

Les entrées prennent les valeurs 1 (vrai) ou 0 (faux)

SommeX1

X2

X0 = -1

0.8

0.5

0.5

Pour un OU, quelle valeur donner Pour un OU, quelle valeur donner àà ww00 ??

ai

33

Réseau de neurones - perceptron :

Règle d'apprentissage du perceptron

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:

( ) iii xingErrww ×××+← 'α y : sortie dy : sortie déésirsirééee

g : sortie obtenueg : sortie obtenueα α : constante d'apprentissage, : constante d'apprentissage,

ggéénnééralement petite (ex. 0.1)ralement petite (ex. 0.1)( )ingyErr −=

)1(' ggg −=Pour une fonction sigmoïde :

Page 3: Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

3

34

Réseau de neurones - perceptron :

Règle d'apprentissage du perceptron

Pourquoi une telle règle converge-t-elle?

Trop élevée

Trop faible

Bonne valeur

Sortie du perceptron

-

+

0

Erreury – g(in)

DiminueAugmente

-+

AugmenteDiminue

+-

Inchangé---

PoidsWi

Inputxi

( )( ) ( ) ii xingingyw .'.. −←∆ α

35

Réseau de neurones - perceptron :

Algorithme d’apprentissage

36

Réseau de neurones - perceptron :

Exemple d’apprentissage

37

Réseau de neurones :

Réseau multicouches

aakk

aaii

Neurones Neurones d'entrd'entrééee

Neurone(s) Neurone(s) de sortiede sortie

WWjkjk

Neurones Neurones cachcachééss

aajj

WWijij

Page 4: Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

4

38

Réseau de neurones multicouches :

ExpressivitéExpressivité

La couche cachée élargie l’espace d’hypothèses que le réseau peut représenter

39

Réseau de neurones multicouches :

Algorithme de rétropropagation

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:

yyii : sortie d: sortie déésirsirééee

aaii ou ggii(in) : sortie obtenue: sortie obtenue

DD : ensemble des exemples : ensemble des exemples d'entrad'entraîînementnement

sortiessorties : ensemble des sorties : ensemble des sorties du rdu rééseauseau

( ) ( )( )2

21 ∑ ∑

∈ ∈

−=Dd sortiesi

ii ingywE

40

Réseau de neurones multicouches :

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înementCalculer les sorties du réseau.Pour toutes les unités de sortie i, calculer l'erreur:

Pour toutes les unités cachées j, calculer l'erreur:

Mettre à jour tous les poids Wji

( ) ( )iiii aying −×←∆ '

( ) ii

jijj Wing ∆←∆ ∑'

ijjiji aWW ∆××+← α

41

Réseau de neurones multicouches :

Algorithme de rétropropagation

Page 5: Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

5

42

Réseau de neurones multicouches :

Exemple

Taux d’apprentissage α = 0.05

Fonction sigmoïde g aux noeuds x4 et x5

x1

x2

x4 x5

x0x3--11 --11

22

55

22

WW0404 = = --0.50.5

WW1414 = = --0.20.2

WW2424 = 0.1= 0.1WW45 45 = 0.3= 0.3

WW35 35 = = --0.40.4

EntrEntrééeses SortieSortieCouche cachCouche cachééee

43

Réseau de neurones multicouches :

Exemple – Calcul de la sortie

( ) ( ) ( )

( ) 6457.01

16.0

1.052.02 5.01

6.044

2422410404

=−

==

=×+−×+−×−=

++=

−einga

wawawain

x1

x2

x4 x5

x0x3--11 --11

22

55

22

WW0404 = = --0.50.5

WW1414 = = --0.20.2

WW2424 = 0.1= 0.1WW45 45 = 0.3= 0.3

WW35 35 = = --0.40.4

EntrEntrééeses SortieSortieCouche cachCouche cachééee

( ) ( )

( ) 6442.01

15937.0

3.06457.0 4.01

5937.055

4543535

=−

==

=×+−×−=

+=

−einga

wawain

α = 0.05

44

Réseau de neurones multicouches :

Exemple – Erreur ∆ de sortie

x1

x2

x4 x5

x0

x3--11 --11

22

55

22

WW0404 = = --0.50.5

WW1414 = = --0.20.2

WW2424 = 0.1= 0.1WW45 45 = 0.3= 0.3

WW35 35 = = --0.40.4

EntrEntrééeses SortieSortieCouche cachCouche cachééee

( ) ( )( ) ( )

( ) ( )3108.0

6442.026442.016442.0 1

'

5555

5555

=−×−×=

−×−×=−×=∆

ayaaaying

6442.05 =a

α = 0.05

6457.04 =a

45

Réseau de neurones multicouches :

Exemple – ∆ couche cachée

( )

( )( ) ( )

0213.0 3108.03.0 6457.016457.0

1

'

54544

444

=××−×=

∆×−×=

∆=∆ ∑Waa

Wingi

ii

x1

x2

x4 x5

x0x3--11 --11

22

55

22

WW0404 = = --0.50.5

WW1414 = = --0.20.2

WW2424 = 0.1= 0.1WW45 45 = 0.3= 0.3

WW35 35 = = --0.40.4

EntrEntrééeses SortieSortieCouche cachCouche cachééee

3108.06442.0

5

5

=∆=a

6457.04 =a

α = 0.05

Page 6: Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

6

46

Réseau de neurones multicouches :

Exemple – ajustement de poids

4155.03108.0105.04.0

3100.03108.06457.005.03.0

533535

544545

−=×−×+−=∆××+=

=××+=∆××+=

aww

aww

α

α

x1

x2

x4 x5

x0

x3--11 --11

22

55

22

WW0404 = = --0.50.5

WW1414 = = --0.20.2

WW2424 = 0.1= 0.1WW45 45 = 0.3= 0.3

WW35 35 = = --0.40.4

EntrEntrééeses SortieSortieCouche cachCouche cachééee

3108.06442.0

5

5

=∆=a

0213.06457.0

4

4

=∆=a

α = 0.05

47

Réseau de neurones multicouches :

Exemple – ajustement de poids

1053.00213.0505.01.0

1979.00213.0205.02.0

5011.00213.0105.05.0

422424

411414

400404

=××+=∆××+=

−=××+−=∆××+=

−=×−×+−=

∆××+=

aww

aww

aww

α

α

α

x1

x2

x4 x5

x0

x3--11 --11

22

55

22

WW0404 = = --0.50.5

WW1414 = = --0.20.2

WW2424 = 0.1= 0.1WW45 45 = 0.3= 0.3

WW35 35 = = --0.40.4

EntrEntrééeses SortieSortieCouche cachCouche cachééee

3108.06442.0

5

5

=∆=a

0213.06457.0

4

4

=∆=a

α = 0.05

48

Réseau de neurones multicouches :

Condition d'arrêtLe 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 possibleAprès un certain nombre fixe d'itérations.Lorsque les poids se stabilisentLorsque 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.

49

Réseau de neurones multicouches :

ConvergenceLa 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

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.

Page 7: Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

7

50

Réseau de neurones multicouches :

CaractéristiquesInstances représentées par des pairs attribut-valeur.

Les attributs peuvent être indépendants ou non. Les valeurs peuvent être réelles.

Sorties Peuvent être des valeurs discrètes, continues ou vectorielles.

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.

51

Réseau de neurones multicouches :

Exemple du restaurant

52

Réseau de neurones multicouches :

Construction du réseauIl n’existe aucune technique précise

La construction se fait souvent par essais et erreursIl y a quelques algorithmes:

Algorithmes génétiquesDemande beaucoup de temps de calcul

« Optimal brain damage »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.

53

Réseau de neurones :

ApplicationsL'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.

Page 8: Réseau de neurones : Réseau de neurones Fonctions d ...lamontagne/ift17587/modules/module3... · Le système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une

8

54

Réseau de neurones :

ApplicationsLe système ALVINN a conduit une voiture à 55 milles/h pendant 90 miles sur une autoroute.

55

Réseau de neurones :

ApplicationsL’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.

56

Réseau de neurones :

Reconnaissance de chiffres

1.80.51.83.28.1% rejet pour 0.5 d’erreur10301470Temps d’entraînement11.21.012.4912Mémoire (Mbytes)

20020005030101000Temps calcul (ms/pixel)0.630.561.10.70.91.62.4Taux d’erreur (%)

Match Forme

Virtual SVM

SVMLeNet + Boosting

LeNetRN 300Hidden

3NN