Machine Learning
Pr. Safae Berrichi
[Link]@[Link]
Faculté des Sciences Juridiques, Économiques et Sociales, 2024/2025
Réseaux de neurones 07
Apprentissage
Réseaux de neurones
supervisé
‘
Perceptron multicouches
•
Réseaux de neurones
Le perceptron uni-couche peut approximer uniquement les ’
fonctions linéaires.
• Cependant, il est incapable d’approximer avec des fonctions
non-linéaires.
• En utilisant des couches intermédiaires (cachées) entre les
entrées et les sorties, on peut faire la régression et la
classification non-linéaires.
• En utilisant 2 couches, par exemple, les sorties de la première
couche seront les entrées de la seconde couche.
Pr. Safae Berrichi 3
Apprentissage
Réseaux de neurones
supervisé
‘
Perceptron multicouches
Réseaux de neurones
’
Couche d’entrée
Contenant de neurones ayant même nombre de variables du
vecteur d’entré utilisé
Couche cachée
Contenant de neurones, qui reçoivent de
l’information de la couche précédente et la
transmet à la couche adjacente qui vient juste Couche de sortie
après. Contenant de neurones de sortie, ayant
Le nombre de neurones de la couche cachée même nombre que le nombre de
peut être déterminé par une heuristique classes
Pr. Safae Berrichi 4
Apprentissage
Réseaux de neurones
supervisé
‘
Perceptron multicouches
•
Réseaux de neurones
On distingue deux familles de réseaux de neurones : ’
Pr. Safae Berrichi 5
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Perceptron multicouches
’
Architecture d’un réseau complètement connecté avec une seule couche cachée
Pr. Safae Berrichi 6
Apprentissage
Réseaux de neurones
supervisé
‘
Perceptron multicouches
•
Réseaux de neurones
La représentation matricielle de ce système est : ’
où 𝑊 = (𝑤𝑖𝑗 ) 0≤𝑖≤𝑞 et V= (𝑣𝑘𝑖 )1≤𝑖≤𝑚 représentent les matrices des poids à estimer.
0≤𝑗≤𝑛 0≤𝑖≤𝑞
Pr. Safae Berrichi 7
Apprentissage
Réseaux de neurones
supervisé
‘
Perceptron multicouches
Réseaux de neurones
Un réseau de neurones R est défini par : ’
• Le nombre de couches (à choisir)
• Le nombre de neurones par couche (à choisir)
• Les fonctions d’activation (à choisir)
• L’ensemble de tous les poids relatifs aux neurones (à estimer).
Les réseaux de neurones sont tous généralement font appel à deux phases : la phase d’apprentissage et la
phase de test.
La phase d’apprentissage, on utilise un ensemble d’exemples, appelé ensemble d’apprentissage, sur lequel
le réseau va s’entraîner et adapte ses paramètres jusqu’à la stabilisation, il est très important que cet
ensemble soit suffisamment riche.
La phase de test sert à vérifier la justesse et la précision du calcul, en utilisant des exemples qui
n’appartiennent pas à l’ensemble d’apprentissage.
Pr. Safae Berrichi 8
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Perceptron multicouches : Apprentissage ’
L'apprentissage est une phase du développement d'un réseau de neurones durant laquelle le comportement
du réseau est modifié jusqu'à l'obtention du comportement désiré.
Le comportement du réseau est modifié c à d les poids synaptique se modifient au fur et à mesure
L'obtention du comportement désiré c à d la fonction coût devient minimale
Pr. Safae Berrichi 9
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Perceptron multicouches : Apprentissage ’
Création du modèle :
Pr. Safae Berrichi 10
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Perceptron multicouches : Apprentissage
Création du modèle : Utilisation de la fonction d’activation softmax ’
• Dans le cadre de la classification binaire, le modèle aura un seul neurone de sortie, et ce neurone produira
la probabilité associée à la classe positive. Cette probabilité est censée être comprise dans l'intervalle [0,
1], ce qui fait de la fonction d'activation sigmoïde le choix par défaut.
• Enfin, dans le cadre de la classification multi-classes, un neurone est associé à chaque classe de sortie, et
chaque neurone est censé produire la probabilité de la classe correspondante. Dans ce contexte, les valeurs
de sortie doivent être comprises entre 0 et 1, et leur somme doit être égale à 1. À cet effet, nous utilisons
la fonction d'activation softmax, définie comme suit :
Pr. Safae Berrichi 11
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Perceptron multicouches : Apprentissage
Création du modèle : Utilisation de la fonction d’activation softmax ’
En vous basant sur ce que nous avons vu, pouvez-vous expliquer le nombre de paramètres retournés par
[Link]() ci-dessus ?
Pr. Safae Berrichi 12
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Perceptron multicouches : Apprentissage
Solution ’
• Notre couche d'entrée est composée de 10 neurones, et notre première couche est entièrement connectée.
Ainsi, chacun de ces neurones est connecté à un neurone de la couche cachée par un paramètre, ce qui
donne 10 x20=200. De plus, chaque neurone de la couche cachée a son propre paramètre de biais, ce qui
ajoute 20 paramètres supplémentaires. Nous avons ensuite 220 paramètres, comme indiqué par
[Link]() pour la couche "dense (Dense)".
• De la même manière, pour la connexion des neurones de la couche cachée à ceux de la couche de sortie,
le nombre total de paramètres est 20 x 3 =60 pour les poids, plus 3 paramètres supplémentaires pour les
biais. Dans l'ensemble, nous avons donc 220+63=283 paramètres dans ce modèle.
Pr. Safae Berrichi 13
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Fonction Coût
’
Afin d’entraîner ces modèles (i.e. d’ajuster leurs paramètres pour qu’ils s’adaptent aux données), nous devons
définir une fonction de coût (aussi appelée fonction de perte, ou loss function) à optimiser. Une fois cette
fonction choisie, l’optimisation consistera à régler les paramètres du modèle de manière à la minimiser.
La fonction coût mesure l’écart entre la sortie théorique
désirée et la sortie évaluée par le réseau.
Pour mesurer la performance de l’approximation deux
fonctions de pertes standard, à savoir l’erreur quadratique
moyenne (principalement utilisée pour la régression) et la
fonction de perte logistique (utilisée en classification).
Pr. Safae Berrichi 14
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Fonction Coût
1. Erreur quadratique moyenne ’
L’erreur quadratique moyenne (ou Mean Squared Error, MSE) est la fonction de perte la plus couramment
utilisée dans les contextes de régression. Elle est définie comme suit :
Sa formulation quadratique tend à pénaliser fortement
les grandes erreurs.
Pr. Safae Berrichi 15
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Fonction Coût
2. Perte logistique (cross-entropy ) ’
• La perte logistique est la fonction de perte la plus largement utilisée pour entraîner des réseaux
neuronaux dans des contextes de classification binaire ou multi-classes.
• Pour un problème de classification multi-classes avec C classes,
l'entropie croisée est généralement exprimée comme la somme des
pertes logarithmiques pour chaque classe. Si y est l'étiquette réelle et
pi est la probabilité prédite pour la classe i, la fonction de perte
d'entropie croisée est :
Pr. Safae Berrichi 16
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
’
Estimation des poids
• Pour trouver les poids qui définissent le meilleur réseau R (autrement dit la meilleure fonction F), il
suffit de minimiser l’erreur E considérée comme une fonction des poids 𝑃 = 𝑎1,𝑎2,⋯ .
• Pour cela, on utilise la méthode d’optimisation appelée la descente de gradient :
• On part de poids initiaux 𝑃0 = 𝑎1,𝑎2,⋯ , par exemple choisis au hasard.
• On fixe un pas 𝛿,et on construit par itération des poids 𝑃𝑘 selon la formule de récurrence :
• A chaque itération, l’erreur 𝐸(𝑃𝑘) diminue. On s’arrête au bout d’un nombre d’itérations fixé à l’avance
Pr. Safae Berrichi 17
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
’
Estimation des poids : exemple régression
= a ou b
Pr. Safae Berrichi 18
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
’
Estimation des poids :
TP3 : exemple simple d’implémentation/visualisation de la
descente de gradient pour un simple perceptron
(descent_gradient_Simple.ipynb)
Pr. Safae Berrichi 19
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
’
Estimation des poids : Rétropropagation
• Le minimum de la fonction de perte d’un réseau de neurone MLP n’est pas très facile à localiser car
ce n’est pas une fonction facile à différencier.
• Dans un MLP, la sortie dépend de tous les poids, donc l’erreur obtenue au dernier nœud de sortie
dépend également de tous les poids.
• Pour calculer la dérivée de la fonction de perte par rapport aux poids, nous devons rétropropager
l’erreur jusqu’au nœud d’entrée à partir du nœud de sortie.
• La rétropropagation est un algorithme qui permet de calculer le gradient d’un MLP. C’est un des
éléments clé de la force des réseaux de neurones Pr. Safae Berrichi 20
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
’
Estimation des poids : Rétropropagation
Grace à cette chaine de gradients, on peut alors mettre à jour
les paramètres de chaque couche de telle sorte à ce qu’ils
minimisent l’erreur entre la sortie du modèle et la réponse
attendue.
Pr. Safae Berrichi 21
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
’
Estimation des poids : Rétropropagation
On doit corriger itérativement les poids pour améliorer les sorties du neurone
𝝏𝑬 ∗
On doit trouver les poids w* qui minimise l’erreur quadratique (𝒘 ) = 𝟎
𝝏𝒘
E
Utiliser la méthode de gradient W ( r ) (t + 1) = W ( r ) (t ) −
W ( r )
Pr. Safae Berrichi 22
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
’
Application
Input Output
I1 =0,05 o1 =0,01
I2=0,10 o2=0,99
Pr. Safae Berrichi 23
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
Application ’
Input Output
I1 =0,05 o1 =0,01
I2=0,10 o2=0,99
Pr. Safae Berrichi 24
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
Application ’
Input Output
I1 =0,05 o1 =0,01
I2=0,10 o2=0,99
Pr. Safae Berrichi 25
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
Application ’
Input Output
I1 =0,05 o1 =0,01
I2=0,10 o2=0,99
Pr. Safae Berrichi 26
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
Application ’
Pr. Safae Berrichi 27
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
Application ’
Pr. Safae Berrichi 28
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
Application ’
Pr. Safae Berrichi 29
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
Application ’
Pr. Safae Berrichi 30
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Apprentissage : Optimisation
Application ’
Pr. Safae Berrichi 31
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Estimation des poids : Descente de gradient
• ’
Très lent si le jeu de données est volumineux, car
chaque mise à jour nécessite un parcours complet des
données.
• Moins efficace pour des fonctions de coût non
convexes, car il reste souvent bloqué dans des minima
locaux.
➔lors d’un descente de gradient, les paramètres du modèle sont mis à jour une fois par epoch, ce qui
signifie qu’un passage complet sur l’ensemble des données est nécessaire avant la mise à jour. Lorsque
l’on traite de grands jeux de données, cela constitue une forte limitation, ce qui motive l’utilisation de
variantes stochastiques. Pr. Safae Berrichi 32
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Estimation des poids : Descente de gradient stochastique
’
Pour diminuer la quantité de calculs, l’idée est de considérer à chaque itération un seul 𝑔𝑟𝑎𝑑 𝐸𝑖 à la
place de 𝑔𝑟𝑎𝑑 𝐸
➢ On part d’un point 𝑃0
➢ On calcule 𝑃1 = 𝑃0 - 𝛿 𝑔𝑟𝑎𝑑 𝐸1 (𝑃0 à partir de la première donnée 𝑋1,𝑧1)
➢ On calcule 𝑃2 = 𝑃1 - 𝛿 𝑔𝑟𝑎𝑑 𝐸2 (𝑃1 utilise seulement l’erreur locale 𝐸2)
➢ On itère jusqu’à 𝑃𝑁 = 𝑃𝑁-1 - 𝛿 𝑔𝑟𝑎𝑑 𝐸𝑁 (𝑃𝑁-1 utilise seulement l’erreur locale 𝐸𝑁)
➢ On calcule 𝑃𝑁+1 = 𝑃𝑁 - 𝛿 𝑔𝑟𝑎𝑑 𝐸1 (𝑃𝑁 on recommence pour 𝑃𝑁 avec l’erreur locale 𝐸1)
➢ On s’arrête au bout d’un nombre d’étapes fixé à l’avance ou lorsque l’on est suffisamment proche du
minimum Pr. Safae Berrichi 33
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Estimation des poids : Descente de gradient par lots
’
• La descente de gradient par lots (ou mini-lots, mini-batch) est une méthode intermédiaire entre la
descente de gradient classique et la descente de gradient stochastique.
• A chaque itération, on utilise un paquets de gradients de taille k :
• Pour 𝑃𝑙+2, on repart de 𝑃𝑙+1 et on utilise le gradient de la fonction 𝐸𝑗+𝑘+1 + ⋯+ 𝐸𝑗+2𝑘
• Au bout de N/k itérations, on aura parcouru tout le jeu de données (une époque).
Pr. Safae Berrichi 34
Apprentissage
Réseaux de neurones
supervisé
Pr. Safae Berrichi 35
Apprentissage
Réseaux de neurones
supervisé
Optimiseur
‘ Réseaux de neurones
Apprentissage : Optimisation
Avantages Inconvénients ’ Différence de fonctionnement
Simple à comprendre, direct et Convergence lente, sensible Effectue la mise à jour des poids
SGD efficace pour des problèmes aux choix du taux après chaque échantillon, ce qui peut
convexes d'apprentissage rendre la convergence plus bruyante.
Modifie le taux d'apprentissage pour
Adaptatif, améliore les Le taux d'apprentissage
chaque paramètre en fonction des
Adagrad performances sur des données devient très petit après
gradients passés, ce qui peut ralentir
rares quelques itérations
l'apprentissage au fil du temps.
Convient aux problèmes de Utilise une moyenne mobile des carr
Le paramètre β\betaβ nécessit
RMSprop gradients bruyants, bon pour les és des gradients pour ajuster les taux
e une attention particulière
réseaux récurrents d'apprentissage.
Très populaire, rapide et robuste, Peut être sensible aux hyperp
Combine les avantages des
Adam adapté pour des modèles aramètres, nécessite une fine-
algorithmes précédant
complexes tuning
Pr. Safae Berrichi 36
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
’
Application_RNA_IRIS_Dataset.ipynb
Pr. Safae Berrichi 37
Apprentissage
Réseaux de neurones
supervisé
•
Régularisation ‘ Réseaux de neurones
’
Les réseaux de neurones artificiels (RNA) sont des modèles puissants capables d'apprendre des
représentations complexes des données. Cependant, ces modèles peuvent parfois souffrir du
surapprentissage (overfitting), où ils s'ajustent trop bien aux données d'entraînement, perdant ainsi leur
capacité à généraliser sur de nouvelles données.
• Pour contrer ce phénomène, des techniques de régularisation sont utilisées. Elles permettent d'améliorer
la capacité de généralisation du modèle et d'éviter le surapprentissage.
Techniques courantes de régularisation :
• Early Stopping : Arrêter l'entraînement avant que le modèle ne commence à surapprendre.
• Dropout : Désactiver aléatoirement certains neurones pendant l'entraînement pour rendre le modèle
plus robuste.
Pr. Safae Berrichi 38
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Régularisation : Early Stopping
’
Définition : Early stopping est une technique qui arrête l'entraînement d'un modèle de réseau de neurones
avant qu'il n'atteigne la convergence totale pour éviter le surapprentissage.
Mécanisme :
• L'entraînement s'arrête lorsqu'il n'y a plus d'amélioration dans l'erreur de validation pendant un certain
nombre d'epochs.
• Il prévient le modèle d'apprendre trop bien les détails des données d'entraînement, ce qui pourrait
réduire sa capacité à généraliser.
Pr. Safae Berrichi 39
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Régularisation : Early Stopping
’
• Loss sur les données d'entraînement : Elle continue généralement de diminuer à mesure que
l'entraînement progresse.
• Loss sur les données de validation : Elle mesure la performance du modèle sur des données qu'il n'a
pas vues durant l'entraînement.
Pr. Safae Berrichi 40
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Régularisation : Early Stopping
’
Processus :
1. Surveiller l'erreur de validation pendant l'entraînement.
2. Si l'erreur ne s'améliore pas pendant un certain nombre d'epochs (appelé patience), arrêter
l'entraînement.
3. Rétablir les poids du modèle au point où l'erreur de validation était la plus faible.
Paramètres clés :
• patience : Nombre d'epochs sans amélioration avant l'arrêt.
• min_delta : Seuil minimal de changement pour considérer l'amélioration
Pr. Safae Berrichi 41
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Régularisation : Early Stopping
’
Pr. Safae Berrichi 42
Apprentissage
Réseaux de neurones
supervisé
•
‘ Réseaux de neurones
Régularisation : Dropout
’
L’idée derrière le DropOut est d’éteindre certains neurones pendant l’apprentissage. Les neurones
désactivés changent à chaque minibatch de sorte que, globalement, tous les neurones sont
entraînés pendant tout le processus.
Pr. Safae Berrichi 43
Apprentissage
Réseaux de neurones
supervisé
‘ Réseaux de neurones
Régularisation : Dropout
’
Pendant l'entraînement, chaque neurone a une probabilité (appelée taux de dropout) d'être désactivé.
Ce taux est généralement fixé entre 20% et 50%.
Pr. Safae Berrichi 44
Apprentissage
Réseaux de neurones
supervisé
‘
Inconvénients
Réseaux de neurones
’
Les mauvaises performances d’un réseau peuvent être dues aux raisons suivantes :
➢ Un mauvais choix des poids initiaux qui fait qu’on tombe sur des points selles. Il faut tester différentes
valeurs initiales pour atteindre des minimums locaux
➢ Une taille insuffisante de l’ensemble d’apprentissage (sous apprentissage).
➢ Un nombre insuffisant d’itérations (sous apprentissage).
➢ Un pas 𝛿 trop grand ou trop petit (sous apprentissage).
➢ Une mauvaise conception du réseau (nombre de neurones ou de couches inadéquat).
➢
Pr. Safae Berrichi 45
Apprentissage
Réseaux de neurones
supervisé
Conclusion
‘ Réseaux de neurones
’
Pour construire un réseau de neurones, il faut :
➢ Définir l’architecture du réseau (le nombre de couches et le nombre de neurones par couche)
➢ Choisir les fonctions d’activation
➢ Disposer d’un ensemble d’apprentissage pour estimer les poids
➢ Choisir les poids initiaux
➢ Choisir les paramètres de la méthode de descente de gradient
Conclusion
Pr. Safae Berrichi 46