Vous êtes sur la page 1sur 73

Réseaux de Neurone

z
z
L’Inévitable IA

L'intelligence artificielle (IA) est un processus d'imitation


de l'intelligence humaine qui repose sur la création et
l'application d'algorithmes exécutés dans un environnement
informatique dynamique. Son but est de permettre à des
ordinateurs de penser et d'agir comme des êtres humains.
Pour y parvenir, trois composants sont nécessaires :
➢ Des systèmes informatiques
➢ Des données avec des systèmes de gestion
➢ Des algorithmes d’IA avancés (code)
Pour se rapprocher le plus possible du comportement humain,
l'intelligence artificielle a besoin d'une quantité de données
et d'une capacité de traitement élevé
En 2019,l’intelligence artificielle est sous le feu des
projecteurs.
Cette technologie se développe à grande vitesse, et ses cas
d’usage se multiplient dans tous les secteurs. Selon les
experts,l’IA est amenée a bouleverser tous les aspects de
notre société dans les années à venir.
Dans ce contexte, il semble important de
comprendre comment fonctionne réellement l’intelligence
artificielle. C’est pourquoi nous vous proposons aujourd’hui
d’en apprendre d’avantage sur les réseaux de neurones
artificiels sur lesquels reposent de nombreuses IA.
z Deep Learning
z
L’apprentissage profond

L'apprentissage profond ( deep Learning ) est un ensemble de


techniques d'apprentissage automatique qui a permis des
avancées importantes en intelligence artificielle dans les
dernières années.
Dans l'apprentissage automatique, un programme analyse un
ensemble de données afin de tirer des règles qui permettront
de tirer des conclusions sur de nouvelles données.
L'apprentissage profond est basé sur ce qui a été appelé, par
analogie, des réseaux de neurones artificiels , composés de
milliers d'unités (les neurones ) qui effectuent chacune de
petites opérations simples.
Les résultats d'une première couche de « neurones » servent
d'entrée aux calculs d'une deuxième couche et ainsi de suite
z
Fonctionnement
Au sein du cerveau humain, chaque neurone
reçoit environ 100 000 signaux électriques des
autres neurones. Chaque neurone en activité
peut produire un effet excitant ou inhibiteur
sur ceux auxquels il est connecté. Au sein d’un
réseau artificiel, le principe est similaire. Les
signaux voyagent entre les neurones. Toutefois,
au lieu d’un signal électrique, le réseau de
neurones assigne un certain poids à différents
neurones.
Un neurone qui reçoit plus de charge exercera
plus d’effet sur les neurones adjacents. La
couche finale de neurones émet une réponse à
ces signaux.
z Domaines d'application de
l'apprentissage profonde

Ces techniques se développent dans le domaine de


