Gekissimo.net - Opi ansaitsemaan rahaa webilläsi Internetissä!

Mikä on liikemäärä hermoverkossa ja miten se toimii?

Seuraava artikkeli auttaa sinua: Mikä on liikemäärä hermoverkossa ja miten se toimii?

Neuroverkossa on häviön käsite, jota käytetään suorituskyvyn laskemiseen. Mitä suurempi häviö, sitä huonompi on neuroverkon suorituskyky, minkä vuoksi pyrimme aina minimoimaan häviön, jotta hermoverkko toimii paremmin. Menetyksen minimoimista kutsutaan optimoimiseksi. Optimoija on menetelmä, joka muuttaa hermoverkon painoja häviön vähentämiseksi. Vaikka neuroverkon optimoijia on useita, tässä artikkelissa opimme gradientin laskeutumisesta vauhdilla ja vertaamme sen suorituskykyä muihin. Tärkeimmät aiheet. Alla on tärkeimmät kohdat, joista aiomme keskustella tässä viestissä

Sisällysluettelo

  1. Optimoijien esittely
  2. Miten kaltevuuslasku toimii?
  3. Stokastinen gradienttilasku / SGD vauhdilla
  4. Suorituskykyanalyysi

Aloitetaan keskustelu ymmärtämällä optimoija

Optimoijien esittely

Yksinkertaisesti sanottuna, jos haluat tietää, miten optimoija toimii, Oletetaan, että olet mäen huipulla ja haluat laskeutua pinnalle, niin mitä tekisit? Liikut alaspäin rinnettä kohti, mutta kun liikut ylöspäin, se tarkoittaa, että olet menossa väärään suuntaan. Muutat sitten suuntaa ja liikut alaspäin, ja lopuksi saavutat pinnan. Näin optimoija toimii. Alla näkyy tarkalleen, että θ1 θ0 ovat painot ja J(θ) on häviöfunktio, ja tuo musta viiva on henkilö, joka liikkuu kohti graafin alin kohtaa.

Ei ole mahdollista tietää, mitkä pitäisi olla mallin optimaaliset painot alun perin, joten painot alustetaan satunnaisesti joillakin menetelmillä ja sitten niitä muutetaan optimoijien avulla, kunnes saadaan pienin häviö. Optimoijaa käytetään pienentämään häviötoimintoa päivittämällä mallien painoja ja tuottamalla parempia tuloksia.

Viime vuosina on luotu erilaisia ​​optimoijia, joilla on omat etunsa ja haittansa. Kuten Gradient Descent, Stochastic Gradient Descent (SGD), Mini Batch Stochastic Gradient Descent, SGD liikemäärällä jne.

Miten kaltevuuslasku toimii?

Gradienttilasku on optimointialgoritmi, jota käytetään koneoppimis- ja syväoppimismallien optimointiin. Gradientin laskeutuminen laskee funktion alimman arvon tai minimit numeerisesti. Se on menetelmä minimoida funktio seuraamalla gradientin negatiivia.

🔥 Empfohlen:  Mikä on aloitussivu? / Miten aloitussivu luodaan?

X n+1: on uusi paino

Xn: on vanha paino

α: oppimisaste

∇f(Xn): kustannusfunktion gradientti suhteessa X:ään

Alla olevassa kuvassa on gradientin laskeutumisen kustannus vs paino -kaavio. Näemme, että mallien painot alustetaan satunnaisesti ja niitä muutetaan toistuvasti kustannusfunktion minimoimiseksi. Oppimisaskeleiden koko on verrannollinen kustannusfunktion jyrkkyyteen, joten askeleet pienenevät vähitellen, kun ne lähestyvät vähimmäiskustannuksia. Tuo keltainen viiva on tangentti, jota käytetään gradientin arvon laskemiseen. Minimikustannusten saavuttaessa se tulee yhdensuuntaiseksi x-akselin kanssa, mikä tarkoittaa, että tangentti ei voi mennä alemmas.

On myös syytä mainita, että alfa-arvon oppimisnopeuden valinta on myös tärkeä osa, se ei saa olla liian korkea tai liian matala. Alla on kaksi kuvaa, jotka osoittavat, mitä tapahtuu, kun alfa valitaan väärin. Vasemmassa kuvassa näkyy, milloin alfa-arvo on liian korkea, mikä johtaa pomppimiseen siellä täällä käyrällä ja kuva näyttää, milloin alfa-arvo on liian pieni, jolloin se saavuttaa paikalliset minimit, mutta se vie aikaa.

Gradienttilasku on yksinkertainen ja helppo toteuttaa, mutta se jää paikallisiin minimiin globaalien minimien löytämisen sijaan. On olemassa gradienttilaskeutumisen variantti, jota kutsutaan erägradienttilaskuksi, jonka sisäinen toiminnallisuus on sama kuin kaltevuuslasku. Gradienttilaskeutumisessa se laskee virheen yhdelle tietopisteelle ja päivittää sen välittömästi, mutta erägradienttilaskumallissa laskee virheen jokaiselle harjoitustietojoukon esiintymälle, mutta ei päivity ennen kuin kaikki opetustietojoukon esimerkit on arvioitu. Voimme nähdä kuvasta, että se konvergoi säännöllisesti, mutta hyvin hitaasti.

Stokastinen gradienttilasku / SGD vauhdilla

Erägradientin laskeutumisessa gradientti lasketaan koko tietojoukosta jokaisessa vaiheessa, mikä aiheuttaa sen olevan erittäin hidasta, kun tietojoukko on suuri. Stokastisen gradientin laskeutuminen poimii satunnaisen esiintymän tietojoukosta joka vaiheessa ja laskee gradientin vain yhdelle esiintymälle. Se saa SGD:n toimimaan paljon nopeammin kuin erägradienttilaskeutuminen, ja se toimii myös nopeasti suurilla tietojoukoilla, koska vain yksi ilmentymä tarvitsee laskea. Stokastisen (satunnaisen) luonteensa vuoksi tämä algoritmi konvergoi vähemmän säännöllisesti kuin erägradienttilaskeutuminen; se värähtelee jatkuvasti kohti lähentymistä. Momentumia käytetään poistamaan sen satunnainen konvergenssi.

🔥 Empfohlen:  77 kynttiläyrityksen nimiideaa brändisi erottumiseen

SGD SGD – Momentum

Symboli ‘p’ on vauhtia. Kaikkia aikaisempia päivityksiä käyttämällä lasketaan vauhti hetkellä ‘t’, mikä antaa viimeisimmille päivityksille enemmän painoa edelliseen päivitykseen verrattuna konvergenssin nopeuttamiseksi. Momentin lisäämisen jälkeen stokastinen GD-konvergenssi näyttää tältä.

Se on paljon pehmeämpi kuin ennen.

Suorituskykyanalyysi

Seuraavassa viitteissä annetussa Colab-muistikirjalinkissä verrataan liikemäärän vaikutusta eri malliparametreihin, kuten harjoitusaikaan, tarkkuuteen (harjoittelu ja validointi) ja menetyksiin (harjoittelu ja validointi). SGD- ja Adam-optimointilaitteiden suorituskykyä arvioidaan.

Viimeiset sanat

Tässä artikkelissa opimme optimoijista ja niiden tyypeistä sekä ymmärrämme niiden takana olevan intuition, kuten gradientin laskeutumisen, erägradientin laskeutumisen, stokastisen laskeutumisen ja SGD:n hetken mukaan.

Viite

Table of Contents