From be8a6e744fd0887c22cf1011e5b3f7a20807e8f0 Mon Sep 17 00:00:00 2001 From: "aliya.myaz" <aliya.myaz@hesge.ch> Date: Sun, 2 Jun 2024 02:56:42 +0200 Subject: [PATCH] back to original state (didn't want to push on master) --- report/report.qmd | 54 +++++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 37 deletions(-) diff --git a/report/report.qmd b/report/report.qmd index 4b93603..d89959d 100644 --- a/report/report.qmd +++ b/report/report.qmd @@ -23,38 +23,18 @@ format: # Introduction -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. +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. # Expérimentation @@ -77,7 +57,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 spécifiques à +En suite, nous tenterons de jouer avec les deux paramètres specifiques à **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 @@ -91,14 +71,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ésenter le meilleur des deux mondes (taux +En somme, **Adam** est censé représente 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ées à chaque fois +la descente, nous avons pris trois valeurs de $\lambda$ séparée à 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$ : @@ -128,7 +108,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. @@ -138,7 +118,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 à la fois ne pas être trop petite (sinon le nombre d'itérations deviendra +ne doit pas être à la fois 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