From 2a38f331a8fbcb8b61ae94060ea39e654e329438 Mon Sep 17 00:00:00 2001 From: "aliya.myaz" <aliya.myaz@hesge.ch> Date: Sun, 2 Jun 2024 02:59:28 +0200 Subject: [PATCH] introduction updated & spelling errors fixed --- report/report.qmd | 54 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/report/report.qmd b/report/report.qmd index d89959d..4b93603 100644 --- a/report/report.qmd +++ b/report/report.qmd @@ -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 -- GitLab