Cours Perceptron
Cours Perceptron
Cours Perceptron
Chapitre 1:
Réseaux de Neurones Artificiels
INTRODUCTION
L'apprentissage automatique (en anglais : machine learning ) est un champ d'étude
de l'intelligence artificielle qui se fonde sur des approches mathématiques et
statistiques pour donner aux ordinateurs la capacité d' « apprendre » à partir de
données, c'est-à-dire d'améliorer leurs performances à résoudre des tâches sans être
explicitement programmés¹ .
Pour appliquer une méthode d’apprentissage, il est important de dispenser d’un
échantillon d’exemples contenant un nombre important d’instances de données
étiquetées ou non selon le mode d’emploi,
Il existe plusieurs types d’algorithmes d’apprentissage:
Apprentissage supervisé : les classes de chaque exemple sont prédéterminées. Le
processus se passe en deux phases. Lors de la première phase (d'apprentissage),
il s'agit de déterminer un modèle à partir des données étiquetées. La seconde
phase (de test) consiste à prédire l'étiquette d'une nouvelle donnée, connaissant
le modèle préalablement appris.
Apprentissage non supervisé: On dispose d'exemples non étiquetés et le nombre de
classes et leur nature n'ont pas été prédéterminées, on parle alors
d'apprentissage non supervisé ou clustering en anglais. L'algorithme doit
découvrir la structure plus ou moins cachée des données. Ces dernières sont
ciblées selon leurs attributs disponibles, pour les classer en
groupes homogènes d'exemples. La similarité est généralement calculée selon
une fonction de distance entre paires d'exemples,
Apprentissage par renforcement: l'algorithme apprend un comportement selon une
observation. L'action de l'algorithme sur l'environnement produit une valeur de
retour qui guide l'algorithme d'apprentissage. L'algorithme de Q-learning est un 2
exemple classique.
INTRODUCTION
Les réseaux de neurones sont placés dans la famille des
algorithmes d’apprentissage supervisés.
La majorité des réseaux de neurones possède un
algorithme « d’entraînement » qui consiste à modifier les
poids synaptiques en fonction d’un jeu de données
présentées en entrée du réseau. Le but de cet
entraînement est de permettre au réseau de neurones
d'« apprendre » à partir des exemples. Si l’entraînement
est correctement réalisé, le réseau est capable de fournir
des réponses en sortie très proches des valeurs d’origine
du jeu de données d’entraînement. Mais tout l’intérêt des
réseaux de neurones réside dans leur capacité
à généraliser à partir du jeu de test.
3
HISTORIQUE
1943, premier modèle de neurones formels par deux bio-physiciens
de Chicago : McCulloch & Pitts
1949, règle de Hebb : formulation du mécanisme d'apprentissage,
sous la forme d'une règle de modification des connexions
synaptiques.
1958, premier réseau de neurone artificiel (RNA), le Perceptron de
Rosenblatt :
Une couche `perceptive' de neurones d'entrée
Une couche `décisionnelle' de neurones de sortie
Ce réseau parvient a apprendre à identifier des formes simples et à calculer
certaines fonctions logiques.
1969, critique par Minsky & Papert : impossibilité de résoudre le
problème de XOR (Ou exclusif)
1982 : Hopefield propose les RNA recurrents (`feed-back') :
Modélisation de processus mnésiques
Werbos initie les réseaux multicouche (MLP : Multi-layer Perceptron) avec
retro-propagation des erreurs. 4
1986, Rumelhart propose et finalise les MLP,
HISTORIQUE
Durant les années suivantes, les applications de l'apprentissage
automatique se succèdent bien plus rapidement qu'auparavant.
En 2012, un réseau neuronal développé par Google parvient à
reconnaître des visages humains ainsi que des chats dans des
vidéos YouTube,
En 2015, une nouvelle étape importante est atteinte lorsque
l'ordinateur « AlphaGo » de Google gagne contre un des
meilleurs joueurs au jeu de Go,
En 2016, un système d'intelligence artificielle à base
d'apprentissage automatique nommé LipNet parvient à lire sur
les lèvres avec un grand taux de succès.
5
DOMAINE D’APPLICATIONS
Traitement des images
Identification des signatures
Reconnaissance des caractères (dactylos ou manuscrits)
Reconnaissance de la parole
Reconnaissance de signaux acoustiques (bruits sous-
marins, …)
Extraction d’un signal du bruit
Robotique (apprentissage de tâches)
Aide à la décision (domaine médical, bancaire,
management, …)
6
NEURONE BIOLOGIQUE
Le système nerveux est
composé de 1012 neurones
interconnectés. Bien qu’il
existe une grande diversité
de neurones, ils fonctionnent
tous sur le même schéma.
Ils se décomposent en trois
régions principales :
Le corps cellulaire
Les dendrites
L ’axone
7
NEURONE BIOLOGIQUE
L’influx nerveux est assimilable à un signal électrique se
propageant comme ceci :
Les dendrites reçoivent l’influx nerveux d ’autres neurones.
Le neurone évalue l’ensemble de la stimulation reçue.
Si elle est suffisante, il est excité : il transmet un signal (0/1)
le long de l ’axone.
L’excitation est propagée jusqu’aux autres neurones qui y
sont connectés via les synapses
8
NEURONE FORMEL
Soit un réseau de neurones formel avec n éléments dans la couche d'entrée,
composée de n synapses appliquant un coefficient multiplicateur au signaux
reçus. Une sommation, puis une comparaison a un seuil (θ) sont effectuées.
La Fonction de Transfert ( fonction d’activation) détermine l'état du neurone
(en sortie)
aj Yj
9
QUE PEUT-ON FAIRE AVEC LES RÉSEAUX
DE NEURONES ?
10
PERCEPTRON
11
ARCHITECTURE D’UN PERCEPTRON
Le perceptron est formée d'une première couche d'unités
(neurones) qui sont associées aux données : chaque unité correspond à
une des variables d'entrées. Plus une unité de biais qui est
toujours activée (égale à1 ). Ces unités sont reliées à une seule et
unique unité de sortie . 𝑦 = 𝜑( 𝑛0 𝑤𝑖 ∙ 𝑥𝑖 ) où 𝜑 fonction d’activation
y
𝜑
y
12
Perceptron avec 𝜑
fonction seuil
FONCTIONS D’ACTIVATIONS
La fonction d’activation opère une transformation d’une combinaison
affine des signaux d’entrée, 𝑤0 , terme constant, étant appelé le biais du
neurone et noté généralement par b. Cette combinaison affine est
déterminée par un vecteur de poids [𝑤0 , 𝑤1 , ⋯ , 𝑤𝑛 ] associé à chaque
neurone et dont les valeurs sont estimées dans la phase d’apprentissage,
Linéaire
Seuil
Signe
Sigmoïde
14
SÉPARATION LINÉAIRE
15
SÉPARATION LINÉAIRE
(a) (b)
Dans (a) les données sont séparées linéairement par une droite
(fonction linéaire) en 2 classes,
Dans (b) il faut au moins 2 droites pour séparer les données en 2
classes donc elles sont non linéairement séparables
16
MÉTHODE DE DESCENTE DU GRADIENT
Soit f une fonction d'une variable réelle à valeurs réelles, suffisamment
dérivable dont on recherche un minimum. La méthode du gradient
construit une suite qui doit s'approcher du minimum. Pour cela, on part
d'une valeur quelconque 𝑥0 et l'on construit la suite récurrente :
𝑥𝑛+1 = 𝑥𝑛 + ∆𝑥𝑛 𝑜ù ∆𝑥𝑛 = −𝛼𝑓 ′ 𝑥𝑛
avec 𝛼 paramètre de convergence
17
INCONVÉNIENTS
On remarque que 𝑥𝑛+1 est d'autant plus éloigné de
𝑥𝑛 que la pente de la courbe en est grande. On peut
décider d'arrêter l'itération lorsque cette pente est
suffisamment faible.
Les inconvénients bien connus de cette méthode sont
:
1. le choix de 𝛼 est empirique,
2. si 𝛼 est trop petit, le nombre d'itérations peut
être très élevé,
3. si 𝛼 est trop grand, les valeurs de la suite risquent
d'osciller autour du minimum sans converger,
4. rien ne garantit que le minimum trouvé est un
minimum global. 18
APPRENTISSAGE PAR DESCENTE DE
GRADIENT
19
APPRENTISSAGE PAR DESCENTE DE GRADIENT
L'erreur d'un perceptron P défini par w=(𝑤0 ,..,𝑤𝑛 ) sur un échantillon
d'apprentissage d'exemples S= (𝑥 𝑡 , 𝑟 𝑡 ) est définie en utilisant la fonction
1
d’erreur quadratique : 𝐸 = ∙ 𝑆(𝑟 𝑡 − 𝑦)2 où y est la sortie calculée pour un
2
exemple donné
𝜕𝐸 𝜕𝐸 𝜕𝑦
= ∙ = −(𝑟 𝑡 − 𝑦) ∙ 𝑥𝑖
𝜕𝑤𝑖 𝜕𝑦 𝜕𝑤𝑖
Un déplacement dans le sens opposé au gradient (flèche rose) rapproche 𝑤𝑗 de
la valeur minimisant l'erreur (point orange).
20
𝛼
ALGORITHME D’APPRENTISSAGE
Données: Base d’exemples (Base_Ex) ou échantillon d’entrainement (X, Y) où le vecteur
x = {𝑥1 , ⋯ , 𝑥𝑛 } définit par un ensemble d’attributs caractérisant les exemples , le vecteur r
représente la classe de chaque exemple.
Initialisation : α = le taux d’apprentissage ; W = {𝑤1 , ⋯ , 𝑤𝑛 } ; 𝑏𝑖𝑎𝑖𝑠 = 𝑤0
tanque test-arrêt non atteint faire
tant que ¬ fin Base_Ex faire
prenons un exemple : (𝑥 𝑡 , 𝑟 𝑡 )
𝑛
calculons sa sortie y = 𝜑(𝑤0 + 1 𝑤𝑖 𝑥𝑖 )
erreur = 𝑟 𝑡 - y
Si erreur ≠ 0 alors
Mise à jour des poids: 𝑤𝑖 𝑡+1 = 𝑤𝑖 𝑡 + α ∙ ∆𝑤 𝑡 où ∙ ∆𝑤 𝑡 = erreur. 𝑥𝑖
Fin tq
Fin tq
Cette procédure est répétée jusqu’à ce que toute la base d’exemples soit 21
correctement classée ou approximativement bien classée.
X1 X2 Classe
EXEMPLE +1 +1 +
+1,5 -0,5 +
Echantillon des exemples du tableau est +2 -2 _
représenté sur la figure ci-contre. -2 -1 _
Valeurs initiales: -2 +1 +
α = 0.2 , le vecteur poids -1 -1,5 _
22
SUITE DE L’EXEMPLE
Prenons le point P1(+1, +1) et calculons la
sortie
y = 𝜑(𝑤0 + 𝑤1 𝑥1 + 𝑤2 𝑥2 ) =
𝜑(0+1*1+0,5*1) = 𝜑(1,5) =1
classe positive
Donc le point P1 est correctement classé
Pas de mise à jour
La sortie associée au point P2(+2,-2) est 1
le point P2 est donc mal classé
Mise à jour des poids
w0 = w0−0.2∗1 = -0,2
w1 = w1−0.2∗2 = 0.6
w2 = w2−0.2∗(−2) = 0.9
Modification de la frontière de décision
23
SUITE DE L’EXEMPLE
Le point P3(-1, -1.5) est bien classé donc pas
de mise à jour
Le point P4(-2, -1) est bien classé donc pas
de mise à jour
Le point P5(-2, 1) est mal classé donc mise à
jour des poids:
w0 = w0 + 0.2∗1 = 0
w1 = w1 + 0.2∗(−2) = 0.2
w2 = w2 + 0.2∗1 = 1.1
Modification de la droite
Le point P6(+1.5, -0.5) est mal classé donc
mise à jour des poids:
w0 = w0 + 0.2∗1
w1 = w1+ 0.2∗1.5
w2 = w2 + 0.2∗(−0.5)
Modification de la droite 24
SIMULATION DE LA FONCTION ET LOGIQUE PAR
APPRENTISSAGE
« OU » logique
26
LIMITES DU PERCEPTRON : LA FONCTION LOGIQUE
OU EXCLUSIF (XOR)
C2 (S = -1): – +
{(+1;+1); (-1;-1)}
« XOR » logique
27
PROBLÈME DU XOR (OU EXCLUSIF)
Le perceptron est incapable de distinguer les modèles non
linéairement séparables [Minsky 69] c’est le cas du XOR
y y y
Selon
la topologie de réseau utilisé, différentes frontières
de décisions sont possibles
Réseau avec une couche cachée et une couche de sortie :
frontières convexes
Deux couches cachées ou plus : frontières concaves
Le réseau de neurones est alors un approximateur universel
Nombre de poids (donc de neurones) détermine
directement la complexité du classifieur
Détermination de la bonne topologie est souvent ad hoc,
par essais et erreurs
31
QUELQUES FORMES DE FRONTIÈRES DE
DÉCISION
32
NOMBRE DE NEURONES SUR LA COUCHE
CACHÉE
34
a1 Y1
X0=1
Y2
X1
Y3
X2
Y4
36
Propagation de l’erreur
RÉTRO-PROPAGATION DES ERREURS
(GRADIENT)
Le principe de l'algorithme est, comme dans le cas du perceptron
linéaire, de minimiser une fonction d'erreur
Apprentissage du perceptron multicouche: déterminer les poids
de tous les neurones 𝑤0 , 𝑤1 ⋯ , 𝑤𝑛
φ φ
38
CALCUL DE L’ERREUR : FORME GÉNÉRALE
39
CALCUL DE L’ERREUR
40
DÉVELOPPEMENT DE L’ERREUR
41
MISE À JOUR DES VALEURS DES POIDS
42
RÈGLE DELTA
43
CALCUL DE L’ERREUR:
AU NIVEAU DE LA COUCHE CACHÉE
44
CALCUL DE L’ERREUR:
AU NIVEAU DE LA COUCHE CACHÉE
45
CALCUL DE L’ERREUR:
AU NIVEAU DE LA COUCHE CACHÉE
46
DEUX TYPES D’APPRENTISSAGE
1. Apprentissage par « batch »:
1 𝑡
Guidé par l'erreur quadratique moyenne ( 𝐸 = 𝑡𝐸 )
𝑁
Mise à jour (Correction ) des poids une fois à chaque
époque (itération), en calculant l'erreur pour tout le jeu
(échantillon) de données d’apprentissage
Stabilité et Convergence de l’algorithme
2. Apprentissage « online »
Correction des poids pour chaque présentation de données,
donc N corrections de poids par époque
Guidé par l'erreur quadratique de chaque donnée (Et )
Requiert la permutation de l'ordre de traitement à chaque
époque pour éviter les mauvaises séquences
Risque d’instabilité et non convergence 47
ALGORITHME DE RÉTRO-PROPAGATION
Soient les données d’entrainement 𝑥𝑖 𝑡 et les sorties désirées 𝑟𝑗 𝑡
48
SUR-APPRENTISSAGE (OVERFITTING)
Le sur-apprentissage (overfitting) a lieu lorsque le modèle est trop
conforme aux données d'apprentissage et donc potentiellement
incorrect sur de nouvelles données.
50
EXEMPLE
Soit un réseau de neurones composé de 2 entrées, 1 couche cachée
(2 neurones) et 2 sorties, plus les biais associés aux neurones de la
couche cachée et la couche de sortie.
Sur la figure ci-dessous sont indiquées les valeurs des poids
initiales, des biais, l’exemple d’entrainement (x1, x2) = (0.05, 0.1) et
les sorties désirées (r3, r4) = (0.01, 0.99).
a1 a3
x1
y1 y3
a2 a4
x2
y2 y4
b2
b3
b1 b4
51
SUITE EXEMPLE
Forward Pass
Calcul de la sortie de chaque neurone de la couche cachée:
𝑦1 = 𝜑 𝑎1 = 𝜑 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏1 =
1
𝜑 0.15 × 0.05 + 0.2 × 0.1 + 0.35 = 𝜑 0.3775 = 1+𝑒 −0.3775 = 0.5932
𝑦2 = 𝜑 𝑎2 = 0.5968
Calcul de la sortie de chaque neurone de la couche de sortie:
𝑦3 = 𝜑 𝑎3 = 𝜑 𝑤5 𝑦1 + 𝑤6 𝑦2 + 𝑏3 =
1
𝜑 0.4 × 0.5932 + 0.45 × 0.5968 + 0.6 = 𝜑 1.1076 = 1+𝑒 −1.1076 =
0.7516
𝑦4 = 𝜑 𝑎4 = 0.7732
Calcul de l’erreur totale:
𝑒1 = 𝑟3 − 𝑦3 = 0.01 − 0.7516
𝑒2 = 𝑟4 − 𝑦4 = 0.99 − 0.7732
1 52
𝐸𝑡 = (𝑒 2 + 𝑒2 2 )
2 1
SUITE EXEMPLE
Backward Pass : calcul des erreurs au niveau des couches de sortie et
cachée
Couche sortie: nous voulons savoir dans quelle mesure un changement
𝜕𝐸
en 𝑤5 affecte l’erreur totale 𝑡 ,
𝜕𝑤5
𝜕𝐸𝑡 𝜕𝐸 𝜕𝑦 𝜕𝑎 𝜕𝑎
= 𝑡 ∙ 3 ∙ 3 = 𝛿3 ∙ 3 ,
𝜕𝑤5 𝜕𝑦3 𝜕𝑎3 𝜕𝑤5 𝜕𝑤5
développons chaque terme de cette expression
1 1
𝐸𝑡 = (𝑒1 2 + 𝑒2 2 ) = ( 𝑟3 − 𝑦3 2 + (𝑟4 −𝑦4 )2 )
2 2
𝜕𝐸𝑡
𝜕𝑦3
= − 𝑟3 − 𝑦3 = − 0.01 − 0.7516 = 0.7416
1 𝜕𝑦3
𝐶𝑜𝑚𝑚𝑒 𝑦3 = 𝜑 𝑎3 =
1+𝑒 −𝑎3
alors 𝜕𝑎3
= 𝑦3 1 − 𝑦3 = 0.1867
𝜕𝑎3
Aus𝑠𝑖, 𝑎3 = 𝑤5 𝑦1 + 𝑤6 𝑦2 + 𝑏3 𝑎𝑙𝑜𝑟𝑠
𝜕𝑤5
= 𝑦1 = 0.5932
𝜕𝐸𝑡
𝑤′5 = 𝑤5 − 𝛼. = 𝑤5 + 𝛼. ∆𝑤5
𝜕𝑤5
𝜕𝐸𝑡
= 0.7416 × 0.1867 × 0.5932 = 0.0821
𝜕𝑤5 53
Mise à jour du poids 𝑤5 : 𝑤′5 = 0.4 − 0.5 × 0.0821 = 0.35895
SUITE EXEMPLE x1
a1
y1
a3
y3
Tant que le critère d’arrêt (la moyenne des erreurs au carré ; appelée MSE
: mean square error ; est inférieure à un seuil préétablie) n’est pas atteint,
continuer le processus de calcul jusqu’à convergence.
55
RECONNAISSANCE FACIALE
La reconnaissance faciale est une phase importante dans de
nombreux systèmes biométriques, de sécurité et de surveillance,
ainsi que dans des systèmes d'indexation d'image et de vidéo. La
détection de l‘oeil. Initialement, l'algorithme a besoin de
beaucoup d'images positives (images des yeux) et d'images
négatives (images sans yeux) pour former le classifieur.
56
RECONNAISSANCE DE CARACTÈRES
RESEAU b
Σ f
c
z 57
IMPLÉMENTATION
Python dispose d’un package « scikit-learn »
propre à la mise en œuvre de programmes
utilisant les techniques de l’apprentissage
automatique.
58