l'informatique appliquée aux NTIC (reconnaissance visuelle
par exemple d'un panneau de signalisation par un robot ou
une voiture autonome , et vocale notamment) à la robotique,
à la bio-informatique, la reconnaissance ou comparaison de
formes, la sécurité, la santé, etc…
la pédagogie assistée par l'informatique, et plus généralement
à l'intelligence artificielle.
L'apprentissage profond peut par exemple permettre à un
ordinateur de mieux reconnaitre des objets hautement
déformables et/ou analyser par exemple les émotions
révélées par un visage photographié ou filmé, ou analyser les
mouvements et position des doigts d'une main, ce qui peut
être utile pour traduire le langage des signes, améliorer le
positionnement automatique d'une caméra, etc… Elles sont
utilisées pour certaines formes d'aide au diagnostic médical
(ex. : reconnaissance automatique d'un cancer en imagerie
médicale), ou de prospective ou de prédiction (ex. :
prédiction des propriétés d'un sol filmé par un robot).
z
Architectures de réseaux de
neurones profonds

Il existe un grand nombre de variables d'architectures


profondes. La plupart d'entre eux sont dérivés de certaines
architectures originales. Nous allons choisir les réseaux de
neurones convolutifs (CNNs).
Quelques
z explications sur les CNNs

Les réseaux de neurones convolutifs sont à ce jour les


modèles les plus performants pour classer des images.
Désignés par l’acronyme CNN, de l’anglais Convolutional
Neural Network, ils comportent deux parties bien
distinctes. En entrée, une image est fournie sous la forme
d’une matrice de pixels. Elle a deux dimensions pour une
image aux niveaux de gris. La couleur est représentée par
une troisième dimension, de profondeur 3 pour représenter
les couleurs fondamentales [Rouge, Vert, Bleu].
La première partie d’un CNN est la partie convolutive à
proprement parler. Elle fonctionne comme un extracteur de
caractéristiques des images. Une image est passée à travers
d’une succession de filtres, ou noyaux de convolution, créant
de nouvelles images appelées cartes de convolutions(figure ci
dessous).
Certains filtres intermédiaires réduisent la résolution de
l’image par une opération de maximum local. En fin, les
cartes de convolutions sont mises à plat et concaténées en un
vecteur de caractéristiques, appelé code CNN. Ce code CNN
en sortie de la partie convolutive est ensuite branché en
entrée d’une deuxième partie, constituée de couches
entièrement connectées (perceptron multicouche).
Le rôle de cette partie est de combiner les caractéristiques
du code CNN pour classer l’image. La sortie est une
dernière couche comportant un neurone par catégorie. Les
valeurs numériques obtenues sont généralement
normalisées entre 0 et 1, de somme 1, pour produire une
distribution de probabilité sur les catégories.
z Le réseaux de
neurones
z
Historique
Le concept des réseaux de neurones artificiels fut inventé en 1943
par deux chercheurs de l’Université de Chicago : le neurophysicien
Warren McCullough, et le mathématicien Walter Pitts. Dans un article
publié dans le journal Brain Theory, les deux chercheurs présentent
leur théorie selon laquelle l’activation de neurones est l’unité de
base de l’activité cérébrale.
En 1957, le Perceptron fut inventé . Il s’agit du plus ancien
algorithme de Machine Learning, conçu pour effectuer des tâches de
reconnaissance de patterns complexes. C’est cet algorithme qui
permettra plus tard aux machines d’apprendre à reconnaître des
objets sur des images.
Malheureusement, à l’époque, les réseaux de neurones étaient
limités par les ressources techniques. Par exemple, les ordinateurs
n’étaient pas assez puissants pour traiter les données nécessaires au
fonctionnement des réseaux de neurones.
C’est la raison pour laquelle la recherche dans le domaine des
Neural Networks est restée en sommeil durant de longues
années.
Il aura fallu attendre le début des années 2010, avec l’essor du
Big Data et du traitement massivement parallèle, pour que les
Data Scientists disposent des données et de la puissance de
calcul nécessaires pour exécuter des réseaux de neurones
complexes. En 2012, lors d’une compétition organisée par
ImageNet, un Neural Network est parvenu pour la première fois à
surpasser un humain dans la reconnaissance d’image .C’est la
raison pour laquelle cette technologie est de nouveau au cœur
des préoccupations des scientifiques. A présent, les réseaux de
neurones artificiels ne cessent de s’améliorer et d’évoluer de
jour en jour.
z Neurone biologique

De façon très réductrice, un neurone biologique est une


cellule qui se caractérise par
➢ des synapses, les points de connexion avec les autres
neurones, fibres nerveuses ou musculaires ;
➢ des dendrites ou entrées du neurones ;

➢ les axones, ou sorties du neurone vers d’autres neurones ou


fibres musculaires ;
➢ le noyau qui active les sorties en fonction des stimulations en
entrée
Duz neurone biologique au neurone
formel
Un neurone formel est une représentation mathématique et
informatique du neurone biologique. Il reproduit certaines
caractéristiques biologiques, en particulier les dendrites,
axone et synapses, au moyen de fonctions et de valeurs
numériques. Les neurones formels sont regroupés en réseaux
de neurones. Grâce à des algorithmes d'apprentissage
automatique, on peut régler un réseau de neurones pour lui
faire accomplir des tâches qui relèvent de l'intelligence
artificielle.
Réseaux de Neurone Artificielle
z

Un réseau de neurones artificiels est un système informatique


matériel et / ou logiciel dont le fonctionnement est calqué sur celui
des neurones du cerveau humain.

Un réseau neuronal c’est aussi l’association, en un graphe plus ou


moins complexe, d’objets élémentaires, les neurones formels. Les
principaux réseaux se distinguent par l’organisation du graphe (en
couches, complets. . . ), c’est-à-dire leur architecture, son niveau de
complexité (le nombre de neurones, présence ou non de boucles de
rétroaction dans le réseau), par le type des neurones (leurs fonctions
de transition ou d’activation) et enfin par l’objectif visé :
apprentissage supervisé ou non, optimisation, systèmes dynamiques...
Comment fonctionne le réseau de
z
neurones artificiels ?
Au sein d’un réseau de neurones artificiels, le traitement de l’information suit
toujours la même séquence : les informations sont transmises sous la forme de
signaux aux neurones de la couche d'entrée, où elles sont traitées. À chaque
neurone est attribué un « poids » particulier, et donc une importance
différente. Associé à la fonction dite de transfert, le poids permet de
déterminer quelles informations peuvent entrer dans le système.
À l’étape suivante, une fonction dite d’activation associée à une valeur
seuil calculent et pondèrent la valeur de sortie du neurone. En fonction de
cette valeur, un nombre plus ou moins grand de neurones sont connectés et
activés.
Cette connexion et cette pondération dessinent un algorithme qui fait
correspondre un résultat à chaque entrée. Chaque nouvelle itération permet
d’ajuster la pondération et donc l’algorithme de façon à ce que le réseau
donne à chaque fois un résultat plus précis et fiable.
Comment le réseau de neurones
z
artificiels apprend ?
Par le biais d’un algorithme, le réseau de neurones artificiels permet
à l’ordinateur d’apprendre à partir de nouvelles données.
L’ordinateur doté du réseau de neurones apprend à effectuer une
tâche en analysant des exemples pour s’entraîner. Ces exemples ont
préalablement été étiquetés afin que le réseau puisse savoir ce dont
il s’agit.
Par exemple, un réseau de neurones peut être utilisé pour apprendre
à l’ordinateur à reconnaître des objets. Un grand nombre d’objets
d’une même catégorie est présenté au réseau de neurones, et
l’ordinateur apprend à reconnaître cet objet sur de nouvelles images
en analysant les patterns récurrents au sein des images d’exemple.
Ainsi, en analysant des milliers de photos de chats, le Neural
Network apprendra à reconnaître un chat sur n’importe quelle
photo.
Contrairement à d’autres types d’algorithmes, les réseaux de neurones ne
peuvent pas être programmés directement pour effectuer une tâche. A la
manière du cerveau en développement d’un enfant, la seule instruction qu’ils
ont est d’apprendre. On distingue toutefois trois méthodes d’apprentissage
distinctes.

Dans le cas de l’apprentissage supervisé, l’algorithme s’entraîne sur un


ensemble de données étiquetées et se modifie jusqu’à être capable de
traiter le dataset pour obtenir le résultat souhaité.

Dans le cas de l’apprentissage non-supervisé, les données ne sont pas


étiquetées. Le réseau de neurones analyse l’ensemble de données, et une
fonction-coût lui indique dans quelle mesure il est éloigné du résultat
souhaité. Le réseau s’adapte alors pour augmenter la précision de
l’algorithme.

Enfin, avec la méthode de l’apprentissage renforcé , le réseau de neurones


est renforcé pour les résultats positifs et sanctionné pour les résultats
négatifs. C’est ce qui lui permet d’apprendre au fil du temps, de la même
manière qu’un humain apprend progressivement de ses erreurs.
z

Perceptron a une couche


Lez perceptron (Rosenblatt,1957)
➢ Idée: modéliser la décision à l’aide d’une fonction linéaire,
suivi d’un seuil: hw(X)=Threshold(W.X) ou Treshold(Z) = 1 si Z ≥ 0,
sinon Treshold(Z) = 0 .

➢ Le vecteur de poids W correspond aux paramètres du modelés .


L'algorithme du perceptron
z

➢ L’algorithme d’apprentissage doit adapter la valeur des


paramètres de façon à ce que hw (x) soit la bonne réponse sur les
données d’entraînement.
1. Pour chaque paire(Xt, Yt)
a. calculer hw(Xt)=Tresold(W.Xt)
b. si Yt != hw(Xt)
Wi=Wi + α(Yt - hw(Xt))Xt,i
2. Retourner 1 jusqu’à l'attente d'un critère d'arrêt
➢ La mise a jour des poids est appelée la règle d’apprentissage
du perceptron, le multiplicateur a est appelé le taux
d’apprentissage
z Propriétés du perceptron
➢ Surface de séparation
➢ Le perceptron cherche donc un séparateur linéaire entre deux classes

➢ La surface de décision d'un classifieur est la surface qui sépare les deux
régions classifiées dans les deux classes différentes.
z
Propriétés du perceptron
➢ Convergence et séparabilité
➢ Si les exemples sont linéairement séparables(gauche), le perceptron est
garanti de convergé à une solution avec une erreur nulle sur l'ensemble
d'entrainement, pour tout a

➢ Sinon, pour garantir la convergence à une solution ayant la plus petite


erreur possible en entrainement, on doit décroitre le taux
d'apprentissage, par ex.
𝛼
𝑎=
1+𝛽𝑘
Courbe d'apprentissage
z

➢ La courbe d'apprentissage est la courbe de taux d'erreur en fonction


du nombre de mise à jour des paramètres.
➢ Utile pour visualiser la progression d'apprentissage

Linéairement séparable pas Linéairement séparable taux d'app. décroissant


Apprentissage vue comme la minimisation d'une perte
z

➢ Le problème d'apprentissage peut être vu comme un problème


d'optimisation
➢ Pour chaque ensemble d'entrainement on souhaite minimiser une certaine
distance Loss(Yt,hw(Xt)) entre la cible Yt et la prédiction hw(Xt)
➢ On appelle cette distance une perte

➢ Dans le cas du perceptron :


Loss(Yt,hw(Xt)) = - (Yt-hw(Xt))W.Xt
➢ Si la prédiction est bonne, le cout est 0

➢ Si la prédiction est mauvaise, la perte est la distance entre W.Xt et le seuil à


franchir pour que la prédiction soit bonne
z
Descente de gradient

➢ Le gradient donne la direction (vecteur) ayant le


taux d'accroissement de la fonction la plus élevé

f(x,y)
z
Descente de gradient

➢ Le gradient donne la direction (vecteur) ayant le


taux d'accroissement de la fonction la plus élevé

f(x,y)
z
Apprentissage vue comme la
minimisation d'une perte
➢ En apprentissage automatique on souhaite optimiser :
1
σ Loss(Yt, hw(Xt))
𝐷
𝑥𝑡 , 𝑦𝑡 ∈ 𝐷

➢ Legradient par rapport à la perte moyenne contient les dérivées


partielles :
1
σ Loss(Yt, hw(Xt))
𝐷
𝑥𝑡 , 𝑦𝑡 ∈ 𝐷

Devrait calculer la moyenne des dérivées sur tous les exemples d'entrainements avant
de faire la MAJ des paramètres
Descente
z de gradient stochastique

➢ Mettre à jour les paramètres à partir du gradient d'un exemple, choisi


aléatoirement :
- Initialiser W aléatoirement

- Pour T itérations

- Pour chaque exemple d'entrainement (Xt,Yt)


𝞉
- Wi = Wi -α Loss(Yt, hw(Xt)) , ∀ i
𝞉𝒘𝒊

➢ Cette procédure est plus efficace lorsque l'ensemble d'entrainement est grand
➢ On fait |D| mises à jour des paramètres à chaque parcours de l'ensemble
d'entrainement, plutôt qu'une seule mise à jour avec la descente du gradient normale
z
Retour sur le perceptron

➢ On utilise le gradient (dérivée partielle) pour déterminer une


direction de mise à jour des paramètres :
𝞉 𝞉
Loss(Yt, hw(Xt)) = -(Yt - hw(Xt))W.Xt = -(Yt-hw(Xt))Xt,i
𝞉𝒘𝒊 𝞉𝒘𝒊

➢ Par définition, le gradient donne la direction (locale) d'augmentation de la


plus grande perte .
➢ Pour mettre à jour les paramètres, on va dans la direction opposée à ce
𝞉
gradient : Wi = Wi - α 𝞉𝒘𝒊
Loss(Yt, hw(Xt))

➢ On obtient la règle d'apprentissage du perceptron


Wi = Wi + α(Yt – hw(Xt))Xt,i
z

Perceptron multicouches
Rappel du perceptron simple
z

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
Introduction
z

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 David Rumelhart dont le principe serait de produire une
combinaison de séparateurs linéaires permet 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.
z
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 scientiste 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 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).
Apprentissage
z
➢ 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.
La rétropropagation du gradient de l’erreur (ou backpropagation) est

