Communauté  • Livre d'or
Chats noirs.jpg Actualités, astuces, interview... Venez lire la gazette de ce printemps de Vikidia ! DessinInterview.png

Fichier:Gradient descent.gif

Aller à la navigation Aller à la recherche

Gradient_descent.gif(360 × 292 pixels, taille du fichier : 1,51 Mio, type MIME : image/gif, en boucle, 50 trames)

Ce fichier provient de Wikimedia Commons. Il peut être utilisé par d'autres projets. Sa description sur sa page de description est affichée ci-dessous.

Description

Description
English: Gradient descent is a simple method to find the minimum of a function, where at each iteration a small step is made in the direction of the steepest descent. It tends to get stuck in a local minimum, so it is often run with several initial conditions.
Date
Source https://twitter.com/j_bertolotti/status/1121054414066810881
Auteur Jacopo Bertolotti
Autorisation
(Réutilisation de ce fichier)
https://twitter.com/j_bertolotti/status/1030470604418428929

Mathematica 11.0 code

f = Evaluate[x^2 + y^2 + Total@Table[RandomReal[{0,2}] E^(-(((x - RandomReal[{-1, 1}])^2 + (y + RandomReal[{-1, 1}])^2)/(2 RandomReal[{0.1, 0.4}]^2))), {10}]];

step = 0.02;
nstep = 100;
coord = {-1, 1};
pos = {coord[[1]], coord[[2]], f /. {x -> coord[[1]], y -> coord[[2]]}};
evo = Reap[Do[
      subst = MapThread[Rule, {{x, y, z}, pos}];
      dfx = (D[{x, y, f}, x] /. subst);
      dfy = (D[{x, y, f}, y] /. subst);
      tmp = {D[f, x] /. subst, D[f, y] /. subst};
      pos = pos - step {tmp[[1]], tmp[[2]], 0};
      pos[[3]] = Evaluate[f /. {x -> pos[[1]], y -> pos[[2]]}];
      Sow[pos];
      , nstep];][[2, 1]];

coord = {-1, -1};
pos = {coord[[1]], coord[[2]], f /. {x -> coord[[1]], y -> coord[[2]]}};
evo1 = Reap[Do[
      subst = MapThread[Rule, {{x, y, z}, pos}];
      dfx = (D[{x, y, f}, x] /. subst);
      dfy = (D[{x, y, f}, y] /. subst);
      tmp = {D[f, x] /. subst, D[f, y] /. subst};
      pos = pos - step {tmp[[1]], tmp[[2]], 0};
      pos[[3]] = Evaluate[f /. {x -> pos[[1]], y -> pos[[2]]}];
      Sow[pos];
      , nstep];][[2, 1]];

coord = {1, 1};
pos = {coord[[1]], coord[[2]], f /. {x -> coord[[1]], y -> coord[[2]]}};
evo2 = Reap[Do[
      subst = MapThread[Rule, {{x, y, z}, pos}];
      dfx = (D[{x, y, f}, x] /. subst);
      dfy = (D[{x, y, f}, y] /. subst);
      tmp = {D[f, x] /. subst, D[f, y] /. subst};
      pos = pos - step {tmp[[1]], tmp[[2]], 0};
      pos[[3]] = Evaluate[f /. {x -> pos[[1]], y -> pos[[2]]}];
      Sow[pos];
      , nstep];][[2, 1]];

p1 = Table[
   Show[
    Plot3D[f, {x, -1.35, 1.35}, {y, -1.35, 1.35}, Boxed -> False, Axes -> False(*,PlotStyle\[Rule]{Opacity[0.3]}*)],
    Graphics3D[{PointSize[0.03], Point[evo[[j]] ], Thick, Line[evo[[1 ;; j]] ], Point[evo1[[j]] ], Line[evo1[[1 ;; j]]] , Point[evo2[[j]] ], Line[evo2[[1 ;; j]]] }]
    ]
   , {j, 1, nstep, 2}];
ListAnimate[p1]

Conditions d’utilisation

Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous la licence suivante :
Creative Commons CC-Zero Ce fichier est disponible selon les termes de la licence Creative Commons CC0 Don universel au domaine public.
La personne qui a associé une œuvre avec cet acte l’a placée dans le domaine public en renonçant mondialement à tous ses droits sur cette œuvre en vertu des lois relatives au droit d’auteur, ainsi qu’à tous les droits juridiques connexes et voisins qu’elle possédait sur l’œuvre, sans autre limite que celles imposées par la loi. Vous pouvez copier, modifier, distribuer et utiliser cette œuvre, y compris à des fins commerciales, sans qu’il soit nécessaire d’en demander la permission.

Légendes

Ajoutez en une ligne la description de ce que représente ce fichier
Gradient descent with 3 different initial conditions.

Éléments décrits dans ce fichier

dépeint

image/gif

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureVignetteDimensionsUtilisateurCommentaire
Actuel25 avril 2019 à 10:43Vignette pour la version du 25 avril 2019 à 10:43360 × 292 (1,51 Mio)wikimediacommons>BertoUser created page with UploadWizard

La page suivante utilise ce fichier :