Hinton Kapszulahálózatainak megértése. IV. rész: CapsNet architektúra

tegyük fel, hogy a helyes címke 1, Ez azt jelenti, hogy az első DigitCap felelős az 1 számjegy jelenlétének kódolásáért. Ehhez a DigitCap veszteségfüggvényéhez a T_c egy, a fennmaradó kilenc Digitcaphoz pedig a T_c 0 lesz. Amikor T_c értéke 1, akkor a veszteségfüggvény első ciklusa kiszámításra kerül, a második pedig nulla lesz. Példánkban az első DigitCap veszteségének kiszámításához vesszük ennek a Digitcapnak a kimeneti vektorát, és kivonjuk az m+ – ból, amely 0,9-re van rögzítve. Ezután a kapott értéket csak abban az esetben tartjuk meg, ha nagyobb, mint nulla és négyzet alakú. Ellenkező esetben térjen vissza 0-ra. Más szavakkal, a veszteség nulla lesz, ha a helyes DigitCap 0,9-nél nagyobb valószínűséggel jósolja meg a helyes címkét, és nem nulla lesz, ha a valószínűség kisebb, mint 0,9.

veszteség funkció értéke helyes és helytelen DigitCap. Vegye figyelembe, hogy a piros grafikon függőlegesen “összenyomódik” a zöldhez képest. Ennek oka a képlet lambda szorzója. Forrás: szerző.

azoknál a Digitcap — oknál, amelyek nem egyeznek a megfelelő címkével, a T_c nulla lesz, ezért a második kifejezés kiértékelésre kerül (az (1-T_c) résznek megfelelően). Ebben az esetben láthatjuk, hogy a veszteség nulla lesz, ha a nem megfelelő DigitCap 0,1-nél kisebb valószínűséggel hibás címkét jósol, és nem nulla, ha 0,1-nél nagyobb valószínűséggel hibás címkét jósol.

végül a képletben a lambda együttható szerepel a numerikus stabilitáshoz az edzés során (értéke 0,5-re van rögzítve). A képletben szereplő két kifejezésnek négyzete van, mivel ennek a veszteségfüggvénynek L2 normája van, és a szerzők nyilvánvalóan úgy vélik, hogy ez a norma jobban működik.

II. rész dekóder.

CapsNet dekóder architektúra. Forrás: eredeti papír.

a dekóder egy 16 dimenziós vektort vesz a helyes DigitCap-ból, és megtanulja dekódolni egy számjegy képévé (vegye figyelembe, hogy csak a helyes DigitCap vektort használja a képzés során, és figyelmen kívül hagyja a helyteleneket). A dekódert regularizátorként használják, a helyes DigitCap kimenetét veszi bemenetként, és megtanulja újra létrehozni egy 28 x 28 pixeles képet, a veszteségfüggvény pedig euklideszi távolság a rekonstruált kép és a bemeneti kép között. A dekóder arra kényszeríti a kapszulákat, hogy megtanulják azokat a funkciókat, amelyek hasznosak az eredeti kép rekonstruálásához. Minél közelebb van a rekonstruált kép a bemeneti képhez, annál jobb. A rekonstruált képek példái az alábbi képen láthatók.

Felső sor: eredeti képek. Alsó sor: rekonstruált képek. Forrás: eredeti papír.

4.réteg. Teljesen csatlakoztatva #1

bemenet: 16×10.
kimenet: 512.
paraméterek száma: 82432.

az alsó szint Minden kimenete súlyozódik, és bemenetként a teljesen összekapcsolt réteg minden neuronjába irányul. Minden neuronnak van egy torzító kifejezése is. Ehhez a réteghez 16×10 bemenet van, amelyek mind a réteg 512 neuronjára irányulnak. Ezért vannak (16×10 + 1) x512 betanítható paraméterek.

a következő két réteg esetében a számítás megegyezik: paraméterek száma = (bemenetek száma + torzítás) x a rétegben lévő neuronok száma. Ezért nincs magyarázat a teljesen összekapcsolt 2.és 3. rétegre.

5.réteg. Teljesen csatlakoztatva # 2

bemenet: 512.
kimenet: 1024.
paraméterek száma: 525312.

6.réteg. Teljesen csatlakoztatva #3

bemenet: 1024.
kimenet: 784 (amely az átalakítás után 28×28 dekódolt képet ad vissza).
paraméterek száma: 803600.

a hálózat összes paraméterének száma: 8238608.

következtetés

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

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