SlideShare une entreprise Scribd logo
1  sur  3
Télécharger pour lire hors ligne
Le Perceptron, le début d’une                                                          p            
                                                                     f (x 1 ,…, x p ) = H ∑ ω j x j − θ  avec
                                                                                          
                                                                                          
                                                                                                         
                                                                                                         
          intelligence artificielle                                                        j =1
                                                                                                        
                                                                                                         
                                                                              y
Les capacités d’apprentissage du cerveau humain
sont fascinantes. Avec les capacités calculatoires
promises par l’informatique et dans l’objectif                                                    y = H (x )
d’imiter le cerveau humain, la théorie des réseaux
de neurones à commencer à poindre au milieu du                                 O                  x
XXème siècle, notamment avec l’introduction du            Action d’un perceptron
perceptron en 1957 par Franck Rosenblatt.
                                                          L’action du perceptron est entièrement déterminée
Neurone formel                                            par la connaissance des poids synaptiques ω1 ,…, ω p
On estime que le cerveau humain contient entre un         et du seuil d’activation θ . Il convient maintenant
et cent milliards de neurones. Chaque neurone est         de calculer les valeurs de ces paramètres en
connecté en moyenne à 10.000 autres par le biais de       fonction de l’action attendue par ce perceptron.
synapses. Les stimulations synaptiques perçues par        L’enjeu est alors, à partir d’une base d’exemples de
un neurone peuvent activer celui-ci qui transmet          valeurs prises, de déterminer, lors d’une phase
alors un signal électrique aux neurones suivants ou       d’apprentissage, les valeurs des paramètres pour
à d’autres cellules.                                      que le perceptron réagisse comme sur cette base
Le perceptron a pour objectif d’imiter la stimulation     d’exemples.
d’un neurone (sortie) par des neurones voisins            Si par exemple nous souhaitons simuler l’opérateur
(entrée). Dans un premier temps, nous allons              logique « Et », nous disposons de la base
considérer des neurones binaires : un neurone a la        d’apprentissage complète
valeur 1 s’il est actif et la valeur 0 sinon. L’état du
neurone de sortie correspond à la réponse du                 (0,0) ֏ 0 , (1,0) ֏ 0 , (0,1) ֏ 0 et (1,1) ֏ 1
perceptron tandis que les p neurones d’entrée             Si la base d’apprentissage n’est pas exhaustive, on
déterminent la variable fonctionnelle sur laquelle        espère que, confronté à une stimulation nouvelle, le
opère le perceptron. Le perceptron apparaît alors         perceptron réagira « au mieux » compte tenu des
comme une fonction                                        exemples déjà appris.
             {0,1}p → {0,1}
                                                         Cependant, avant de préciser le mécanisme de la
          f :
                                                         phase d’apprentissage, répondons à la question
             
             (x 1 ,…, x p ) ֏ y = f (x 1 ,…, x p )
                                                         suivante :
que l’on peut schématiser sous la forme suivante          Que peut apprendre un perceptron ?
         x1 x 2 x 3 ⋯ x p                                 Dans l’espace ℝ p , l’équation
                                         Entrée
                                                                                    p

                                                                                  ∑ω x
                                                                                   j =1
                                                                                          j   j   =θ

                    y                                     définit généralement un hyperplan séparant l’espace
                                         Sortie
                                                          ℝ p en deux demi-espaces. Selon que le p -uplet
Pour définir l’action de la fonction f , on considère     (x1 ,…, x p ) appartient à l’un ou l’autre de ces demi-
que les neurones d’entrée peuvent stimuler le
                                                          espaces, la valeur prise par f (x1 ,…, x p ) sera égale à
neurone de sortie par le biais de poids synaptiques
notés ω1 ,…, ω p . On somme alors les poids               0 ou 1. Par suite, un échantillon d’exemples pourra
                                                          être appris par un perceptron si et seulement s’il est