un algorithme d’optimisation permettant d’ajuster les paramètres d’un réseau


de neurones multicouches pour mettre en correspondance des entrées et des
sorties référencées dans une base d’apprentissage.

Pour pouvoir entraîner ces systèmes, il faut savoir comment ajuster les
paramètres de chaque couche de neurones. La rétropropagation permet de
calculer le gradient de l’erreur pour chaque neurone, de la dernière couche
vers la première. Cela permet de corriger les erreurs selon l’importance des
éléments qui ont justement participé à la réalisation de ces erreurs.
• Étapes pour former notre

réseau:

1. Préparer l'entrée de la

fonction d'activation (somme

des produits entre les entrants

et poids).

2. Sortie de la fonction

d'activation.
z
Sum Of Products(SOP)
𝒔 = 𝑿1 ∗ 𝑾1 + 𝑿2 ∗ 𝑾2 + 𝒃

𝒔 = 𝟎. 𝟏 ∗ 𝟎. 𝟓 + 𝟎. 𝟑 ∗ 𝟎. 𝟐 + 𝟏. 𝟖𝟑 𝒔 =

𝟏. 𝟗4

Après avoir calculé le sop entre les

entrées et les poids , on va utiliser

ce soap comme entrée à la fonction

d’activation.
z
Fonction d’activation:
Dans cet exemple, la fonction d’activation sigmoïde est utilisée
.

