Vous êtes sur la page 1sur 6

Perceptron multicouche

Le perceptron multicouche (multilayer


perceptron MLP) est un type de réseau neuronal Perceptron multicouche
artificiel organisé en plusieurs couches au sein
desquelles une information circule de la couche
d'entrée vers la couche de sortie uniquement  ; il
s'agit donc d'un réseau à propagation directe
(feedforward). Chaque couche est constituée d'un
nombre variable de neurones, les neurones de la
dernière couche (dite « de sortie ») étant les sorties
du système global.

Le perceptron a été inventé en 1957 par Frank


Rosenblatt au Cornell Aeronautical Laboratory.
Dans cette première version le perceptron était alors
mono-couche et n'avait qu'une seule sortie à Un perceptron multicouche
laquelle toutes les entrées étaient connectées.
Sous-classe de Réseau de neurones à
propagation avant

Sommaire Inventeur Frank Rosenblatt

Perceptron multicouche à
rétropropagation
Algorithme de propagation
Apprentissage
Calcul de l'erreur
Calcul du gradient
Algorithme de rétropropagation
Voir aussi
Notes et références
Bibliographie

Perceptron multicouche à rétropropagation


Les premiers réseaux de neurones n'étaient pas capables de résoudre des problèmes non linéaires  ; cette
1
limitation fut supprimée au travers de la rétropropagation du gradient de l'erreur dans les systèmes
multicouches, proposé par Paul Werbos (en) en 1974 et mis au point douze années plus tard, en 1986 par
David Rumelhart (en).

Dans le perceptron multicouche à rétropropagation, les neurones d'une couche sont reliés à la totalité des
neurones des couches adjacentes. Ces liaisons sont soumises à un coefficient altérant l'effet de l'information
sur le neurone de destination. Ainsi, le poids de chacune de ces liaisons est l'élément clef du
fonctionnement du réseau : la mise en place d'un Perceptron multicouche pour résoudre un problème passe
donc par la détermination des meilleurs poids applicables à chacune des connexions inter neuronales Ici
donc par la détermination des meilleurs poids applicables à chacune des connexions inter-neuronales. Ici,
cette détermination s'effectue au travers d'un algorithme de rétropropagation.
Algorithme de propagation

Les poids sont représentés dans les matrices et , puis propagés à la couche suivante tel que :

Apprentissage

Calcul de l'erreur

En connaissant la valeur attendue à la sortie d'un perceptron pour des entrées données, on peut calculer
2
l'écart avec la prédiction grâce à une fonction objectif , le plus souvent l'erreur quadratique moyenne
3
(abrégée ) , telle que :

 ;

Cette fonction n'est pas linéaire, et sa dérivée est plus grande si la prédiction est éloignée de la valeur
4
attendue, permettant ainsi un apprentissage plus rapide . Au contraire, l'erreur moyenne absolue ( )a
5
une dérivée constante, et donc un taux d'apprentissage qui ne varie pas  :

 ;

6
En minimisant ces fonctions objectif, les prédictions gagnent en précision .

Calcul du gradient

Durant la phase d'apprentissage, après avoir calculé les erreurs du réseau de neurones, il est nécessaire de
les corriger afin d'améliorer ses performances. Pour minimiser ces erreurs – et donc la fonction objectif –,
7
l'algorithme du gradient est le plus souvent utilisé . Le gradient est calculé afin de connaître la variation
8
de la fonction objectif par rapport aux paramètres . Il permet ensuite de modifier ces paramètres
proportionnellement à leur impact sur la précision de la prédiction, dans le but d'atteindre après plusieurs
itérations le minimum global de la fonction objectif.

La modification des paramètres à un instant se fait tel que :

9
avec un scalaire, le taux d'apprentissage, et le gradient de la fonction objectif . L'algorithme du
gradient permet donc de trouver les paramètres du réseau tel que la somme des erreurs faites par les
gradient permet donc de trouver les paramètres du réseau tel que la somme des erreurs faites par les
prédictions sur des données d'entrainement soit la plus faible possible, c'est-à-dire que :

