Pređi na sadržaj

Датотека:Gradient descent.gif

Sadržaj stranice nije podržan na drugim jezicima
Ovo je datoteka sa Vikimedijine ostave
S Vikipedije, slobodne enciklopedije

Gradient_descent.gif(360 × 292 piksela, veličina datoteke: 1,51 MB, MIME tip: image/gif, petlja, 50 kadrova)

Opis izmene

Opis
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.
Datum
Izvor https://twitter.com/j_bertolotti/status/1121054414066810881
Autor Jacopo Bertolotti
Dozvola
(Ponovno korišćenje ove datoteke)
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]

Licenciranje

Ja, nosilac autorskog prava nad ovim delom, objavljujem isto pod sledećom licencom:
Creative Commons CC-Zero Ova datoteka je dostupna pod licencom Creative Commons 1.0 Univerzalna – posvećivanje javnom vlasništvu.
Osoba koja je učestvovalo u radu na ovom dokumentu posvetila je delo javnom vlasništvu, odričući se svih prava na to delo širom sveta, po zakonu o autorskim pravima i povezanim ili srodnim zakonskim pravima koje bi imao/imala, u meri dozvoljenoj zakonom. Možete da umnožavate, menjate, raspodeljujete i prilagođavate delo, čak i u komercijalne svrhe, bez traženja dozvole.

Natpisi

Dodajte objašnjenje u jednom redu o tome šta ova datoteka predstavlja
Gradient descent with 3 different initial conditions.

Stavke prikazane u ovoj datoteci

prikazuje

Neka vrednost bez stavke na projektu Vikipodaci

Vikimedija Serbian (transliteracija): Berto
skraćeno ime autora Serbian (transliteracija): Jacopo Bertolotti

Creative Commons CC0 License Serbian (Cyrillic script) (transliteracija)

24. april 2019

Istorija datoteke

Kliknite na datum/vreme da biste videli tadašnju verziju datoteke.

Datum/vremeMinijaturaDimenzijeKorisnikKomentar
trenutna10:43, 25. april 2019.Minijatura za verziju na dan 10:43, 25. april 2019.360 × 292 (1,51 MB)BertoUser created page with UploadWizard

Sledeća stranica koristi ovu datoteku:

Globalna upotreba datoteke

Drugi vikiji koji koriste ovu datoteku:

Metapodaci