Figyelem? Figyelem!

A figyelem meglehetősen népszerű fogalom és hasznos eszköz a mélytanulás közösségében az elmúlt években. Ebben a bejegyzésben azt fogjuk megvizsgálni, hogyan találták ki a figyelmet, valamint a különböző figyelemmechanizmusokat és modelleket, például a transzformátort és a SNAIL-t.

A figyelmet bizonyos mértékig az motiválja, hogy hogyan fordítunk vizuális figyelmet egy kép különböző régióira, vagy hogyan hozzuk összefüggésbe a szavakat egy mondatban. Vegyük példának az 1. ábrán látható Shiba Inu képét.

1. ábra. Egy Shiba Inu férfiruhában. Az eredeti fotó tulajdonosa az Instagram @mensweardog.

Az emberi vizuális figyelem lehetővé teszi, hogy egy bizonyos régióra “nagy felbontással” fókuszáljunk (pl. nézzük a hegyes fület a sárga dobozban), miközben a környező képet “kis felbontásban” érzékeljük (pl. most mi a helyzet a havas háttérrel és a ruhával?), majd ennek megfelelően állítsuk be a fókuszpontot vagy végezzük el a következtetést. Adott a kép egy kis foltja, a többi kép pixelei támpontokat adnak arra, hogy mit kellene ott megjeleníteni. A sárga dobozban egy hegyes fület várunk, mert láttunk egy kutya orrát, egy másik hegyes fület a jobb oldalon, és Shiba rejtélyes szemét (a piros dobozokban lévő dolgokat). Az alul lévő pulóver és takaró azonban nem lenne olyan hasznos, mint ezek a kutyás jellemzők.”

Hasonlóképpen magyarázhatjuk a szavak közötti kapcsolatot egy mondatban vagy szoros összefüggésben. Ha azt látjuk, hogy “eszik”, akkor arra számítunk, hogy hamarosan egy étel szóval fogunk találkozni. A szín kifejezés az ételt írja le, de valószínűleg nem annyira az “evés” szóval közvetlenül.

2. ábra. Egy szó másképp “figyel” más szavakra ugyanabban a mondatban.

A figyelem a mélytanulásban nagyjából a fontossági súlyok vektoraként értelmezhető: ahhoz, hogy egy elemet, például egy képpontot egy képen vagy egy szót egy mondatban megjósoljunk vagy kikövetkeztessünk, a figyelemvektor segítségével megbecsüljük, hogy az milyen erősen korrelál (vagy “figyel”, ahogy sok tanulmányban olvashatjuk) más elemekkel, és a figyelemvektorral súlyozott értékeik összegét tekintjük a cél közelítésének.

Mi a baj a Seq2Seq modellel?

A seq2seq modell a nyelvi modellezés területén született (Sutskever, et al. 2014). Célja nagy vonalakban egy bemeneti szekvencia (forrás) átalakítása egy új szekvenciává (cél), és mindkét szekvencia tetszőleges hosszúságú lehet. Az átalakítási feladatok közé tartozik például a több nyelv közötti gépi fordítás akár szövegben, akár hangban, a kérdés-válasz párbeszédek generálása vagy akár a mondatok nyelvtani fákká történő elemzése.

A seq2seq modell általában egy kódoló-decoder architektúrával rendelkezik, amely a következőkből áll:

  • Egy kódoló feldolgozza a bemeneti szekvenciát, és az információt egy rögzített hosszúságú kontextusvektorba (más néven mondatbeágyazás vagy “gondolat” vektor) tömöríti. Ez a reprezentáció várhatóan jól összefoglalja a teljes forrásszekvencia jelentését.
  • A dekódert a kontextusvektorral inicializáljuk, hogy kiadja az átalakított kimenetet. A korai munkák csak a kódoló hálózat utolsó állapotát használták a dekódoló kezdeti állapotaként.

A kódoló és a dekódoló is rekurrens neurális hálózat, azaz LSTM vagy GRU egységeket használ.

3. ábra. A kódoló-dekódoló modell, amely a “zöld almát eszik” mondatot fordítja kínaira. Mind a kódoló, mind a dekódoló vizualizációja időben feltekeredik.