synaptiques des neurones actifs pour calculer le          linéairement séparable, c’est-à-dire que les
stimuli généré par une entrée (x 1 ,…, x p )              éléments envoyés sur 0 peuvent être séparés de
                           p                              ceux envoyés sur 1 par un hyperplan. Par exemple
                         ∑ω x    j   j                    l’opérateur logique « Et » peut être simulé par un
                          j =1                            perceptron alors que le « Ou exclusif » ne le peut
Si cette quantité est supérieure à un certain seuil       pas.
d’activation θ , on considère que le neurone de
sortie est activé. Ainsi, nous pouvons préciser
l’action de la fonction f :
                             
                                    p                       (0,1)             (1,1)              (0,1)        (1,1)
                             1 si ∑ ω x ≥ θ
                                       j j
          f (x 1 ,…, x p ) =      j =1
                                             .
                             
                             0 sinon
                             
                             
soit encore, en introduisant la fonction d’activation
H de Heaviside                                               (0,0)             (1,0)              (0,0)        (1,0)

                                                                 « Et »                            « Ou exclusif »
Algorithme d’apprentissage                                        3
Nous      supposons     disposer      d’une    base         −3                             −1
d’apprentissage et nous souhaitons déterminer les                −1
valeurs des poids synaptiques et du seuil afin que          −7
notre perceptron apprenne celle-ci.                                                        3              seuil = 1
Pour la commodité des calculs, nous allons                        3
supposer que le seuil θ définit le poids synaptique      Il est intéressant de remarque qu’un poids
ω0 = −θ d’un neurone d’entrée dont la valeur x 0         synaptique négatif fort a été attribué au 5ème
est toujours égale à 1.                                  segment. A posteriori, on peut constater que
L’action du perceptron peut alors se réécrire            l’activation de ce segment influence fortement la
                                p
                                                         parité du chiffre considéré : l’apprentissage a induit
        f : (x1 ,…, x p ) ֏ H (∑ ω j x j ) ∈ {0,1}       un début d’intelligence artificiel.
                               j =0                      Apprentissage par descente de gradient
Nous souhaitons alors déterminer les coefficients        Il est regrettable que l’algorithme d’apprentissage
ω0 = −θ et ω1 ,…, ωp . On commence par initialiser       précédent ne fonctionne que si la base
aléatoirement la valeur de ceux-ci. Ensuite, pour        d’apprentissage est linéairement séparable. Si nous
                                                         ne pouvons être sûr a priori de cette propriété ou
chaque exemple        (x1 ,…, x p ) de la base
                                                         bien si celle-ci n’est tout simplement pas vérifiée,
d’apprentissage, on compare la réponse fournie à la      on peut néanmoins espérer former un perceptron
réponse attendue. Si elles sont égales, on ne modifie
pas les poids synaptiques. En revanche si la réponse     Descente de gradient
fournie est 0 alors que celle attendue est 1, on
ajoute 1 aux poids synaptiques des neurones              La descente de gradient a pour objectif de
d’entrée activés : ceci a pour effet d’accroître leur    minimiser une fonction réelle en construisant
influence. A contrario, si la réponse fournie est 1      par un processus itératif une suite convergeant
alors que celle attendue est 0, on retire 1 aux poids    vers un minimum de celle-ci. Pour cela, on part
synaptiques des neurones d’entrée activés.               d’un point initial « bien choisi » et on construit
                                                         les points suivants en prenant la direction de la
L’algorithme d’apprentissage se poursuit jusqu’à ce      plus grande pente durant une distance « bien
que tous les éléments de la base d’apprentissage         choisie » appelée pas de la descente de gradient.
soient étudiés sans qu’aucun poids synaptiques ne
soient modifiés. On peut montrer que cet                 Concrètement, pour minimiser une fonction
algorithme s’arrête si et seulement si base               f : ℝ → ℝ dérivable, on choisit un point initial
d’apprentissage est linéairement séparable.              x 0 et un pas η pour définir la suite (x n ) par
Un exemple : Apprentissage de parité                                        x n +1 = x n − η f ′(x n )
Considérons un afficheur numérique à sept
segments et formons un perceptron donnant la             Pour une fonction f de plusieurs variable
parité du chiffre écrit, à savoir 0 s’il est pair et 1   réelles, la formule d’itération est semblable
sinon.                                                   mais fait cette fois intervenir le gradient de la
                                                         fonction.
                                                                          x n x n +1 = −η.grad f (x n )
                                                                      y                 y = f (x )




                                                                                                          x