en se basant sur le sop calculé , le « output » est


Erreur de prédiction
Après avoir obtenu les sorties prévues , la prochaine
étape consiste à mesurer l’erreur de prédiction du
réseau .

Nous pouvons utiliser la fonction d’erreur au carré


prédéfinie comme suit :

En se basant sur la sortie prévue , l’erreur de


prédiction est :
Comment
z
minimiser l’erreur de prédiction

Il y a une erreur de prédiction et elle doit être minimisée jusqu'à


atteindre une erreur acceptable.

➢ Que devons-nous faire pour minimiser l’erreur ?


➢ Il doit y avoir quelque chose à changer pour minimiser l'erreur. Dans notre
exemple, le seul paramètre à changer est le poids.

➢ Comment mettre à jour les poids ?


➢ Nous pouvons utiliser l'équation de mise à jour des poids:
𝑾𝒏𝒆𝒘: les nouveaux poids.
𝑾𝒐𝒍𝒅 : les poids actuels. [1.83, 0.5, 0.2]
η : taux d'apprentissage réseau 0.01
𝒅 : Sortie désirée. 0.03
𝒀 : sortie prévue. 0.874
𝑿 : entrée de courant à laquelle le réseau fait une fausse
prédiction. [+1, 0.1, 0.3]
z
Mise à jour des poids :
Le succès des réseaux de neurone semble s’expliquer
essentiellement par leur capacité à se prêter a la descente du
gradient et ça ,ça vient en particulier d’une formule mathématique
appeler la dérivé des fonction composer qui dans le cadre des
réseaux de neurone a été renommée algorithme de
rétropropagation ou back-propagation.