A fix hosszúságú kontextusvektor kialakításának kritikus és nyilvánvaló hátránya, hogy képtelen hosszú mondatokat megjegyezni. Gyakran elfelejtette az első részt, miután befejezte a teljes bemenet feldolgozását. Ennek a problémának a megoldására született meg a figyelemmechanizmus (Bahdanau et al., 2015).

Megszületett a fordításhoz

A figyelemmechanizmus azért született meg, hogy segítsen megjegyezni a hosszú forrásmondatokat a neurális gépi fordításban (NMT). Ahelyett, hogy egyetlen kontextusvektort építene fel a kódoló utolsó rejtett állapotából, a figyelem által kitalált titkos szósz az, hogy a kontextusvektor és a teljes forrásbemenet közötti rövidítéseket hoz létre. Ezeknek a rövidkapcsolatoknak a súlyai minden egyes kimeneti elemhez testre szabhatók.

Míg a kontextusvektor hozzáfér a teljes bemeneti szekvenciához, nem kell aggódnunk a felejtés miatt. A forrás és a cél közötti összehangolást a kontextusvektor tanulja meg és vezérli. A kontextusvektor lényegében három információt fogyaszt:

  • dekódoló rejtett állapotai;
  • dekódoló rejtett állapotai;
  • forrás és cél közötti összehangolás.

4. ábra. A kódoló-decoder modell additív figyelmi mechanizmussal Bahdanau et al., 2015.

Definíció

\\\\\mathbf{y} &= \end{aligned}\]

(A félkövérrel szedett változók azt jelzik, hogy vektorok; ugyanez vonatkozik minden másra ebben a bejegyzésben.)

A kódoló egy kétirányú RNN (vagy más, tetszés szerinti rekurrens hálózati beállítás), egy előrefelé mutató rejtett állapottal \(\overrightarrow{\boldsymbol{h}}_i\) és egy hátrafelé mutatóval \(\overleftarrow{\boldsymbol{h}}_i\). A kettő egyszerű összekapcsolása jelenti a kódoló állapotát. A motiváció az, hogy egy szó annotációjába az előző és az azt követő szavakat is bevonjuk.

\^\\top, i=1,\dots,n\]\\\)\]

ahol mind az \(\mathbf{v}_a\), mind az \(\mathbf{W}_a\) az igazítási modellben megtanulandó súlymátrixok.

Az illesztési pontszámok mátrixa egy szép melléktermék, amely explicit módon mutatja a forrás- és célszavak közötti korrelációt.

5. ábra. A “L’accord sur l’Espace économique européen a été signé en aoűt 1992” (francia) és annak angol fordítása “The agreement on the European Economic Area was signed in August 1992” (Az Európai Gazdasági Térségről szóló megállapodást 1992 augusztusában írták alá) illeszkedési mátrixa. (Kép forrása: Fig 3 in Bahdanau et al., 2015)

Nézze meg ezt a szép bemutatót a Tensorflow csapatától további implementációs utasításokért.

A figyelemmechanizmusok családja

A figyelem segítségével a forrás- és célszekvenciák közötti függőségeket már nem korlátozza a köztes távolság! Tekintettel a figyelem által a gépi fordításban elért nagy előrelépésre, hamarosan a számítógépes látás területére is kiterjesztették (Xu et al. 2015), és a figyelemmechanizmusok különböző más formáit kezdték vizsgálni (Luong, et al., 2015; Britz et al., 2017; Vaswani, et al., 2017).

Összefoglaló

Az alábbiakban néhány népszerű figyelemmechanizmus és a hozzájuk tartozó igazodási pontszámfüggvények összefoglaló táblázata következik:

A figyelemmechanizmusok tágabb kategóriáinak összefoglalása következik:

Név Definíció Idézet
Self-Attention(&) Az azonos bemeneti szekvencia különböző pozícióinak összehasonlítása. Elméletileg az önfigyelés bármilyen fenti pontszámfüggvényt elfogadhat, csak a célszekvenciát kell helyettesíteni ugyanazzal a bemeneti szekvenciával. Cheng2016
Global/Soft A teljes bemeneti állapottérre való figyelés. Xu2015
Lokális/Kemény A bemeneti állapottér egy részére való figyelés; azaz a bemeneti kép egy foltjára. Xu2015; Luong2015

(&) Cheng et al. “intra-attention”-ként is említi, 2016 és néhány más cikk.

Self-Attention

Az intra-attention néven is ismert önfigyelés egy olyan figyelemmechanizmus, amely egyetlen szekvencia különböző pozícióit kapcsolja össze annak érdekében, hogy kiszámítsa ugyanannak a szekvenciának a reprezentációját. Kimutatták, hogy nagyon hasznos a gépi olvasás, az absztraktív összegzés vagy a képleírások előállítása során.

A hosszú rövid távú memória hálózatáról szóló tanulmány az önfigyelmet használta a gépi olvasás elvégzésére. Az alábbi példában az önfigyelési mechanizmus lehetővé teszi, hogy megtanuljuk az aktuális szavak és az előző mondatrész közötti összefüggést.

6. ábra. Az aktuális szó piros színnel, a kék árnyék mérete pedig az aktivációs szintet jelzi. (A kép forrása: Cheng et al., 2016)

Soft vs Hard Attention

A show, attend and tell dolgozatban a figyelemmechanizmust képekre alkalmazzák a feliratok generálásához. A képet először egy CNN kódolja a jellemzők kinyeréséhez. Ezután egy LSTM dekóder fogyasztja a konvolúciós jellemzőket, hogy egyesével leíró szavakat állítson elő, ahol a súlyokat a figyelem segítségével tanulják meg. A figyelmi súlyok vizualizációja jól mutatja, hogy a modell a kép mely régióira figyel, hogy egy adott szót adjon ki.

7. ábra. “Egy nő frizbit dobál egy parkban”. (A kép forrása: 6. ábra (b) in Xu et al. 2015)

Ez a cikk javasolta először a “lágy” vs. “kemény” figyelem megkülönböztetését, aszerint, hogy a figyelem a teljes képhez vagy csak egy folthoz fér-e hozzá:

  • Lágy figyelem: az összehangolási súlyokat megtanuljuk és “lágyan” helyezzük el a forráskép összes foltján; lényegében ugyanolyan típusú figyelem, mint a Bahdanau et al. 2015-ben.
    • Pro: a modell sima és differenciálható.
    • Kontra: drága, ha a forrás input nagy.
  • Hard Attention: egyszerre csak egy foltot választ ki a képből, amelyre figyelni kell.
    • Pro: kevesebb számítás a következtetés idején.
    • Kontra: a modell nem differenciálható, és a betanításhoz bonyolultabb technikákra van szükség, például varianciacsökkentésre vagy megerősítő tanulásra. (Luong, et al., 2015)

Globális vs. helyi figyelem

Luong, et al., 2015 javasolta a “globális” és a “helyi” figyelmet. A globális figyelem a lágy figyelemhez hasonló, míg a lokális figyelem egy érdekes keveréke a kemény és a lágy figyelemnek, a kemény figyelem továbbfejlesztése, hogy differenciálhatóvá tegye: a modell először egyetlen összehangolt pozíciót jósol az aktuális célszóhoz, majd a forráspozíció köré központosított ablakot használ a kontextusvektor kiszámításához.

8. ábra. Globális vs. lokális figyelem (Kép forrása: 2. ábra & 3 in Luong, et al., 2015)

Neurális Turing-gépek

Alan Turing 1936-ban a számítás minimalista modelljét javasolta. Ez egy végtelen hosszú szalagból és egy fejből áll, amely kölcsönhatásba lép a szalaggal. A szalagon számtalan cella van, amelyek mindegyike egy-egy szimbólummal van kitöltve: 0, 1 vagy üres (” “). A műveleti fej képes szimbólumokat olvasni, szimbólumokat szerkeszteni és balra/jobbra mozogni a szalagon. Elméletileg egy Turing-gép bármilyen számítógépes algoritmust képes szimulálni, függetlenül attól, hogy az eljárás mennyire bonyolult vagy drága. A végtelen memória adja a Turing-gépnek azt az előnyt, hogy matematikailag korlátlan. A végtelen memória azonban a valós modern számítógépekben nem valósítható meg, és akkor a Turing-gépet csak a számítás matematikai modelljének tekintjük.

