A kötegméret hatása a neurális háló képzésére

A fenti első ábrán látható, hogy a nagyobb kötegméretek valóban kevesebb távolságot tesznek meg epochánként. A 32 tételes tréning epocha távolsága 0,15 és 0,4 között változik, míg a 256 tételes tréning esetében 0,02-0,04 körül van. Sőt, ahogy a második ábrán is láthatjuk, az epochális távolságok aránya az idő múlásával növekszik!

De miért tesznek meg a nagy kötegek kisebb távolságot epochánként? Talán azért, mert kevesebb kötegünk van, és ezért kevesebb frissítés történik epochánként? Vagy azért, mert minden egyes kötegfrissítés kevesebb távolságot tesz meg? Vagy a válasz a kettő kombinációja?

A kérdés megválaszolásához mérjük meg az egyes kötegfrissítések méretét.

13. ábra: A kötegfrissítések méretének eloszlása
Median batch update norm for batch size 32: 3.3e-3
Median batch update norm for batch size 256: 1.5e-3

Láthatjuk, hogy minden kötegfrissítés kisebb, ha a kötegméret nagyobb. Miért van ez így?

Azért, hogy megértsük ezt a viselkedést, állítsunk fel egy dummy forgatókönyvet, ahol két a és b gradiensvektorunk van, amelyek mindegyike egy-egy képzési példa gradiensét képviseli. Gondoljuk végig, hogy a batch size=1 átlagos kötegfrissítési mérete hogyan viszonyul a batch size=2-hez.

14. ábra: A frissítési lépések összehasonlítása az 1. kötegméret (a+b) és a 2. kötegméret ((a+b)/2)

Ha egy kötegméretet használunk, akkor egy lépést teszünk az a, majd a b irányába, és végül az a+b által reprezentált pontban kötünk ki. (Technikailag a b gradiensét az a alkalmazása után újra kiszámítanánk, de ezt most hagyjuk figyelmen kívül). Ez (|a|+|b|)/2 átlagos kötegfrissítési méretet eredményez – a kötegfrissítési méretek összegét osztva a kötegfrissítések számával.

Ha azonban két kötegméretet használunk, a kötegfrissítést ehelyett az (a+b)/2 vektor képviseli – a 12. ábra piros nyila. Így az átlagos kötegfrissítési méret |(a+b)/2| / 1 = |a+b|/2.

Most hasonlítsuk össze a két átlagos kötegfrissítési méretet:

15. ábra: Az átlagos kötegfrissítési méret összehasonlítása 1-es és 2-es kötegméret esetén.

Az utolsó sorban a háromszögegyenlőtlenség segítségével megmutattuk, hogy az 1. tételnagyság átlagos tételfrissítési mérete mindig nagyobb vagy egyenlő, mint a 2. tételnagyságé.

Másképpen fogalmazva: ahhoz, hogy az 1. és a 2. tételnagyság átlagos tételmérete egyenlő legyen, az a és b vektoroknak azonos irányba kell mutatniuk, hiszen ekkor |a| + |b| = |a+b|. Ezt az érvet kiterjeszthetjük n vektorra is – csak ha mind az n vektor ugyanabba az irányba mutat, akkor az átlagos tételfrissítési méretek a batch size=1 és a batch size=n esetén azonosak. Ez azonban szinte soha nem fordul elő, mivel a gradiens vektorok valószínűleg nem pontosan ugyanabba az irányba mutatnak.

16. ábra: Minitételfrissítési egyenlet

Ha visszatérünk a 16. ábrán látható minitételfrissítési egyenlethez, bizonyos értelemben azt mondjuk, hogy a tételméret |B_k| növelésével a gradiensek összegének nagysága viszonylag kevésbé gyorsan növekszik. Ez annak köszönhető, hogy a gradiensvektorok különböző irányokba mutatnak, és így a tételméret (azaz az összegzendő gradiensvektorok száma) megduplázása nem duplázza meg a gradiensvektorok eredő összegének nagyságát. Ugyanakkor egy kétszer akkora nevezővel |B_k| osztunk, ami összességében kisebb frissítési lépést eredményez.

Ez megmagyarázhatja, hogy a nagyobb tételméretek esetén a kötegfrissítések általában miért kisebbek – a gradiensvektorok összege nagyobb lesz, de nem tudja teljesen ellensúlyozni a nagyobb nevezőt|B_k|.

2. hipotézis: A kis tételes képzés laposabb minimalizálókat talál

Mérjük most meg mindkét minimalizátor élességét, és értékeljük ki azt az állítást, hogy a kis tételes képzés laposabb minimalizálókat talál. (Megjegyezzük, hogy ez a második hipotézis az első hipotézissel együtt létezhet – nem zárják ki egymást). Ehhez két módszert kölcsönzünk Keskar et al.

Az elsőben a kis tételes minimalizáló (32-es tételméret) és a nagy tételes minimalizáló (256-os tételméret) közötti vonal mentén ábrázoljuk a képzési és a validálási veszteséget. Ezt a vonalat a következő egyenlet írja le:

17. ábra: Lineáris interpoláció a kis tételes minimalizáló és a nagy tételes minimalizáló között. Keskar et al .

ból, ahol x_l* a nagy tételminimalizáló és x_s* a kis tételminimalizáló, alfa pedig egy -1 és 2 közötti együttható.

18. ábra: Interpoláció a kis tételminimalizáló (alfa=0) és a nagy tételminimalizáló (alfa=1) között. A nagy tételes minimalizáló sokkal “élesebb.”

Amint az ábrán látható, a kis tételes minimalizáló (alpha=0) sokkal laposabb, mint a nagy tételes minimalizáló (alpha=1), amely sokkal élesebben változik.

Megjegyezzük, hogy ez egy meglehetősen leegyszerűsített módja az élesség mérésének, mivel csak egy irányt vesz figyelembe. Ezért Keskar és társai egy olyan élesség-metrikát javasolnak, amely azt méri, hogy a veszteségfüggvény mennyire változik a minimalizáló körüli szomszédságban. Először is a következőképpen definiáljuk a szomszédságot:

19. ábra: A veszteség maximalizálásának korlátozó doboza. Keskar et al .

ból, ahol az epsilon a szomszédság méretét meghatározó paraméter, x pedig a minimalizáló (a súlyok).

Ezután az élesség metrikát úgy definiáljuk, mint a maximális veszteséget ebben a minimalizátor körüli szomszédságban:

20. ábra: Az élesség metrika meghatározása. Keskar et al .

ból, ahol f a veszteségfüggvény, a bemenetek pedig a súlyok.

A fenti definíciókkal számítsuk ki a minimalizátorok élességét különböző tételméreteknél, 1e-3 epsilon értékkel:

21. ábra: Sharpness score by batch size

Ez azt mutatja, hogy a nagy tételes minimalizátorok valóban élesebbek, ahogy azt az interpolációs diagramon is láttuk.

Végül próbáljuk meg a minimalizálók ábrázolását szűrőnormalizált veszteség ábrázolásával, ahogy azt Li et al. megfogalmazta. Ez a fajta ábrázolás két véletlenszerű irányt választ, amelyek mérete megegyezik a modellsúlyokkal, majd minden egyes konvolúciós szűrőt (vagy neuront, FC rétegek esetén) úgy normalizál, hogy a modellsúlyok megfelelő szűrőjével megegyező normával rendelkezzen. Ez biztosítja, hogy a minimalizátor élességét nem befolyásolja a súlyok nagysága. Ezután a veszteséget e két irány mentén ábrázolja, a grafikon középpontja pedig az a minimalizátor, amelyet jellemezni szeretnénk.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.