Skip to content
Snippets Groups Projects
Commit 2a38f331 authored by aliya.myaz's avatar aliya.myaz
Browse files

introduction updated & spelling errors fixed

parent 45acd9bd
No related branches found
No related tags found
No related merge requests found
Pipeline #32482 failed
......@@ -23,18 +23,38 @@ format:
# Introduction
Dans le cadre de ce travail pratique, nous étions amenés à nous familiariser
avec le concept de la descente de gradient dans le contexte de l’apprentissage
machine et l’intelligence artificielle.
La descente de gradient (le concept en lui-même ainsi que les divers
algorithmes) est utilisée dans l’entraînement des réseaux neuronaux lors de la
rétropropagation ("Backpropagation"). En bref, la rétropropagation consiste à
"remonter" dans le réseau depuis la couche de sortie en direction de la couche
d’entrée afin d’ajuster les poids de chaque neurones qui ont contribué à un
résultat faussé de sorte à pouvoir corriger le réseau. Cette correction
s’effectue grâce à une descente de gradient sur une fonction, dite de "coût",
qui représente l’erreur commise lors d’une mauvaise classification.
Dans le cadre (subtilement élargi) de ce travail pratique, nous étions amenés à
nous familiariser avec le concept de la descente de gradient dans le contexte de
l’apprentissage machine et l’intelligence artificielle.
En effet, parmi d’autres utilités hautement majeures, la descente de gradient
(le concept en lui-même ainsi que les divers algorithmes) est utilisée dans
l’entraînement des réseaux neuronaux lors de la rétropropagation ("backpropagation").
En bref, la rétropropagation consiste à "remonter" dans le réseau depuis la couche
de sortie en direction de la couche d’entrée. Cette remontée permet d’ajuster les
poids des neurones ayant contribué à un résultat faussé de sorte à optimiser les
performances du modèle. Cette correction consiste plus concrètement en
l’optimisation des paramètres d’une fonction dite de "coût", qui représente l’écart
entre les prédictions du réseau et les valeurs attendues. Il s’agit donc en fait
d’un problème de minimisation d’erreur.
Or l’essence même de la descente de gradient réside dans sa capacité à orienter
un processus d'optimisation vers un minimum (au moins local) en ajustant
itérativement les paramètres d'un modèle ou variables d'une fonction. Cependant,
ce voyage est jonché de multiples pièges que nous avons inévitablement rencontré
dans notre exploration.
Car en effet, ayant compris l’importance de la descente de gradient, nous avons
voulu à travers ce rapport (de notre propre volonté), explorer en détail
différentes facettes de cet outil, de ses paramètres à ses implications pratiques,
sur des fonctions particulières et une fonction de coût réelle.
Perpendiculairement à la comparaison des fonctions, ce sont les méthodes de
descente qui ont été confrontées, nous menant à méditer les subtilités de chacune
d’entre elles.
Aussi, nous souhaitons-vous un bon voyage dans l’univers merveilleux de ce rapport
immersif, et vous prions de vous laisser porter au-travers des dunes par les
descentes de gradient, les plus rapides comme les plus erratiques et aventureuses.
# Expérimentation
......@@ -57,7 +77,7 @@ tenter d'étudier l'effet du _learning rate_ $\lambda$ sur cet algorithme et les
raisons pour lesquelles sa valeur devra diverger par rapport aux trois autres
méthodes.
En suite, nous tenterons de jouer avec les deux paramètres specifiques à
En suite, nous tenterons de jouer avec les deux paramètres spécifiques à
**Adam**, $\beta_{1}$ et $\beta_{2}$, afin d'essayer de visualiser la manière
dont ces deux paramètres permettent de rendre le _learning rate_ dynamique
(c'est-à-dire l'ajuster en fonction des asymétries possiblement introduites par
......@@ -71,14 +91,14 @@ Les paramètres d'**Adam** permettent aussi d'émuler un comportement d'inertie
présent dans les méthodes **Momentum** et **Nesterov** à l'aide d'un calcul
des moyennes mobiles.
En somme, **Adam** est censé représente le meilleur des deux mondes (taux
En somme, **Adam** est censé représenter le meilleur des deux mondes (taux
d'apprentissage variable par composante et l'inertie qui permet de pouvoir passer
au-delà de certains minimums locaux dans le but d'en trouver un global).
## Effet du taux d'apprentissage $\lambda$ -- descente simple
Pour pouvoir illustrer l'effet du taux d'apprentissage sur le comportement de
la descente, nous avons pris trois valeurs de $\lambda$ séparée à chaque fois
la descente, nous avons pris trois valeurs de $\lambda$, séparées à chaque fois
d'un ordre de grandeur pour rendre la visualisation plus claire. Les exemples
ci-dessous ont été effectués sur la fonction $f$ :
......@@ -108,7 +128,7 @@ Variation de $\lambda$ lors de la descente simple
::::
Dans le cas de la @fig-base-high-lr, nous pouvons voir que suite aux grands pas
effectués à chaque itération, la trajectoire est saccadée même si le minimum
effectués à chaque itération, la trajectoire est saccadée, même si le minimum
est tout de même atteint. Le problème qui peut survenir suite à un $\lambda$ si
grand est le fait de potentiellement passer au-delà d'un fossé qui puisse contenir
le minimum recherché. Ce cas sera illustré plus tard.
......@@ -118,7 +138,7 @@ le minimum recherché. Ce cas sera illustré plus tard.
A travers les exemples présenté sur la @fig-basegd-lr, nous pouvons facilement
se convaincre que le bon choix de la valeur du taux d'apprentissage, comme
beaucoup de choses dans la vie, repose sur un compromis. La valeur de $\lambda$
ne doit pas être à la fois trop petite (sinon le nombre d'itérations deviendra
ne doit à la fois ne pas être trop petite (sinon le nombre d'itérations deviendra
énorme), ni trop grande (risque de rater un minimum, en "sautant" par-dessus).
Dès lors, la valeur du taux d'apprentissage choisie pour les algorithmes de
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment