Eeräkoon vaikutus neuroverkon harjoitteluun

Yllä olevasta ensimmäisestä kuvaajasta nähdään, että suuremmat eräkoot todellakin kulkevat vähemmän matkaa epookissa. Erän 32 harjoittelun epookin etäisyys vaihtelee 0,15-0,4 välillä, kun taas erän 256 harjoittelussa se on noin 0,02-0,04. Itse asiassa, kuten voimme nähdä toisesta kuvaajasta, epookkien etäisyyksien suhde kasvaa ajan myötä!

Mutta miksi suurten erien harjoittelu kulkee vähemmän matkaa epookkia kohden? Johtuuko se siitä, että meillä on vähemmän eriä ja siten vähemmän päivityksiä per epookki? Vai johtuuko se siitä, että jokainen eräpäivitys kulkee vähemmän matkaa? Vai onko vastaus molempien yhdistelmä?

Vastaaksemme tähän kysymykseen, mitataan jokaisen eräpäivityksen koko.

Kuvio 13: Eräpäivityksen koon jakauma
Median batch update norm for batch size 32: 3.3e-3
Median batch update norm for batch size 256: 1.5e-3

Havaitaan, että kukin eräpäivitys on pienempi, kun eräkoko on suurempi. Miksi näin olisi?

Ymmärtääksemme tätä käyttäytymistä, asetetaan kuvitteellinen skenaario, jossa meillä on kaksi gradienttivektoria a ja b, joista kumpikin edustaa yhden harjoitusesimerkin gradienttia. Mietitään, miten keskimääräistä erän päivityskokoa eräkoolla=1 verrataan eräkoolla=2.

Kuvio 14: Päivitysvaiheiden vertailu eräkoon 1 (a+b) ja eräkoon 2 ((a+b)/2)

Jos käytämme eräkokoa yksi, otamme askeleen ensin a:n ja sen jälkeen b:n suuntaan, jolloin päädymme pisteeseen, jota edustaa a+b. (Teknisesti ottaen b:n gradientti laskettaisiin uudelleen a:n soveltamisen jälkeen, mutta jätetään se toistaiseksi huomiotta). Tämä johtaa keskimääräiseen erän päivityskokoon (|a|+|b|)/2 – erän päivityskokojen summa jaettuna erän päivitysten lukumäärällä.

Jos kuitenkin käytämme eräkokoa kaksi, erän päivitystä edustaa sen sijaan vektori (a+b)/2 – kuvan 12 punainen nuoli. Näin ollen keskimääräinen erän päivityskoko on |(a+b)/2| / 1 = |a+b|/2.

Vertaillaan nyt kahta keskimääräistä erän päivityskokoa:

Kuvio 15: Keskimääräisten erän päivityskokojen vertailu, kun kyseessä on eräkoko 1 ja eräkoko 2.

Viimeisellä rivillä käytimme kolmion epätasa-arvoa osoittaaksemme, että eräkoon 1 keskimääräinen erän päivityskoko on aina suurempi tai yhtä suuri kuin eräkoon 2 keskimääräinen päivityskoko.

Toisella tavalla ilmaistuna, jotta eräkoon 1 ja eräkoon 2 keskimääräinen eräkoko olisi yhtä suuri, vektoreiden a ja b on osoitettava samaan suuntaan, koska silloin |a| + |b| = |a+b|. Voimme laajentaa tämän väitteen koskemaan n:ää vektoria – vain silloin, kun kaikki n vektoria osoittavat samaan suuntaan, keskimääräiset erän päivityskoot eräkoolla = 1 ja eräkoolla = n ovat samat. Näin ei kuitenkaan ole juuri koskaan, koska gradienttivektorit eivät todennäköisesti osoita täsmälleen samaan suuntaan.

Kuvio 16: Minierän päivitysyhtälö

Jos palaamme kuvion 16 minierän päivitysyhtälöön, sanomme tietyssä mielessä, että kun skaalautamme eräkokoa suuremmaksi |B_k|, gradienttien yhteenlasketun summan suuruus skaalautuu verrattain heikommin. Tämä johtuu siitä, että gradienttivektorit osoittavat eri suuntiin, joten eräkoon kaksinkertaistaminen (eli yhteenlaskettavien gradienttivektoreiden määrä) ei kaksinkertaista gradienttivektoreiden summan suuruutta. Samalla jaamme nimittäjällä |B_k|, joka on kaksi kertaa suurempi, mikä johtaa pienempään päivitysvaiheeseen.

Tämä voisi selittää, miksi suurempien eräkokojen päivitykset ovat yleensä pienempiä – gradienttivektoreiden summasta tulee suurempi, mutta se ei pysty täysin kompensoimaan suurempaa nimittäjää|B_k|.

Hypoteesi 2: Pienten erien harjoittelu löytää litteämmät minimoijat

Mittakaamme nyt molempien minimoijien terävyyttä ja arvioimme väitteen, että pienten erien harjoittelu löytää litteämmät minimoijat. (Huomaa, että tämä toinen hypoteesi voi olla rinnakkainen ensimmäisen hypoteesin kanssa – ne eivät sulje toisiaan pois). Tätä varten lainaamme kaksi menetelmää Keskar et al:lta.

Ensimmäisessä piirretään harjoittelu- ja validointihäviö pienen erän minimoijan (eräkoko 32) ja suuren erän minimoijan (eräkoko 256) välistä viivaa pitkin. Tätä viivaa kuvaa seuraava yhtälö:

Kuva 17: Lineaarinen interpolointi pienen erän minimoijan ja suuren erän minimoijan välillä. From Keskar et al .

jossa x_l* on suuren erän minimoija ja x_s* on pienen erän minimoija ja alpha on kerroin välillä -1 ja 2.

Kuvio 18: Interpolaatio pienen erän minimoijan (alpha=0) ja suuren erän minimoijan (alpha=1) välillä. Suuren erän minimoija on paljon ”terävämpi.”

Kuten kuvaajasta nähdään, pienen erän minimoija (alpha=0) on paljon litteämpi kuin suuren erän minimoija (alpha=1), joka vaihtelee paljon terävämmin.

Huomaa, että tämä on melko yksinkertaistettu tapa mitata terävyyttä, koska siinä otetaan huomioon vain yksi suunta. Niinpä Keskar et al. ehdottavat terävyysmetriikkaa, joka mittaa, kuinka paljon häviöfunktio vaihtelee minimoijan ympärillä olevassa naapurustossa. Määritellään ensin naapurusto seuraavasti:

Kuva 19: Rajoituslaatikko, jonka sisällä maksimoidaan häviö. From Keskar et al .

jossa epsilon on parametri, joka määrittelee naapuruston koon ja x on minimoija (painot).

Tällöin määrittelemme terävyysmetriikan maksimihäviöksi tässä naapurustossa minimoijan ympärillä:

Kuvio 20: Terävyysmetriikan määritelmä. From Keskar et al .

jossa f on häviöfunktio, jonka syötteet ovat painot.

Yllä olevilla määritelmillä lasketaan minimoijien terävyys eri eräkokoluokilla, kun epsilonin arvo on 1e-3:

Kuvio 21. Minimoijien terävyys eri eräkoolla: Terävyyspisteet eräkoon mukaan

Tämä osoittaa, että suurten erien minimoijat ovat todellakin terävämpiä, kuten näimme interpolointikaaviossa.

Viimeiseksi kokeillaan piirtää minimoijat suodattimella normalisoidun häviön visualisoinnilla, kuten Li et al. ovat muotoilleet. Tämäntyyppinen juoni valitsee kaksi satunnaista suuntaa, joilla on samat mitat kuin mallipainoilla, ja normalisoi sitten jokaisen konvoluutiosuodattimen (tai neuronin, jos kyseessä ovat FC-kerrokset) niin, että sillä on sama normi kuin vastaavalla suodattimella mallipainoissa. Näin varmistetaan, että minimoijan terävyyteen eivät vaikuta sen painojen suuruudet. Sitten se piirtää häviön näitä kahta suuntaa pitkin, jolloin kuvaajan keskipiste on minimoija, jota haluamme luonnehtia.

Vastaa

Sähköpostiosoitettasi ei julkaista.