Vous êtes sur la page 1sur 6

Rappel du perceptron simple

Un perceptron peut être vu comme le type de réseau de


neurone le plus simple. C'est un classifieur linéaire. Ce type
de réseau neuronal ne contient aucun cycle (il s'agit d'un
réseau de neurone à propagation avant). Dans sa version
simplifiée, le perceptron est monocouche et n'a qu'une seule
sortie (booléenne) à laquelle toutes les entrées (booléennes)
sont connectées. Plus généralement, les entrées peuvent être
des nombres réels.
- Inconvénient : Un perceptron simple ne sait traiter que
les problèmes linéairement séparables.
- Problème : Trouver une droite de séparation efficace
n’est pas possible

Le perceptron multicouche

1-Introduction :
Le perceptron multicouche (PMC) est la deuxième grande
famille de réseaux de neurones. Après avoir décrit
l'architecture de ces réseaux on va aborder leur
apprentissage, et le concept de rétropropagation de l'erreur.
Le perceptron multicouche (multilayer perceptron MLP) est
un type de réseau neuronal multicouches 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.
Les premiers réseaux de neurones n'étaient pas capables de
résoudre des problèmes non linéaires ; cette 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 1974 et mis au point douze années plus tard, en
1986 par . Pour ce dernier une combinaison de séparateurs
linéaires permettrait de produire un séparateur global non-
linéaire.
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, cette
détermination s'effectue au travers d'un algorithme de
rétropropagation.
2-Structure du PMC
Le perceptron est organisé en trois parties :

 La couche d’entrée (input layer) = un ensemble de


neurones qui portent le signal d’entrée.
Par exemple, si notre réseau essaie d’apprendre à réaliser un
XOR entre 2 bits, on aura en entrée bit1 et bit2 (donc 2
neurones, un pour chaque information). Si vous voulez
apprendre au réseau à estimer le prix d’un appartement, vous
aurez autant de neurones que de variables… Ou bien souvent
davantage (comme on le verra ensuite).

Tous les neurones de cette couche sont ensuite reliés à ceux


de la couche suivante.

 La couche cachée (hidden layer) ou plus souvent LES


couches cachées (couche cachée 1, couche cachée 2,
…). Il s’agit du cœur de notre perceptron, là où les
relations entre les variables vont être mises
en exergue !
Choisir le bon nombre de neurones par couche et le bon
nombre de couches est très difficile pour un data scientist et
demande une certaine expérience. Toutefois, de manière
générale, deux couches suffisent pour la plupart des
problèmes, et aller au-delà de 6 à 10 couches entraîne très
très souvent des problèmes d’overfitting (on a tellement
appris qu’on ne peut plus généraliser). En pratique, on a
souvent au moins autant de neurones par couche que ce qu’on
avait d’entrées.

 La couche de sortie (output layer) : cette couche


représente le résultat final de notre réseau,
sa prédiction.
Important : de base, les neurones de la couche de sortie n’ont
pas de signification particulière. C’est vous, en lui donnant
des exemples, qui déterminez le rôle de chaque neurone
d’entrée et de sortie. Si cela peut paraître abstrait, voici un
cas pratique :
En entrée, vous donnez les pixels d’une image (toujours dans
le même ordre). En sortie, vous avez deux neurones. Dans les
résultats attendus, vous voulez que le premier neurone fasse
1 si l’image était un chien et 0 si c’était un chat (inversement
pour le deuxième neurone : 0 et 1). Vous avez donc entraîné
votre réseau en donnant comme sens au premier neurone de
sortie “c’est un chien” et au deuxième “c’est un chat” ! Vous
interprétez donc les valeurs de sortie (par rapport à ce que
vous avez utilisé dans l’apprentissage).
3-Apprentissage :
En quoi consiste l’apprentissage automatique ?
De manière générale, un programme informatique tente de
résoudre un problème pour lequel nous avons la solution. Par
exemple : calculer la moyenne générale des étudiants, classer
les étudiants selon leur moyenne. . . Pour certains problèmes,
nous ne connaissons pas de solution exacte et donc nous ne
pouvons pas écrire de programme informatique.
Par exemple : reconnaître automatiquement des chiffres
écrits à la main à partir d’une image scannée, d´exterminer
automatiquement une typologie des clients d’une banque,
jouer automatiquement aux échecs contre un humain ou un
autre programme. . . En revanche, pour ces problèmes il est
facile d’avoir une base de données regroupant de nombreuses
instances du problème considéré. L’apprentissage
automatique consiste alors à programmer des algorithmes
permettant d’apprendre automatiquement de données et
d’expériences passées.

I- Calcul de l'erreur :

En connaissant la valeur attendue ei à la sortie d'un


perceptron pour des entrées données, on peut calculer l'écart
avec la prédiction grâce à une fonction objectif, le plus
souvent l’erreur quadratique moyenne (abréger MSE), 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 attendue,
permettant ainsi un apprentissage plus rapide. Au contraire,
l'erreur moyenne absolue (MAE) a une dérivée constante, et
donc un taux d'apprentissage qui ne varie pas :

En minimisant ces fonctions objectives, les prédictions


gagnent en précision.
II- Calcul du gradient :
Le gradient d'une fonction de plusieurs variables en un certain
point est un vecteur qui caractérise la variabilité de cette
fonction au voisinage de ce point. Défini en tout point où la
fonction est différentiable, il définit un champ de vecteurs,
également dénommé gradient. Le gradient est la
généralisation à plusieurs variables de la dérivée d'une
fonction d'une seule variable.

Le gradient ∇ permet de calculer la variation de la fonction objective par rapport à l'un


des paramètres θij
En utilisant le théorème de dérivation des fonctions
composées, la variation de la fonction objective par rapport à
l'un des poids est

Avec ∂ y ∕ ∂0 la dérivée partielle de la fonction d'activation,


et ∂ C ∕ ∂ y la dérivée partielle de la fonction objective par
rapport à la prédiction finale y. En développant et en utilisant
la règle de dérivation des sommes

∂y ∂y
= y ( 1− y ), si la fonction sigmoïde sert d'activation, ou =1− y 2
∂o ∂o
pour la tangente hyperbolique ;
∂0
= y i−1;
∂ω

Vous aimerez peut-être aussi