C’est cet d’ algorithme qui permet au réseaux de neurone de


calculer rapidement et efficacement les gradients qui permettrons
ensuite d’ajuster les paramètres de ces réseaux de neurone pour
mieux expliquer les données.

Ce qu’il faut savoir ce que Dans le réseaux de neurone multicouche


on a pas juste une fonction mais que notre fonction est compliquer
dans le sens ou les est obtenue en appliquant plusieurs l’une en
dissout de l’autre².
Pourquoi le back-propagation est important
z

Jusqu’à maintenant on n’a pas utilisé le back-propagation . Tous ce


qu’on a fait est la mise à jour des poids mais ça reste anonyme pour
nous car elle ne réponds pas à ces questions :

-pourquoi le nouveau poids et mieux que l’ancien ?

-quel est l’effet de chaque poids sur l’erreur ?

-comment l’augmentation et la diminution des poids affecte sur l’erreur


?
L'algorithme de rétropropagation est utilisé pour répondre à ces
questions et comprendre l'effet de chaque poids sur l'erreur de
prédiction.
Foraward vs Backward Passes:
z

➢ Lors de la formation d’un réseau de neurones ,

il y a deux passes :

➢ Foraward et backward
z
Backward Pass

➢ Travaillons avec un simple exemple :

Y=X²Z+H