On commence par coder chaque chiffre en une liste                          O         x 3 x 2 x1 x 0
de sept 0 ou 1 selon les segments allumés, liste qui     La descente de gradient a des inconvénients :
constituera les neurones d’entrée du perceptron
                                                         – le choix du point initial et du pas reste
           1                                             empirique,
      6          2     0 se code 1111110,                – l’algorithme peut faire converger la suite vers
           7           1 se code 0110000,                un minimum local,
                       etc.
      5          3                                       – les termes de la suite peuvent s’échapper vers
                                                         l’infini,
           4
                                                         – la convergence est relativement lente.
On procède ensuite à l’apprentissage selon
                                                         Néanmoins, pour l’optimisation des réseaux de
l’algorithme ci-dessus et l’on obtient la répartition
                                                         neurones, cet algorithme fonctionne plutôt bien.
suivante des poids synaptiques :
qui réponde au mieux sur cette base, c’est-à-dire         On peut alors prolonger l’exemple précédent et
qui réalise un minimum d’erreur.                          proposer un perceptron donnant la parité d’un
Nous définissons l’erreur locale commise par le           chiffre hexadécimal. Malheureusement, la base
perceptron sur un exemple d’apprentissage                 d’apprentissage n’est désormais plus linéairement
(x 1 ,…, x p ) ֏ y comme égale à                          séparable.    Si    l’on   applique     l’algorithme
                                                          d’apprentissage présenté en premier, celui-ci ne
                 1                        2               s’arrête pas et oscille autour d’une solution
                 2
                   ( f (x1 ,…, x p ) − y )                commettant cinq erreurs. En revanche, l’algorithme
                                                          par descente de gradient propose une solution ne
Nous définissons l’erreur globale du perceptron
comme étant la moyenne des erreurs locales                commettant que deux erreurs.
commises sur les exemples de la base                      Réseaux de neurones
d’apprentissage. L’enjeu est désormais de                 Le fait que les perceptrons ne peuvent discriminer
minimiser cette erreur globale en déterminant des         que les ensembles linéairement séparables a
poids synaptiques adaptés. L’algorithme de                particulièrement réduit leur intérêt pratique.
descente de gradient (voir encadré) est un outil          Cependant, vers la fin du XXème siècle se concrétise
adapté au problème de minimisation. Cependant,            l’idée d’accumuler des couches de neurones
pour le mettre en place, il convient que la fonction à    intermédiaires avant de produire la réponse finale.
minimiser soit de classe C 1 . Pour l’instant, l’erreur   C’est l’introduction du MLP acronyme de Multi
globale n’est pas une fonction de classe C 1 en les       Layer Perceptron.
poids synaptiques à cause de l’irrégularité de la               x1 x 2       xp             Entrée
fonction de Heaviside précédemment introduite.
Pour palier à ce défaut, nous n’allons plus supposer
binaire le neurone de sortie mais nous allons
l’autoriser à prendre des valeurs comprises entre 0
et 1 ; cela permettra éventuellement d’interpréter         y1 y 2                 yq        Couche cachée
comme une probabilité la réponse du perceptron.
Concrètement, on introduit une fonction sigmoïde :
                                   1
                ϕ :x ∈ ℝ ֏
                               1 + e−x T                                 z                  Sortie
                       y
                                                          L’algorithme de descente de gradient est adapté à la
                                     y = ϕ (x )           minimisation de l’erreur produite par un tel réseau.
                                                          Notamment,        il    s’interprète    comme      une
                                                          rétropropagation de l’erreur en sortie en erreurs
                                                          partielles commises par les neurones activés à la
                                         x                couche précédente.
                         O                                En pratique, pour concevoir un réseau de neurones,