9. ábra. Hogyan néz ki egy Turing-gép: egy szalag + egy fej, amely a szalagot kezeli. (Kép forrása: http://aturingmachine.com/)

A neurális Turing-gép (NTM, Graves, Wayne & Danihelka, 2014) egy modellarchitektúra egy neurális hálózat külső memóriatárolóval való összekapcsolására. A memória a Turing-gép szalagját utánozza, a neurális hálózat pedig a szalagról való olvasáshoz vagy a szalagra való íráshoz szükséges műveletfejeket vezérli. Az NTM-ben azonban a memória véges, ezért valószínűleg inkább egy “neurális von Neumann-gépre” hasonlít.

Az NTM két fő komponenst tartalmaz, egy vezérlő neurális hálózatot és egy memóriabankot. Vezérlő: a memórián végzett műveletek végrehajtásáért felelős. Ez lehet bármilyen típusú neurális hálózat, feed-forward vagy rekurrens. memória: tárolja a feldolgozott információt. Ez egy \(N \szor M\) méretű mátrix, amely N vektor sort tartalmaz, és mindegyik \(M\) dimenziójú.

Egy frissítési iterációban a vezérlő feldolgozza a bemenetet, és ennek megfelelően kölcsönhatásba lép a memóriabankkal a kimenet létrehozása érdekében. A kölcsönhatást egy sor párhuzamos olvasó- és írófej kezeli. Mind az olvasási, mind az írási műveletek “elmosódnak” azáltal, hogy lágyan figyelnek az összes memóriacímre.

10. ábra. Neurális Turing gép architektúra.

Olvasás és írás

\

ahol \(w_t(i)\) az \(i\)-edik elem az \(\mathbf{w}_t\) és \(\mathbf{M}_t(i)\) az \(i\)-edik sorvektor a memóriában.

\ &\scriptstyle{\text{; törlés}}\\\\\\mathbf{M}_t(i) &= \tilde{\mathbf{M}}_t(i) + w_t(i) \mathbf{a}_t &\scriptstyle{\text{; add}}}\end{aligned}\]

Figyelemmechanizmusok

A Neurális Turing-gépben a címzési mechanizmusoktól függ, hogyan generáljuk a figyelemeloszlást \(\mathbf{w}_t\): Az NTM a tartalomalapú és a helyalapú címzés keverékét használja.

Tartalomalapú címzés

A tartalomalapú címzés a vezérlő által a bemeneti és a memóriasorokból kinyert \(\mathbf{k}_t\) kulcsvektor hasonlóságán alapuló figyelemvektorokat hoz létre. A tartalomalapú figyelem-pontszámokat koszinusz hasonlóságként számítjuk ki, majd softmax-szal normalizáljuk. Ezenkívül az NTM hozzáad egy \(\beta_t\) erősségi szorzót az eloszlás fókuszának erősítésére vagy csillapítására.

\)= \frac{\exp(\beta_t \frac{\mathbf{k}_t \cdot \mathbf{M}_t(i)}{\|\\mathbf{k}_t\| \cdot \|\mathbf{M}_t(i)\|})}{\sum_{j=1}^N \exp(\beta_t \frac{\mathbf{k}_t \cdot \mathbf{M}_t(j)}{\|\\mathbf{k}_t\| \cdot \|\\mathbf{M}_t(j)\|})}\]

Interpoláció

Ezután egy interpolációs kapuskalárral \(g_t\) keverjük össze az újonnan generált tartalmat-alapú figyelemvektort az utolsó időlépésben lévő figyelmi súlyokkal:

\

Helyalapú címzés

A helyalapú címzés a figyelemvektor különböző pozícióiban lévő értékeket összegzi, a megengedett egész számbeli eltolások súlyeloszlásával súlyozva. Ez egyenértékű egy 1-d konvolúcióval egy \(\mathbf{s}_t(.)\) kernellel, amely a pozícióeltolás függvénye. Ezt az eloszlást többféleképpen lehet definiálni. Lásd a 11. ábrát inspirációként.

11. ábra. Az \(\mathbf{s}_t\) eltolási súlyeloszlás ábrázolásának két módja.

A figyelemeloszlást végül egy \(\gamma_t \geq 1\) élesítő skalárral fokozzuk.

\