Le gradient se calcule avec la dérivée partielle de la fonction objectif par rapport à chacun des
10
paramètres . Lorsqu'il y a plusieurs paramètres à optimiser, il est exprimé comme un vecteur, parfois noté
, puis ajouté au vecteur des paramètres, après avoir été multiplié par le taux d'apprentissage. Le gradient
indique la direction vers le maximum de la fonction objectif, et son opposé mène donc vers le
11, 12
minimum . Son expression est donc :

Soit le gradient sur un perceptron de la couche , alors l'ensemble des gradients de cette couche
13
peuvent être stockés et manipulés dans une matrice jacobienne , c'est-à-dire une matrice contenant les
14
dérivées partielles de la fonction objectif vectorielle sur toute la couche , avec :

 ;

En utilisant le théorème de dérivation des fonctions composées, la variation de la fonction objectif par
15
rapport à l'un des poids est  :

 ;

Avec la dérivée partielle de la fonction d'activation, et la dérivée partielle de la fonction


objectif par rapport à la prédiction finale . En développant et en utilisant la règle de dérivation des sommes
 :

 ;

, si la fonction sigmoïde sert d'activation, ou pour la


tangente hyperbolique ;
 ;
L'apprentissage s'arrête lorsque les paramètres convergent vers des valeurs, et que la dérivée de la fonction
objectif vaut 0.

Algorithme de rétropropagation
1. Présentation d'un motif d'entraînement au réseau.
2. Comparaison de la sortie du réseau avec la sortie ciblée.
3. Calcul de l'erreur en sortie de chacun des neurones du réseau.
4. Calcul, pour chacun des neurones, de la valeur de sortie qui aurait été correcte.
5. Définition de l'augmentation ou de la diminution nécessaire pour obtenir cette valeur (erreur
locale).
6. Ajustement du poids de chaque connexion vers l'erreur locale la plus faible.
7. Attribution d'un blâme à tous les neurones précédents.
8. Recommencer à partir de l'étape 4, sur les neurones précédents en utilisant le blâme
comme erreur.

Voir aussi
Connexionnisme
Neurone formel
Perceptron
Réseau de neurones artificiels
Théorème d'approximation universelle