Le paramètre T > 0 est choisi empiriquement et se         on réfléchit préalablement à son architecture en
perçoit comme un paramètre de température (quand          fonction de l’action que l’on veut voir réalisée. On
T → 0 + , la fonction sigmoïde tend vers la fonction      procède ensuite à son apprentissage ce qui est une
de Heaviside : on gèle l’action du perceptron).           étape longue comte tenu de la lenteur des
A partir de la fonction sigmoïde, on redéfinit la         algorithmes en jeux. Cependant, une fois calibré, la
réponse du perceptron                                     réponse d’un réseau de neurone est quasi immédiate
                                 p
                                                          et celui-ci peut être facilement reproduit.
         f : (x1 ,…, x p ) ֏ ϕ (∑ ω j x j ) ∈ [0,1]       De nos jours les réseaux de neurones se rencontrent
                                j =0                      notamment dans les domaines suivants :
et désormais la fonction erreur globale est une           – la reconnaissance optique de caractère, par
fonction de classe C 1 en les poids synaptiques, il       exemple le tri du courrier en fonction du code
est possible de la minimiser par descente de              postal,
gradient.                                                 – la prédiction bancaire : à partir de l’expérience de
Apprentissage de parité                                   leurs précédents clients, les banques ont calibré un
                                                          réseau de neurones qui quantifie le risque commis
Avec un afficheur numérique à sept segments, il est
                                                          lors d’un accord de prêt.
aussi possible d’écrire les chiffres hexadécimaux en
introduisant

Contenu connexe

Tendances

Cours Info1- ST/SM/MI : introduction à l'informatique
Cours Info1- ST/SM/MI : introduction  à l'informatiqueCours Info1- ST/SM/MI : introduction  à l'informatique
Cours Info1- ST/SM/MI : introduction à l'informatiquelinuxscout
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Architecture des ordinateurs
Architecture des ordinateursArchitecture des ordinateurs
Architecture des ordinateursRMwebsite
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neuronesMed Zaibi
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptwafawafa52
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah fenni
 
Analyse Factorielle des Correspondances
Analyse Factorielle des CorrespondancesAnalyse Factorielle des Correspondances
Analyse Factorielle des CorrespondancesJaouad Dabounou
 
systeme automatises de production
systeme automatises de production systeme automatises de production
systeme automatises de production omar bllaouhamou
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
Conception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulteConception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adultePeronnin Eric
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfMbarkiIsraa
 
Cours acp mehdi_aman
Cours acp mehdi_amanCours acp mehdi_aman
Cours acp mehdi_amanMehdi Aman
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdlyassinesmz
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 

Tendances (20)

Formation python 3
Formation python 3Formation python 3
Formation python 3
 
Cours Info1- ST/SM/MI : introduction à l'informatique
Cours Info1- ST/SM/MI : introduction  à l'informatiqueCours Info1- ST/SM/MI : introduction  à l'informatique
Cours Info1- ST/SM/MI : introduction à l'informatique
 
Formation python
Formation pythonFormation python
Formation python
 
Architecture des ordinateurs
Architecture des ordinateursArchitecture des ordinateurs
Architecture des ordinateurs
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Analyse Factorielle des Correspondances
Analyse Factorielle des CorrespondancesAnalyse Factorielle des Correspondances
Analyse Factorielle des Correspondances
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
systeme automatises de production
systeme automatises de production systeme automatises de production
systeme automatises de production
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Td02
Td02Td02
Td02
 
Conception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulteConception d'un objet électronique - Présentation adulte
Conception d'un objet électronique - Présentation adulte
 
States machines (1)
States machines (1)States machines (1)
States machines (1)
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
Cours acp mehdi_aman
Cours acp mehdi_amanCours acp mehdi_aman
Cours acp mehdi_aman
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdl
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 

En vedette (9)

Réseaux neurons
Réseaux neuronsRéseaux neurons
Réseaux neurons
 
K-Nearest Neighbor
K-Nearest NeighborK-Nearest Neighbor
K-Nearest Neighbor
 
Cours rn 2006
Cours rn 2006Cours rn 2006
Cours rn 2006
 
réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels
 
Réseaux de neurones
Réseaux de neurones Réseaux de neurones
Réseaux de neurones
 