A figyelemvektor \(\mathbf{w}_t\) t időlépésben történő generálásának teljes folyamatát a 12. ábra szemlélteti. A szabályozó által előállított összes paraméter minden egyes fej esetében egyedi. Ha több író- és olvasófej van párhuzamosan, akkor a vezérlő több halmazt ad ki.

12. ábra. A Neurális Turing-gép címzési mechanizmusainak folyamatábrája. (Kép forrása: Graves, Wayne & Danihelka, 2014)

Pointer Network

Az olyan problémákban, mint a szortírozás vagy az utazó ügynök, a bemenet és a kimenet is szekvenciális adat. Sajnos ezek nem oldhatók meg könnyen a klasszikus seq-2-seq vagy NMT modellekkel, mivel a kimeneti elemek diszkrét kategóriái nem előre meghatározottak, hanem a változó bemeneti mérettől függnek. Az ilyen típusú problémák megoldására javasolt a Pointer Net (Ptr-Net; Vinyals, et al. 2015): Amikor a kimeneti elemek egy bemeneti sorozat pozícióinak felelnek meg. Ahelyett, hogy a figyelmet használná a kódoló rejtett egységeinek egy kontextusvektorba való összevonására (lásd a 8. ábrát), a Pointer Net a bemeneti elemek fölött alkalmazza a figyelmet, hogy minden dekódoló lépésnél egyet válasszon ki kimenetként.

13. ábra. A Pointer Network modell felépítése. (Kép forrása: Vinyals, et al. 2015)

\))\end{aligned}\]

A figyelem mechanizmusa egyszerűsített, mivel a Ptr-Net nem keveri a kódoló állapotokat a kimenetbe a figyelem súlyaival. Így a kimenet csak az állásokra reagál, a bemeneti tartalomra nem.

Transformer

A “Attention is All you Need” (Vaswani, et al., 2017) kétségkívül a 2017-es év egyik legnagyobb hatású és legérdekesebb tanulmánya. Rengeteg fejlesztést mutatott be a lágy figyelemhez, és lehetővé teszi a seq2seq modellezést rekurrens hálózati egységek nélkül. A javasolt “transzformátor” modell teljes egészében az önfigyelem mechanizmusaira épül, szekvencia-alapú rekurrens architektúra használata nélkül.

A titkos receptet a modell architektúrájában hordozza.

Kulcs, érték és lekérdezés

A transzformátor a skálázott pont-produkciós figyelmet alkalmazza: a kimenet az értékek súlyozott összege, ahol az egyes értékekhez rendelt súlyt a lekérdezés és az összes kulcs pont-produkciója határozza meg:

\

Multifejű önfigyelés

14. ábra. Többfejű skálázott pont-produktumos figyelemmechanizmus. (Kép forrása: 2. ábra in Vaswani, et al., 2017)

Ahelyett, hogy csak egyszer számolná ki a figyelmet, a többfejű mechanizmus párhuzamosan többször is lefuttatja a skálázott pont-produktumos figyelmet. A független figyelemkimeneteket egyszerűen összefűzi és lineárisan átalakítja a várt dimenziókba. Feltételezem, a motiváció az, hogy az ensembling mindig segít? 😉 A cikk szerint “a többfejű figyelem lehetővé teszi a modell számára, hogy közösen figyeljen a különböző reprezentációs altérből származó információkra különböző pozíciókban. Egyetlen figyelemfejjel az átlagolás ezt gátolja.”

\\\mathbf{W}^O \\\\text{hol fej}_i &= \text{Figyelem}(\mathbf{Q}\mathbf{W}^Q_i, \mathbf{K}\mathbf{W}^K_i, \mathbf{V}\mathbf{W}^V_i)\end{aligned}\]

ahol \(\mathbf{W}^Q_i\), \(\mathbf{W}^K_i\), \(\mathbf{W}^V_i\) és \(\mathbf{W}^O\) a megtanulandó paramétermátrixok.

Enkóder

15. ábra. A transzformátor kódolója. (A kép forrása: Vaswani, et al, 2017)