Notes et références
1. Rumelhart, D. E., Hinton, McClelland, and Williams, R. J. (1986), ―Learning Internal
Representations by Error Propagation‖ Parallel Distributed Processing: Explorations in the
Microstructure of Cognition
2. (en) Shiva Verma, « Understanding different Loss Functions for Neural Networks. » (https://to
wardsdatascience.com/understanding-different-loss-functions-for-neural-networks-dd1ed027
4718), sur Medium, 23 avril 2020 (consulté le 13 mars 2021)
3. (en) Mohammed Zeeshan Mulla, « Cost, Activation, Loss Function|| Neural Network|| Deep
Learning. What are these? » (https://medium.com/@zeeshanmulla/cost-activation-loss-functi
on-neural-network-deep-learning-what-are-these-91167825a4de), sur Medium, 5 mai 2020
(consulté le 13 mars 2021)
4. (en-US) « Mean Squared Error: Definition and Example » (https://www.statisticshowto.com/pr
obability-and-statistics/statistics-definitions/mean-squared-error/), sur Statistics How To
(consulté le 13 mars 2021)
5. (en) Prince Grover, « 5 Regression Loss Functions All Machine Learners Should Know » (htt
ps://heartbeat.fritz.ai/5-regression-loss-functions-all-machine-learners-should-know-4fb140e
9d4b0), sur Medium, 31 décembre 2020 (consulté le 13 mars 2021)
6. (en) Shuyu Luo, « Optimization: Loss Function Under the Hood (Part I) » (https://towardsdata
science.com/optimization-of-supervised-learning-loss-function-under-the-hood-df1791391c8
2), sur Medium, 14 octobre 2018 (consulté le 13 mars 2021)
7. (en) Niklas Donges, « Gradient Descent: An Introduction to 1 of Machine Learning’s Most
Popular Algorithms » (https://builtin.com/data-science/gradient-descent), sur Built In,
16 juin 2019 (consulté le 28 mars 2021)
16 juin 2019 (consulté le 28 mars 2021)

8. (en) Nikil Reddy, « How Does the Gradient Descent Algorithm Work in Machine Learning? »
(https://www.analyticsvidhya.com/blog/2020/10/how-does-the-gradient-descent-algorithm-wo
rk-in-machine-learning/), sur Analytics Vidhya, 2 octobre 2020 (consulté le 28 mars 2021)
9. (en-US) Imad Dabbura, « Gradient Descent Algorithm and Its Variants » (https://imaddabbura.
github.io/post/gradient-descent-algorithm/), sur Imad Dabbura, 21 décembre 2017 (consulté
le 28 mars 2021)
10. (en) Towards AI Team, « Gradient Descent for Machine Learning (ML) 101 with Python
Tutorial » (https://pub.towardsai.net/gradient-descent-algorithm-for-machine-learning-python-t
utorial-ml-9ded189ec556), sur Medium, 8 janvier 2021 (consulté le 1er avril 2021)
11. (en) Anjana Yadav, « Why we move opposite to gradients in Gradient Descent?? » (https://m
edium.com/analytics-vidhya/why-we-move-opposite-to-gradients-in-gradient-descent-9077b
9aa68e4), sur Medium, 20 février 2020 (consulté le 1er avril 2021)
12. (en) Shikhar Goswami, « Why direction of steepest descent is always opposite to the
gradient of loss function? » (https://medium.com/analytics-vidhya/why-direction-of-steepest-d
escent-is-always-opposite-to-the-gradient-of-loss-function-dddc995a816e), sur Medium,
23 juin 2020 (consulté le 1er avril 2021)
13. (en) Matthew Barnett, « A Primer on Matrix Calculus, Part 2: Jacobians and other fun -
LessWrong » (https://www.lesswrong.com/posts/KKwv9kcQz29vqPLAD/a-primer-on-matrix-c
alculus-part-2-jacobians-and-other-fun), sur Less Wrong, 15 août 2019 (consulté le
1er avril 2021)
14. (en) Julien Herzen, « Computing the Jacobian matrix of a neural network in Python » (https://
medium.com/unit8-machine-learning-publication/computing-the-jacobian-matrix-of-a-neural-
network-in-python-4f162e5db180), sur Medium, 19 novembre 2018 (consulté le
1er avril 2021)
15. (en) Chi-Feng Wang, « Calculating Gradient Descent Manually » (https://towardsdatascienc
e.com/calculating-gradient-descent-manually-6d9bee09aa0b), sur Medium, 25 octobre 2018
(consulté le 14 mars 2021)

Bibliographie
Marc Parizeau, Réseaux de Neurones (Le perceptron multicouche et son algorithme de
retropropagation des erreurs), Université Laval, Laval, 2004, 272 p.
Fabien Tschirhart (dir. Alain Lioret), Réseaux de neurones formels appliqués à l'Intelligence
Artificielle et au jeu, ESGI (mémoire de master de recherche en multimédia et animation numérique),
Paris, 2009, 121 p. [mémoire en ligne
(http://fabien.tschirhart.free.fr/images/Docs/memoire_V129.pdf) (page consultée le 8 novembre 2010)]

Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Perceptron_multicouche&oldid=187302409 ».

La dernière modification de cette page a été faite le 20 octobre 2021 à 18:17.

Droit d'auteur : les textes sont disponibles sous licence Creative Commons attribution, partage dans les mêmes
conditions ; d’autres conditions peuvent s’appliquer. Voyez les conditions d’utilisation pour plus de détails, ainsi que
les crédits graphiques. En cas de réutilisation des textes de cette page, voyez comment citer les auteurs et
mentionner la licence.
Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de bienfaisance régie par le
paragraphe 501(c)(3) du code fiscal des États-Unis.
Politique de confidentialité
À propos de Wikipédia
Avertissements
Contact
Développeurs
Statistiques
Déclaration sur les témoins (cookies)

Vous aimerez peut-être aussi