- 1D signály
- zvuk, text, obrázek, video, dokumenty, …
- proč né konvoluce
- trvá, než se informace o 1 slově dostane na daný neuron
- jsou hodně lokální
- pomale propagují data
- propojení vnitřku jedním směrem
- kromě toho, že informace vstup -> neuron -> výstup, tak se šíří v síti
- vstupní vektory, výstupní vektory a vstupní stavový vektor a výstupní stavový vektor
- $h_t = \tanh(W_{hh}h_{t-1} + W_{xh}x_t)$
- úplně propojená funkce s aktivační funkcí, jako perceptron
- $h_t$ je skrytý stav
- velký problém se naučit a zapamatovat zavilosti
- např bere posledních 20 slov
- derivace = z více míst se sčítá
- residual net pro rekurentní sítě
- bude si lépe pamatovat informace/zavilosti na větší vzdálenosti, než vanila RNN
- $z_t$ = forget gate
- jdou tam hodnoty mezi 1 a 0
- $h_{t-1}$ minulý skrytý stav
- chceme se dívat dopředu na slova
- např. pochopení slova v knížce
- 2 nezávislé směry - dopředný a zpětný
- slova na čísla nedává smysl, blbě se rozpoznávají slova číselně blízko u sebe
- → text jako mnohorozměrný vektor
- slovo enkódované jako identita
- vektory ve W zachycují vlastnosti slova = Embedding
- lookup tabulka s enkódováním slov = necháme ji si učit
- center word + context words = okolí slov, kontext
- když mohu použít slovo na stejném místě → měli by mít podobný embedding
- skipgram - vezu prostřední slovo a jeho embedding, snažím se odhadnou okolní slovo
- continuous bag of words - snažím se uhodnout center word z okolních slov
- nakonec dáme 1 regrese vrstvu, co hodnotí, jak pozitivní je text
- pořád problém se zapamatováním informace - víc klade důraz nakonec
- spíše pak sečíst/zagregovat výstupy ze všech rekurentních neuronů
- podobně jako regrese, nakonec dáme klasifikační vrstvu
- pro každý token klasifikační výstup
- matice s výškou jako je vstup a šířkou pro každou kategorii (4)
- softmax
- loss funkce = crossentropie
- vstup: text + otázka - skrytý stav
- síť bude řešit klasifikaci, jestli vstupní věta je odpovědí na otázku
- problém s uchování informace přes dlouhé skryté stavy
- propojené všechno se vším
- výstup se může dívat kam chce
- neříkáme, kam se má dívat
- učí se sama, kam se má dívat
- dáme attention, síť se rozhoduje na jaká slova se dívá
- kauzální - dívám se do minulosti
- full - dívá se všude
- agregace = váhová suma
- váhy se počítají dynamicky, vůči tomu, co vidíme na aktuálním místě
- Query = jakou informaci chci získat
- klíče = informace, které ty vektory obsahují
- podobnost 2 vektorů - dot product
- Wq = jak ze vstupniho vektoru ziskat, jakou informace je potreba
- Wk = klice, jakou informace mame ve vektoru
- Wv = tohle je informace jakou mam a kterou muzes pouzit
- učí se odkud vytahovat informace
- pro uložení/naučení pozice slov je potřeba přidat positional encoding
- bez toho je neuronce pozice slov jedno a je to jako bychom slova naházeli do pytle a dali na naučení
- dáme ji přeházená slova, nebude to vadit a vrátí se akorát v rozházeném pořadí
- speciální encoder, co vidí vstup a zpracovává ho naráz
- pro text input embedding
- vevnitř multi head attention = maticové násobení se softmaxem, přenášení informací mezi jednotlivými vektory ve vstupu
- matice query, key a value, ty se učí
- reziduální spojení s normalizací, aby nebyly moc velké hodnoty
- dvouvrstvý multilayer perceptron
- encoder zachovává velikost vstupu
- decoder - začátek stejný jako u encoderu
- akorát dvoje attention
- druhý attention má query z outputu a key a value z encoderu - cross attention
- první attention ve decoderu = self-attention - dívá se na sebe sama - dívá se jen do minulosti
- masked attention = vidí jen minulost
- některá slova jsou masked (schovaná) a chceme aby se uhodlo, co tam může být za slovo
- donutí chápat text!
- kontextový embeddingy
- nereprezentují 1 slovo, ale kontext
- self-supervised učení
- nedávám modelu jen data, ale i otázku, co chci vědět
- například: dokument a rozpoznání co je na X pozici dokumentu
- n-tý objekt v obrázku - pozice a jeho třída