A kódoló olyan figyelemalapú reprezentációt hoz létre, amely képes egy adott információ egy potenciálisan végtelenül nagy kontextusból történő lokalizálására.

  • N=6 azonos rétegből álló halom.
  • Minden réteg egy többfejű önfigyelő rétegből és egy egyszerű pozíció szerint teljesen összekapcsolt előrecsatlakozó hálózatból áll.
  • Minden alréteg egy maradékkapcsolatot és egy rétegnormálást fogad el.Minden alréteg azonos dimenziójú \(d_\text{modell} = 512\) adatokat ad ki.

Dekóder

16. ábra. A transzformátor dekódere. (A kép forrása: Vaswani, et al, 2017)

A dekóder a kódolt reprezentációból képes visszakeresni.

  • N = 6 azonos rétegből álló halmaz
  • Minden réteg két alrétegben többfejű figyelmi mechanizmusokkal és egy alrétegben teljesen összekapcsolt előrecsatoló hálózattal rendelkezik.
  • A kódolóhoz hasonlóan minden alréteg elfogad egy maradékkapcsolatot és egy rétegnormalizálást.
  • Az első többfejű figyelem alréteget úgy módosítjuk, hogy megakadályozzuk, hogy a pozíciók a későbbi pozíciókra figyeljenek, mivel nem akarunk a célszekvencia jövőjébe tekinteni az aktuális pozíció előrejelzésekor.

Teljes architektúra

Végül itt a transzformátor architektúrájának teljes képe:

  • A forrás- és célszekvenciák először is beágyazó rétegeken mennek keresztül, hogy azonos dimenziójú \(d_\text{modell} =512\) adatokat állítsanak elő.
  • A pozícióinformáció megőrzése érdekében szinuszhullám-alapú pozíciós kódolást alkalmaznak, és összegzik a beágyazási kimenettel.
  • A végső dekódoló kimenethez egy softmax és egy lineáris réteg járul.

17. ábra. A transzformátor teljes modellarchitektúrája. (Kép forrása: Fig 1 & 2 in Vaswani, et al., 2017.)

A transzformátor modelljének megvalósítása érdekes tapasztalat, itt az enyém: lilianweng/transformer-tensorflow. Olvasd el a kommenteket a kódban, ha érdekel.

SNAIL

A transzformátornak nincs rekurzív vagy konvolúciós szerkezete, még a beágyazási vektorhoz hozzáadott pozicionális kódolással is csak gyengén épül be a szekvenciális sorrend. A pozíciófüggésre érzékeny problémáknál, mint például a megerősítéses tanulás, ez nagy problémát jelenthet.

A Simple Neural Attention Meta-Learner (SNAIL) (Mishra et al., 2017) részben a transzformátor modellben a pozicionálással kapcsolatos probléma megoldására lett kifejlesztve, a transzformátorban lévő önfigyelem mechanizmusának időbeli konvolúciókkal való kombinálásával. Kimutatták, hogy mind a felügyelt tanulási, mind a megerősítéses tanulási feladatokban jónak bizonyult.

18. ábra. A SNAIL modell architektúrája (Kép forrása: Mishra et al., 2017)

A SNAIL a meta-tanulás területén született, ami egy másik nagy téma, ami önmagában is megérne egy posztot. De egyszerűbben fogalmazva, a meta-tanulási modelltől elvárják, hogy hasonló eloszlásban új, eddig nem látott feladatokra is általánosítható legyen. Olvassa el ezt a szép bevezetőt, ha érdekli.

Self-Attention GAN

A Self-Attention GAN (SAGAN; Zhang et al., 2018) önfigyelő rétegeket ad a GAN-hez, hogy mind a generátor, mind a diszkriminátor jobban tudja modellezni a térbeli régiók közötti kapcsolatokat.

A klasszikus DCGAN (Deep Convolutional GAN) a diszkriminátort és a generátort is többrétegű konvolúciós hálózatként ábrázolja. A hálózat reprezentációs kapacitását azonban korlátozza a szűrő mérete, mivel egy pixel jellemzője egy kis helyi régióra korlátozódik. Az egymástól távol eső régiók összekapcsolásához a jellemzőket konvolúciós műveletek rétegein keresztül kell felhígítani, és a függőségek megőrzése nem garantált.

Mivel a (lágy) önfigyelés a látás kontextusában úgy van kialakítva, hogy explicit módon tanulja meg az egy pixel és az összes többi pozíció közötti kapcsolatot, akár egymástól távol eső régiókban is, könnyen képes globális függőségek megragadására. Ezért az önfigyeléssel felszerelt GAN várhatóan jobban kezeli a részleteket, hurrá!