(Cours régression)
(Cours régression)(Cours régression)
(Cours régression)
 
Algorithme knn
Algorithme knnAlgorithme knn
Algorithme knn
 
KNN
KNN KNN
KNN
 
Suites numériques exercices corrigés
Suites numériques exercices corrigésSuites numériques exercices corrigés
Suites numériques exercices corrigés
 

Perceptron

  • 1. Le Perceptron, le début d’une  p  f (x 1 ,…, x p ) = H ∑ ω j x j − θ  avec     intelligence artificielle  j =1    y Les capacités d’apprentissage du cerveau humain sont fascinantes. Avec les capacités calculatoires promises par l’informatique et dans l’objectif y = H (x ) d’imiter le cerveau humain, la théorie des réseaux de neurones à commencer à poindre au milieu du O x XXème siècle, notamment avec l’introduction du Action d’un perceptron perceptron en 1957 par Franck Rosenblatt. L’action du perceptron est entièrement déterminée Neurone formel par la connaissance des poids synaptiques ω1 ,…, ω p On estime que le cerveau humain contient entre un et du seuil d’activation θ . Il convient maintenant et cent milliards de neurones. Chaque neurone est de calculer les valeurs de ces paramètres en connecté en moyenne à 10.000 autres par le biais de fonction de l’action attendue par ce perceptron. synapses. Les stimulations synaptiques perçues par L’enjeu est alors, à partir d’une base d’exemples de un neurone peuvent activer celui-ci qui transmet valeurs prises, de déterminer, lors d’une phase alors un signal électrique aux neurones suivants ou d’apprentissage, les valeurs des paramètres pour à d’autres cellules. que le perceptron réagisse comme sur cette base Le perceptron a pour objectif d’imiter la stimulation d’exemples. d’un neurone (sortie) par des neurones voisins Si par exemple nous souhaitons simuler l’opérateur (entrée). Dans un premier temps, nous allons logique « Et », nous disposons de la base considérer des neurones binaires : un neurone a la d’apprentissage complète valeur 1 s’il est actif et la valeur 0 sinon. L’état du neurone de sortie correspond à la réponse du (0,0) ֏ 0 , (1,0) ֏ 0 , (0,1) ֏ 0 et (1,1) ֏ 1 perceptron tandis que les p neurones d’entrée Si la base d’apprentissage n’est pas exhaustive, on déterminent la variable fonctionnelle sur laquelle espère que, confronté à une stimulation nouvelle, le opère le perceptron. Le perceptron apparaît alors perceptron réagira « au mieux » compte tenu des comme une fonction exemples déjà appris. {0,1}p → {0,1}  Cependant, avant de préciser le mécanisme de la f :  phase d’apprentissage, répondons à la question  (x 1 ,…, x p ) ֏ y = f (x 1 ,…, x p )  suivante : que l’on peut schématiser sous la forme suivante Que peut apprendre un perceptron ? x1 x 2 x 3 ⋯ x p Dans l’espace ℝ p , l’équation Entrée p ∑ω x j =1 j j =θ y définit généralement un hyperplan séparant l’espace Sortie ℝ p en deux demi-espaces. Selon que le p -uplet Pour définir l’action de la fonction f , on considère (x1 ,…, x p ) appartient à l’un ou l’autre de ces demi- que les neurones d’entrée peuvent stimuler le espaces, la valeur prise par f (x1 ,…, x p ) sera égale à neurone de sortie par le biais de poids synaptiques notés ω1 ,…, ω p . On somme alors les poids 0 ou 1. Par suite, un échantillon d’exemples pourra être appris par un perceptron si et seulement s’il est synaptiques des neurones actifs pour calculer le linéairement séparable, c’est-à-dire que les stimuli généré par une entrée (x 1 ,…, x p ) éléments envoyés sur 0 peuvent être séparés de p ceux envoyés sur 1 par un hyperplan. Par exemple ∑ω x j j l’opérateur logique « Et » peut être simulé par un j =1 perceptron alors que le « Ou exclusif » ne le peut Si cette quantité est supérieure à un certain seuil pas. d’activation θ , on considère que le neurone de sortie est activé. Ainsi, nous pouvons préciser l’action de la fonction f :   p (0,1) (1,1) (0,1) (1,1) 1 si ∑ ω x ≥ θ  j j f (x 1 ,…, x p ) =  j =1 .  0 sinon   soit encore, en introduisant la fonction d’activation H de Heaviside (0,0) (1,0) (0,0) (1,0) « Et » « Ou exclusif »
  • 2. Algorithme d’apprentissage 3 Nous supposons disposer d’une base −3 −1 d’apprentissage et nous souhaitons déterminer les −1 valeurs des poids synaptiques et du seuil afin que −7 notre perceptron apprenne celle-ci. 3 seuil = 1 Pour la commodité des calculs, nous allons 3 supposer que le seuil θ définit le poids synaptique Il est intéressant de remarque qu’un poids ω0 = −θ d’un neurone d’entrée dont la valeur x 0 synaptique négatif fort a été attribué au 5ème est toujours égale à 1. segment. A posteriori, on peut constater que L’action du perceptron peut alors se réécrire l’activation de ce segment influence fortement la p parité du chiffre considéré : l’apprentissage a induit f : (x1 ,…, x p ) ֏ H (∑ ω j x j ) ∈ {0,1} un début d’intelligence artificiel. j =0 Apprentissage par descente de gradient Nous souhaitons alors déterminer les coefficients Il est regrettable que l’algorithme d’apprentissage ω0 = −θ et ω1 ,…, ωp . On commence par initialiser précédent ne fonctionne que si la base aléatoirement la valeur de ceux-ci. Ensuite, pour d’apprentissage est linéairement séparable. Si nous ne pouvons être sûr a priori de cette propriété ou chaque exemple (x1 ,…, x p ) de la base bien si celle-ci n’est tout simplement pas vérifiée, d’apprentissage, on compare la réponse fournie à la on peut néanmoins espérer former un perceptron réponse attendue. Si elles sont égales, on ne modifie pas les poids synaptiques. En revanche si la réponse Descente de gradient fournie est 0 alors que celle attendue est 1, on ajoute 1 aux poids synaptiques des neurones La descente de gradient a pour objectif de d’entrée activés : ceci a pour effet d’accroître leur minimiser une fonction réelle en construisant influence. A contrario, si la réponse fournie est 1 par un processus itératif une suite convergeant alors que celle attendue est 0, on retire 1 aux poids vers un minimum de celle-ci. Pour cela, on part synaptiques des neurones d’entrée activés. d’un point initial « bien choisi » et on construit les points suivants en prenant la direction de la L’algorithme d’apprentissage se poursuit jusqu’à ce plus grande pente durant une distance « bien que tous les éléments de la base d’apprentissage choisie » appelée pas de la descente de gradient. soient étudiés sans qu’aucun poids synaptiques ne soient modifiés. On peut montrer que cet Concrètement, pour minimiser une fonction algorithme s’arrête si et seulement si base f : ℝ → ℝ dérivable, on choisit un point initial d’apprentissage est linéairement séparable. x 0 et un pas η pour définir la suite (x n ) par Un exemple : Apprentissage de parité x n +1 = x n − η f ′(x n ) Considérons un afficheur numérique à sept segments et formons un perceptron donnant la Pour une fonction f de plusieurs variable parité du chiffre écrit, à savoir 0 s’il est pair et 1 réelles, la formule d’itération est semblable sinon. mais fait cette fois intervenir le gradient de la fonction. x n x n +1 = −η.grad f (x n ) y y = f (x ) x On commence par coder chaque chiffre en une liste O x 3 x 2 x1 x 0 de sept 0 ou 1 selon les segments allumés, liste qui La descente de gradient a des inconvénients : constituera les neurones d’entrée du perceptron – le choix du point initial et du pas reste 1 empirique, 6 2 0 se code 1111110, – l’algorithme peut faire converger la suite vers 7 1 se code 0110000, un minimum local, etc. 5 3 – les termes de la suite peuvent s’échapper vers l’infini, 4 – la convergence est relativement lente. On procède ensuite à l’apprentissage selon Néanmoins, pour l’optimisation des réseaux de l’algorithme ci-dessus et l’on obtient la répartition neurones, cet algorithme fonctionne plutôt bien. suivante des poids synaptiques :
  • 3. qui réponde au mieux sur cette base, c’est-à-dire On peut alors prolonger l’exemple précédent et qui réalise un minimum d’erreur. proposer un perceptron donnant la parité d’un Nous définissons l’erreur locale commise par le chiffre hexadécimal. Malheureusement, la base perceptron sur un exemple d’apprentissage d’apprentissage n’est désormais plus linéairement (x 1 ,…, x p ) ֏ y comme égale à séparable. Si l’on applique l’algorithme d’apprentissage présenté en premier, celui-ci ne 1 2 s’arrête pas et oscille autour d’une solution 2 ( f (x1 ,…, x p ) − y ) commettant cinq erreurs. En revanche, l’algorithme par descente de gradient propose une solution ne Nous définissons l’erreur globale du perceptron comme étant la moyenne des erreurs locales commettant que deux erreurs. commises sur les exemples de la base Réseaux de neurones d’apprentissage. L’enjeu est désormais de Le fait que les perceptrons ne peuvent discriminer minimiser cette erreur globale en déterminant des que les ensembles linéairement séparables a poids synaptiques adaptés. L’algorithme de particulièrement réduit leur intérêt pratique. descente de gradient (voir encadré) est un outil Cependant, vers la fin du XXème siècle se concrétise adapté au problème de minimisation. Cependant, l’idée d’accumuler des couches de neurones pour le mettre en place, il convient que la fonction à intermédiaires avant de produire la réponse finale. minimiser soit de classe C 1 . Pour l’instant, l’erreur C’est l’introduction du MLP acronyme de Multi globale n’est pas une fonction de classe C 1 en les Layer Perceptron. poids synaptiques à cause de l’irrégularité de la x1 x 2 xp Entrée fonction de Heaviside précédemment introduite. Pour palier à ce défaut, nous n’allons plus supposer binaire le neurone de sortie mais nous allons l’autoriser à prendre des valeurs comprises entre 0 et 1 ; cela permettra éventuellement d’interpréter y1 y 2 yq Couche cachée comme une probabilité la réponse du perceptron. Concrètement, on introduit une fonction sigmoïde : 1 ϕ :x ∈ ℝ ֏ 1 + e−x T z Sortie y L’algorithme de descente de gradient est adapté à la y = ϕ (x ) minimisation de l’erreur produite par un tel réseau. Notamment, il s’interprète comme une rétropropagation de l’erreur en sortie en erreurs partielles commises par les neurones activés à la x couche précédente. O En pratique, pour concevoir un réseau de neurones, Le paramètre T > 0 est choisi empiriquement et se on réfléchit préalablement à son architecture en perçoit comme un paramètre de température (quand fonction de l’action que l’on veut voir réalisée. On T → 0 + , la fonction sigmoïde tend vers la fonction procède ensuite à son apprentissage ce qui est une de Heaviside : on gèle l’action du perceptron). étape longue comte tenu de la lenteur des A partir de la fonction sigmoïde, on redéfinit la algorithmes en jeux. Cependant, une fois calibré, la réponse du perceptron réponse d’un réseau de neurone est quasi immédiate p et celui-ci peut être facilement reproduit. f : (x1 ,…, x p ) ֏ ϕ (∑ ω j x j ) ∈ [0,1] De nos jours les réseaux de neurones se rencontrent j =0 notamment dans les domaines suivants : et désormais la fonction erreur globale est une – la reconnaissance optique de caractère, par fonction de classe C 1 en les poids synaptiques, il exemple le tri du courrier en fonction du code est possible de la minimiser par descente de postal, gradient. – la prédiction bancaire : à partir de l’expérience de Apprentissage de parité leurs précédents clients, les banques ont calibré un réseau de neurones qui quantifie le risque commis Avec un afficheur numérique à sept segments, il est lors d’un accord de prêt. aussi possible d’écrire les chiffres hexadécimaux en introduisant