Quel est l’effet sur la sortie Y étant donné un changement dans la


variable X ?

Cette question est répondue en utilisant des dérivées , Dérivée de Y par


rapport à X nous dira l’effet de changer X sur la sortie Y
z
Règle de chaîne multivariée
Erreur
z
prévue (𝝏𝑬 /𝛛𝑷𝒓𝒆𝒅𝒊𝒄𝒕𝒆𝒅) dérivé partial
Pred-sop
z
(𝝏𝑷𝒓𝒆𝒅𝒊𝒄𝒕𝒆𝒅 / 𝝏𝒔) dérivée partial
Sop-𝑊1
z
( 𝝏𝒔 / 𝛛𝑾𝟏 ) dérivée partial
Après avoir calculé chaque dérivée individuelle , nous pouvons
multiplier tous les pour obtenir une relation souhaité entre
l’erreur de prédiction et chaque poids.
z
Interprétation des dérivés:
Dans notre exemple , car les deux dérivées de w1 et w2 sont
positifs , on va diminuer les poids afin de diminuer l ’erreur
de prédiction.
z
Mise à jour de poids :
➢ Maintenant chaque poids sera mis à jour en fonction de sa dérivée
selon cette équation :

On continue la mise à jour des poids accordé à ses dérivées et reformer


le réseau jusqu’au on atteindre une erreur acceptable.
Deuxième exemple
rétropropagation avec
couche cachée
Passez avant – Neurones de couche cachée
Passe
z
avant – Erreur de prédiction
E−𝑊5
z
( 𝝏𝑬 / 𝝏𝑾𝟓 ) dérivée partial
E−𝑊5 ( 𝝏𝑬 / 𝝏𝑾𝟓 ) dérivée partial
E−𝑊5 ( 𝝏𝑬 / 𝝏𝑾𝟓 ) dérivée partial
E−𝑊5 ( 𝝏𝑬 / 𝝏𝑾𝟓 ) dérivée partial
➢ Puis on va faire le même calcul pour W6,W1 ,W2 ,W3 et
W4 . Et voilà la résultat final :
Mise à jour de poids:

Il faut poursuivre la mise à jour de poids en fonction des dérivées et


recycler le réseau
jusqu’à atteindre une erreur acceptable .

Vous aimerez peut-être aussi