19. ábra. A konvolúciós művelet és az önfigyelés nagyon különböző méretű régiókhoz fér hozzá.

A SAGAN a nem lokális neurális hálózatot alkalmazza a figyelemszámítás alkalmazására. A konvolúciós képjellemzőtérképek \(\mathbf{x}\) három példányra ágazik szét, amelyek megfelelnek a kulcs, az érték és a lekérdezés fogalmainak a transzformátorban:

  • Kulcs: \(f(\mathbf{x}) = \mathbf{W}_f \mathbf{x}\)
  • Kérdés: \(g(\mathbf{x}) = \mathbf{W}_g \mathbf{x}\)
  • Value: \(h(\mathbf{x}) = \mathbf{W}_h \mathbf{x}\)

Ezután a pont-produktumos figyelmet alkalmazzuk az önfigyelem jellemzőtérképek kimenetéhez:

\

20. ábra. Az önfigyelési mechanizmus a SAGAN-ban. (A kép forrása: Zhang et al. 2. ábrája, 2018)

Továbbá a figyelemréteg kimenete megszorozódik egy skálázási paraméterrel, és visszaadódik az eredeti bemeneti jellemzőtérképhez:

\

Míg a skálázási paramétert \(\gamma\) a képzés során 0-ról fokozatosan növeljük, a hálózat úgy van beállítva, hogy először a helyi régiókban lévő jelzésekre támaszkodik, majd fokozatosan megtanul nagyobb súlyt rendelni a távolabbi régiókhoz.

21. ábra. A SAGAN által generált 128×128-as példaképek különböző osztályokhoz. (Kép forrása: Partial Fig. 6 in Zhang et al., 2018)

Cited as:

Ha hibákat és hibákat észlel ebben a bejegyzésben, ne habozzon kapcsolatba lépni velem az alábbi címen, és nagyon szívesen javítom őket azonnal!

Viszlát a következő bejegyzésben 😀

“Attention and Memory in Deep Learning and NLP”. – 2016. január 3. Denny Britz

“Neural Machine Translation (seq2seq) Tutorial”

Dzmitry Bahdanau, Kyunghyun Cho és Yoshua Bengio. “Neurális gépi fordítás az összehangolás és fordítás közös tanulásával”. ICLR 2015.

Kelvin Xu, Jimmy Ba, Ryan Kiros, Kyunghyun Cho, Aaron Courville, Ruslan Salakhudinov, Rich Zemel, and Yoshua Bengio. “Megmutatni, részt venni és elmondani: Neurális képfelirat-generálás vizuális figyelemmel.” ICML, 2015.

Ilya Sutskever, Oriol Vinyals, and Quoc V. Le. “Sequence to sequence learning with neural networks (Sorrendről-sorrendre tanulás neurális hálózatokkal)”. NIPS 2014.

Thang Luong, Hieu Pham, Christopher D. Manning. “Hatékony megközelítések a figyelemalapú neurális gépi fordításhoz”. EMNLP 2015.

Denny Britz, Anna Goldie, Thang Luong, and Quoc Le. “A neurális gépi fordítási architektúrák tömeges feltárása”. ACL 2017.

Ashish Vaswani, et al. “Attention is all you need”. NIPS 2017.

Jianpeng Cheng, Li Dong és Mirella Lapata. “Hosszú rövid távú memória-hálózatok a gépi olvasáshoz”. EMNLP 2016.

Xiaolong Wang, et al. “Non-local Neural Networks”. CVPR 2018

Nikhil Mishra, Mostafa Rohaninejad, Xi Chen és Pieter Abbeel. “Egy egyszerű neurális figyelő meta-tanuló”. ICLR 2018.

“WaveNet: A Generative Model for Raw Audio” – Sep 8, 2016 by DeepMind.

Oriol Vinyals, Meire Fortunato, and Navdeep Jaitly. “Mutatós hálózatok”. NIPS 2015.

Alex Graves, Greg Wayne, and Ivo Danihelka. “Neural turing machines.” arXiv preprint arXiv:1410.5401 (2014).