napredne povratne neuronske mreže
TRANSCRIPT
Napredne povratne neuronske mreže
Martin Tutek13. Svibanj, 2020.
Recap
Podsjetnik: RNN
1
Podsjetnik: RNN ćelija
• Ažuriranje skrivenog stanja RNN ćelije
h(t) = tanh(Whhh(t−1) + Wxhx(t) + bh︸ ︷︷ ︸a(t)
)
• Izlazna projekcijao(t) = Whyh(t) + bo (1)
• Iako uspješno obrađujemo cijeli niz, i dalje koristimo samo jedan slojpovratne neuronske mreže
• Često – samo jedan sloj nije dovoljan za reprezentacijukompliciranijih međuovisnosti u ulaznim podacima
• “Iznad” jednog sloja RNNa možemo dodati još jedan sloj!
2
Duboke povratne neuronskemreže
Duboka (višeslojna) povratna neuronska mreža
3
Duboka povratna neuronska mreža
• Vidite li neki problem s prethodnom skicom?• Dimenzionalnost ulaza x(t) nije jednaka dimenzionalnosti h(t)• U slojevima n > 1 ulazna projekcija ima drukčije dimenzije
Wxh ∈ Rh×h
• Za n = 1
h(t)n = tanh(Wnhhh(t−1)
n + Wnxhx(t) + bnh︸ ︷︷ ︸a(t)n
) (2)
• za n > 1
h(t)n = tanh(Wnhhh(t−1)
n + Wnxh h(t)n−1 + bnh︸ ︷︷ ︸
a(t)n
) (3)
• [!!] Ovu izmjenu ne morate raditi ručno – svaka deep learningbiblioteka će ju napraviti automatski za rnn ćelije s više slojeva
4
Duboka povratna neuronska mreža: backprop
5
Duboka povratna neuronska mreža: sažetak
• RNN mreže mogu biti duboke u slojevima (vertikalno) i vremenu(horizontalno)
• U praksi, vertikalna dubina za klasične varijante RNN mreža možebiti korisna do 4 sloja, a za jako velike skupove podataka i do 8slojeva
• Više od 8 uzastopnih RNN slojeva (čak i za napredne ćelije) u praksine poboljšava performanse značajno
• Dimenzionalnost ulaza prvog sloja (d) i dimenzionalnost ulazapreostalih slojeva (h) su različite
• Ovo nam ne stvara praktične probleme osim ako ne implementiramoćelije samostalno
• Implementacijski, dodavanje više slojeva se provodi postavljanjemargumenta u konstruktoru odabrane RNN ćelije
6
Problemi
• Koliko je receptivno polje svake povratne ćelije?
7
Problemi
• Koliko je receptivno polje svake povratne ćelije?
8
Problem receptivnog polja RNN ćelije
• RNN ćelija (u bilo kojem sloju) u trenutku t vidi samo ulaze x(t) ≤ t• Predikcija u trenutku t je uvjetovana samo dotadašnjim ulazima!• Za probleme gdje nije bitno skrivanje budućeg konteksta, htjeli bi
omogućiti ćelijama da vide cijeli ulazni niz prije nego napravipredikciju
• Ideja: Ako skriveno stanje h(t) RNN ćelije koja čita s lijeva na desnovidi ulaze x(t) ≤ t, onda RNN ćelija koja čita u obrnutom smjeru vidipreostale ulaze x(t) > t
• Zajedno, skrivene reprezentacije te dvije RNN ćelije vide cijeli ulazniniz
9
Dvosmjerne povratne neuronskemreže
Dvosmjerna povratna neuronska mreža
• Dodajemo još jednu, nezavisnu povratnu neuronsku mrežu (←−−RNN)koja funkcionira u obrnutom smjeru od originalne (−−→RNN)
10
• Kako agregiramo izlaze RNNa prije predikcije?
11
Dvosmjerna povratna neuronska mreža
Dvosmjerna povratna neuronska mreža (eng. bidirectional RNN cell,BiRNN) sastoji se od dvije odvojene RNN mreže koje funkcioniraju usuprotnim smjerovima
• −−→RNN koja čita s lijeva na desno• ←−−RNN koja čita s desna na lijevo• Kako kombiniramo skrivena stanja te dvije mreže?
1. Konkatenacijah(t) = [
−→h (t),←−h (t)]
• Dimenzionalnost izlaza mreže je duplo veća• Implementacije RNN ćelija uglavnom automatski konkateniraju
dvosmjerne izlaze2. Uprosječivanje3. Proizvoljna (parametrizirana?) funkcija
12
13
Dvosmjerne povratne neuronske mreže: sažetak
• Dvosmjerna RNN mreža se sastoji od dvije zasebne RNN mreže kojeiteriraju po podacima u različitom smjeru
• Konkatenacija (ili sličan način kombinacije) ulaza iz oba smjeraomogućava da skrivena reprezentacija ima pregled svih ulaza
• Zbog konkatenatcije povećavamo dimenzionalnost izlaznereprezentacije
• Konkatenacija skrivenih stanja u posljednjem sloju je defaultnoponašanje implementacija dvosmjernih povratnih neuronskih mreža
• Alternative: uprosječivanje, proizvoljna funkcija, ...
• Trebamo pripaziti smije li naša mreža imati pristup svim ulaznimpodacima (označavanje slijeda)
14
Problemi s treniranjem povratnihneuronskih mreža
Problem nestajućeg i eksplodirajućeg gradijenta
• Povratne neuronske mreže pate od problema nestajućeg ieksplodirajućeg gradijenta
• Uzrok je dijeljenje parametara kroz velik broj uzastopnih slojeva• Konkretno: problem proizlazi iz opetovanog množenja matricom Whh
• Podsjetnik:
h(t) = tanh(Whhh(t−1) + Wxhx(t) + bh)
• Za početak, analizu ćemo napraviti u skalarnom prostoru
h(t) = tanh(whhh(t−1) + wxhx(t) + bh︸ ︷︷ ︸a(t)
)
• whh,wxh, bh, h, x ∈ R
15
Problem nestajućeg i eksplodirajućeg gradijenta
h(t) = tanh( whhh(t−1) + wxhx(t) + bh︸ ︷︷ ︸a(t)
)
• Zanima nas iznos gradijenta između dva uzastopna skrivana stanja
∂h(t)
∂h(t−1) =∂h(t)
∂a(t)∂a(t)
∂h(t−1)
= ∂th(a(t))∂a(t) whh
= (1− th2(a(t)))whh
tanh = thdth(x)
dx = 1− th2(x)
• Iznos derivacije tangensa hiperbolnog je ograničen!
tanh(x) ∈ (−1, 1)∂tanh(x)
x = (1− tanh2(x)) ∈ (0, 1)
16
Problem nestajućeg i eksplodirajućeg gradijenta
∂h(t)
∂h(t−1) = (1− th2(a(t)))whh
• Primjenjujemo supstituciju:
γ = max(∂tanh(x)/∂x) = 1
• Slično: γσ = max(∂σ(x)/∂x) = 1/4
∂h(t)
∂h(t−1) = γwhh
∂h(T)
∂h(t0) =∏T
t0γwhh
∂h(T)
∂h(t0) = (γwhh)T−t0
t→ T
γ,whh indep. t
17
Uvjet nestajućeg i eksplodirajućeg gradijenta
∂h(T)
∂h(t0)= (γwhh)
T−t0
• Ovisno o vrijednosti argumenta γwhh, za broj vremenskih korakaT− t0 ≫ 0 gradijent eksplodira, nestaje ili je u rijetkom slučajustabilan
(γwhh)T−t0 →
∞ if γwhh > 1 (eksp.)0 if γwhh < 1 (nest.)1 if γwhh ≈ 1
• Za γ = 1, konkretan uvjet vrijedi na sam parametar whh
• Ponovimo analizu u stvarnom prostoru parametara
18
Problem nestajućeg i eksplodirajućeg gradijenta
h(t) = tanh(Whhh(t−1) + Wxhx(t) + bh)
• Zanima nas iznos gradijenta između dva uzastopna skrivena stanja∂h(t)
∂h(t−1) = WThhdiag(∂h(t)
∂a(t) ) (4)
• diag pretvara vektor u dijagonalnu matricu• Norma nad kvadratnim matricama ima svojstvo:
∥AB∥ ≤ ∥A∥ ∥B∥• Pa je gradijent ograničen odozgo:
∂h(t)
∂h(t−1) ≤∥∥WT
hh∥∥∥∥∥∥diag(∂h(t)
∂a(t) )∥∥∥∥ ≤ γλ1 (5)
• Pri čemu je λ1 najveća svojstvena vrijednost matrice Whh, a γ gornjagranica diag( ∂tanh(a(t))
∂a(t) )19
Uvjet nestajućeg i eksplodirajućeg gradijenta
• Generaliziramo jednadžbu (5) na više vremenskih koraka prekopravila ulančavanja
∂h(T)
∂h(t0)≤ (γλ1)
T−t0 (6)
• Ovisno o vrijednosti argumenta γλ1, za broj vremenskih korakaT− t0 ≫ 0 gradijent eksplodira, nestaje ili je stabilan
(γλ1)T−t0 →
∞ if γλ1 > 1 (eksp.)0 if γλ1 < 1 (nest.)1 if γλ1 ≈ 1
(7)
• Vrijednosti matrice Whh moraju poštivati jako stroge uvjete kako nebi došlo do problema pri optimizaciji
• Za detaljniju analizu: Pascanu et al. (2013) [6]
20
Problem učenja dugih veza
• Povratne neuronske mreže konzistentno imaju lošije performanse naduljim primjerima
• Problem je poznat još od 1994.: Bengio et al. [3]• Jedan od uzroka je i nestabilnost signala greške pri propagaciji
unatrag• Problem: eksponencijacija zbog opetovanog množenja matricom
Whh pri propagaciji unatrag uzrokuje eksplodirajući i nestajućigradijent
• Možemo osigurati da su svojstvene vrijednosti matrice povratne vezeiz poželjnog intervala
• “Unitary Evolution Recurrent Neural Networks” Arjovsky et al, [1]• Možemo ukloniti množenje iz povratne veze
• Želimo: rasteretiti parametre povratne neuronske mreže• Matrice Whh,Wxh imaju teške zadatke: filtriranje nepotrebnih
informacija, pamćenje dosad viđenih ulaza, projekcija novihelemenata ulaza u skriveno stanje, ...
• Skriveno stanje h nam služi za izračun izlaza i pamćenje informacija
21
Ćelija s dugoročnom memorijom(LSTM)
Long short term memory (LSTM)
• Notacija:• Vektor h(t) ćemo prenamijeniti samo za računanje izlaza• Uvodimo vektor stanja ćelije c(t) koji samo pamti dosadašnje
informacije• Uvodimo vektor c(t) u kojemu držimo vrijednost kojom ažuriramo
stanje ćelije• Uvodimo f(t) i i(t):
• f(t) zovemo propusnicom zaboravljanja (engl. forget gate)• i(t) zovemo propusnicom novog ulaza (engl. input gate)
• Želimo eliminirati množenje iz povratne relacije
c(t) = c(t−1) + c(t)
∂c(t)∂c(t−1) = I
22
Long short term memory (LSTM)
c(t) = c(t−1) + c(t)
1. Želimo zaboraviti određeni dio informacija iz prošlog stanja
f(t) = σ (W fhh h(t−1) + W fxh x(t) + b fh ) = σ(a(t)f ) (8)
• Svaka propusnica ima svoj skup parametara Whh,Wxh, bh
2. Želimo propustiti podskup informacija iz ulaza
i(t) = σ(Wihhh(t−1) + Wixhx(t) + bih) = σ(a(t)i ) (9)
• Uvrštavamo u rekurzivnu relaciju:c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t) (10)
23
Propusnice: intuicija
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
• ⊙: Hadamardov umnožak - množenje vektora po elementima
a⊙ b =
a0b0. . .
aibi
• Cilj propusnica: filtriranje informacija
σ : R→ (0, 1)
• Sigmoida ima vjerojatnosnu interpretaciju - koju u našem slučajugledamo kao - količinu informacija koje želimo sačuvati
• Zbog ograničenja f(t) i i(t) na interval (0, 1), eliminirali* smo problemeksplodirajućeg gradijenta
• Primjetite da iako je ovaj interval teoretski otvoren zbogasimptotskog ponašanja, u praksi je zatvoren zbog strojne preciznosti
24
Long short term memory (LSTM)
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
• c je međurezultat ažuriranja stanja ćelije
c(t) = tanh(Wchhh(t−1) + Wcxhx(t) + bch) = tanh(a(t)c ) (11)
• Pri izračunu c(t) koristimo i prošlo skriveno stanje• Drukčiji zapis nego u knjizi
• U knjizi s(t) := c(t); g(t) := i(t); q(t) := o(t)• U knjizi ne postoji estetska supstitucija s c(t)
s(t) = f(t)s(t−1) + g(t)(
tanh(Wh(t−1) + Ux(t) + bs))
25
Long short term memory (LSTM)
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
• Skrivena reprezentacija se računa temeljem stanja ćelije
h(t) = o(t) ⊙ tanh(c(t)) (12)
• Pri čemu o(t) zovemo izlaznom propusnicom (engl. output gate):
o(t) = σ(Wohhh(t−1) + Woxhx(t) + boh) = σ(a(t)o ) (13)
• Sažetak:• razdvojili smo ”pamćenje” od skrivene reprezentacije, i pri tome
rasteretili h(t) koji je u običnoj povratnoj ćeliji imao oba zadatka• uveli smo ”stanje ćelije” c(t) koje isključivo pamti informacije, i čije je
vrijednosti teško promijeniti• broj parametara je četiri puta veći od obične RNN ćelije
26
LSTM u slikama
Slike u nastavku preuzete od Cristophera Olaha [link]
Razmislite: koji je redoslijed naziva propusnica na skici?27
LSTM u slikama - stanje ćelije
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
• Stanje ćelije je modificirano samo s jednim operatorom množenja ijednim operatorom zbrajanja - protok informacija je jednostavan
• Stanje ćelije je teško modificirati: preostali parametri moraju“propustiti” izmjenu
28
LSTM u slikama - propusnica zaboravljanja
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
f(t) = σ(Wfhhh(t−1) + Wfxhx(t) + bfh)
29
LSTM u slikama - propusnica novog ulaza
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
i(t) = σ(Wihhh(t−1) + Wixhx(t) + bih)
c(t) = tanh(Wchhh(t−1) + Wcxhx(t) + bch)
30
LSTM u slikama - propusnica novog ulaza
c(t) = tanh(Wchhh(t−1) + Wcxhx(t) + bch)
• Ovisno o literaturi, za privremeni ulaz c(t) se nekad koristi logističkasigmoida, a ponekad tangens hiperbolni
• U implementacijama u pytorchu/tensorflowu koristi se tanh
31
LSTM u slikama - ažuriranje stanja ćelije
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
32
LSTM u slikama - izlazni sloj
h(t) = o(t) ⊙ tanh(c(t))
o(t) = σ(Wohhh(t−1) + Woxhx(t) + boh)
33
Problemi pri učenju RNNova & LSTM: sažetak
• Obične povratne neuronske mreže su problematične za optimizaciju• Čest je problem eksplodirajućeg i nestajućeg gradijenta zbog
opetovanog množenja matricom povratne veze Whh
• U praksi mreže funkcioniraju lošije što je duljina ulaznih primjera veća
• Uvodimo ćeliju s dugoročnim pamćenjem (LSTM)
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
h(t) = o(t) ⊙ tanh(c(t))
• Uklanjamo (matrično) množenje iz unaprijedne (i povratne) veze• Uvodimo propusnice koje imaju zadatak filtriranja informacija• Svaki skup parametara ima svoju odgovornost - želimo ukloniti
preopterećenje pri kojem mreža mora “birati” na što će sekoncentrirati
34
LSTM: problem eksplodirajućeg i nestajućeg gradijenta
c(t) = f(t) ⊙ c(t−1) + i⊙ ct
• Zanima nas gradijent povratne veze
∂c(t)∂c(t−1) = f(t) = σ(a(t)f ) ∈ (0, 1)
• Preko pravila ulančavanja
∂c(T)
∂c(t0)=
T∏t=t0
f(t) ≤ 1
• Kao što vidimo, problem eksplodirajućeg gradijenta je eliminiran!• Je li stvarno?• LSTM ćelija ima dualno skriveno stanje (c(t), h(t))
35
LSTM: problem eksplodirajućeg i nestajućeg gradijenta
h(t) = o(t) ⊙ tanh(c(t))
• Prvo, gledamo izlaznu propusnicu
o(t) = σ(a(t)o ) = σ(Wohhh(t−1) + Woxhx(t) + boh)
• Možemo primjetiti sličan uzorak kao u originalnom problemu kodpovratnih neuronskih mreža:
h(t) = σ(Wohh h(t−1) + Woxhx(t) + boh)⊙ tanh(c(t))
∂h(t)
∂h(t−1) =∂h(t)
∂a(t)o
∂a(t)o∂h(t−1) = WT
ohh∂h(t)
∂a(t)o= . . .
• Eksplozija je i dalje moguća kod unatražnog prolaza vezanog za h(t)
• No u praksi se mnogo rjeđe pojavljuje 36
LSTM - varijante i dodaci
Špijunke (engl. peepholes)
• Pri izračunu vrijednosti propusnica ne vidimo stanje ćelije (c(t−1))• Ideja: dodajemo stanje ćelije pri izračunu vrijednosti propusnice
f(t) = σ(Wfchc(t−1) + Wfhhh(t−1) + Wfxhx(t) + bfh︸ ︷︷ ︸a∗(t)f
) (14)
• Istu izmjenu radimo i za ostale propusnice• Plus: Informacija o trenutnom stanju ćelije pomaže [5]• Minus: povećavamo broj parametara• Minus: uvodimo još jedan smjer u kojem se može dogoditi eksplozija
gradijenta
37
LSTM - varijante i dodaci
Spojene propusnice (engl. fused gates) zaboravljanja i novog ulaza
c(t) = f(t) ⊙ c(t−1) + i(t) ⊙ c(t)
• Ideja: ako brišemo neki udio informacija - trebali bi ga nadomjestiti
c(t) = f(t) ⊙ c(t−1) + (1− f(t))⊙ c(t) (15)
• Plus: Manji broj parametara (25% manje)• Minus: Ne radi jednako dobro kao i LSTM (parametri ipak pomažu)• Minus: Nema istu ekspresivnost (problem zbrajanja)
38
Propusna povratna ćelija
• Propusna povratna ćelija (engl. gated recurrent unit, GRU)• Nažalost - nema intuitivno objašnjenje
39
Propusna povratna ćelija
• Uvodimo r(t) i u(t), vraćamo svu odgovornost na h(t)
• u(t) je propusnica ažuriranja (engl. update gate)
u(t) = σ(Wuhhh(t−1) +Wuxhx(t) + buh
)(16)
• r(t) je propusnica resetiranja (engl. reset gate)
r(t) = σ(Wrhhh(t−1) +Wrxhx(t) + brh
)(17)
• Privremeno stanje h(t)
h(t) = σ(
Whh (r(t) ⊙ h(t−1)) + Wxhx(t) + bh)
(18)
• Konačna povratna relacija:
h(t) = u(t)h(t−1) + (1− u(t))h(t) (19)
40
Varijante povratnih neuronskih mreža: sažetak
• U LSTMima je i dalje moguć isti problem s eksplodirajućim inestajućim gradijentima
• No u praksi se dosta rjeđe pojavljuje• Od popularizacije LSTMa, razvijen je niz varijanti ćelija povratnih
neuronskih mreža1. LSTM sa špijunkama (peepholes):
• Budući da smo vidjeli da je uvjet eksplodirajućeg gradijenta i daljeprisutan - možemo i eksplicitno dodati informaciju o stanju ćelije ujednadžbe ažuriranja
2. Spojene propusnice• Da bi uštedili na količini parametara, spajamo propusnice
zaboravljanja i novog ulaza3. Propusna povratna ćelija (GRU)
• Iskorištava spojene propusnice, izmjenjuje semantiku propusnica• U praksi korištena jednako kao i LSTM ovisno o preferenci
(performanse su otprilike jednake)
41
Analiza: Slijed-u-slijed
Problem strojnog prevođenja
• Klasifikacijski problem nepoznate duljine: za ulazni slijed riječiželimo generirati izlazni slijed riječi
• Na izlazu imamo višeklasnu klasifikaciju pri čemu je veličina izlaznogvokabulara broj klasa
• Skupovi podataka WMT1, IWSLT2 (ažurirani povremeno uzkonferencije)
• primjer ulaza i izlaza za jednu instancu WMT-14 en-de korpusa:
Parliament Does Not Support Amendment Freeing TymoshenkoKeine befreiende Novelle für Tymoshenko durch das Parlament
1https://www.statmt.org/wmt15/translation-task.html2https://sites.google.com/site/iwsltevaluation2015/mt-track
42
Problem strojnog prevođenja: preliminarno
• Ciljne varijable:• Riječi na ciljnom jeziku: {keine, befreiende,Novelle, . . .}• Ciljne varijable pretvaramo u indekse: {0, . . . ,Vout}• Biramo veličinu ciljnog vokabulara
• Ulazne varijable• Odabiremo veličinu ulaznog vokabulara• Riječi mapiramo na indekse koji odgovaraju retcima u ugradbenoj
(embedding) matrici• Ovaj pristup je sličan označavanju slijeda, no:
1. Ne znamo broj izlaznih varijabli2. Što su ulazi mreže pri generiranju izlaznog slijeda?
43
Slijed-u-slijed
Podsjetnik: slijed u slijed
• U nastavku ćemo prvo formalizirati slijed u slijed pristup, a potom sebaviti s konkretnim metodama rješavanja navedenih problema
44
Slijed-u-slijed: formalizacija
• Razdvajamo problem na dva podproblema1. Pročitati ulazni slijed i izgraditi što bolju reprezentaciju u skrivenom
sloju: Mreža ”čitač” (encoder)2. Na temelju skrivene reprezentacije generirati što ispravniji slijed
riječi: Mreža ”pisač” (decoder)
45
Slijed-u-slijed: formalizacija
• Posljednje skriveno stanje mreže čitača je koristi se za inicijalizacijupočetnog skrivenog stanja mreže pisača
h(0)dec = f(h(T)
enc)
• U praksi, najčešće se posljednje skriveno stanje čitača direktnoprosljeđuje u pisač (h(0)dec = h(T)
enc)• No, f može biti proizvoljna funkcija (neuronska mreža)• Razmislite: kad bi to bilo potrebno?
• Primjetite: pisač ne prima direktan signal klasifikacijskog gubitka• Signal gubitka prvo propagira kroz cijeli pisač
• Problem: što su nam ulazi mreže pisača?
46
Slijed-u-slijed: ulazi pisača
Kao ulaze koristimo izlaze generirane u prethodnom koraku
47
Slijed-u-slijed: generiranje izlaznog slijeda
• Ulaz pisača u vremenskom koraku t > 0 je najvjerojatniji izlaz pisačaiz prethodnog koraka
• Što s prvim vremenskim korakom t = 0?• Prvi ulaz mreže pisača je posebni simbol koji označava početak
slijeda (<sos>, start-of-sentence)• Kada prestajemo generirati?
• Za signal prestanka generiranja koristimo posebni simbol kojioznačava kraj slijeda (<eos>, end-of-sentence)
• <eos> se dodaje na kraj svakog ciljnog slijeda skupa podataka• Prekidamo generiranje kad pisač generira <eos> ili pređemo
ograničenje duljine generiranog slijeda• Zbog težine učenja slijed-u-slijed zadataka u ranoj fazi optimizacije,
često koristimo teacher forcing• S vjerojatnošću p za instancu kao ulaze pisača koristimo stvarne
izlaze prethodnih koraka• S vjerojatnošću 1− p za instancu kao ulaze pisača koristimo ulaze
generirane u prethodnom koraku
48
Slijed-u-slijed: generiranje izlaznog slijeda
• Kako generiramo riječi pri evaluaciji?• Slijed riječi koje su najvjerojatnije u svakom koraku (greedy pristup)
ne mora biti najvjerojatniji izlazni slijed!• Pristupi generiranju izlaznog slijeda:
1. Pohlepni pristup: u svakom koraku biramo najvjerojatniju riječ• Kao i sa svim pohlepnim algoritmima, moguće da najbolje rješenje
ne sadrži riječ koja je najvjerojatnija (u nekom koraku)• Ovaj pristup nije dobar za uzorkovanje jer generira determinističke
slijedove2. Selekcija proporcionalna vjerojatnosti (roulette wheel)
• Selekcijom proporcionalnom vjerojatnosti unosimo dozu nasumičnostiu izbor izlaznog niza, te time potičemo različitost u izlazu
• Želimo li stvarno da postoji ikakva vjerojatnost da odaberemo lošuriječ
3. Pretraživanje zrakom (eng. beam search)• U svakom koraku razmatramo trenutačno najboljih k rezultata• k je širina zrake (eng. beam width)
49
Slijed-u-slijed: vizualizacija pretraživanja zrakom
50
Slijed-u-slijed: vizualizacija pretraživanja zrakom
51
Slijed-u-slijed: vizualizacija pretraživanja zrakom
52
Slijed-u-slijed: vizualizacija pretraživanja zrakom
53
Slijed-u-slijed: sažetak
• Kompleksnost slijed-u-slijed problema proizlazi iz varijabilne duljineciljnog slijeda
• Umjesto “jednostavne” klasifikacije temeljem konteksta, mreža moranaučiti generirati cijeli izlazni slijed
• Problemu pristupamo razdvajanjem na (1) čitanje ulaznog slijeda i(2) generiranje izlaznog slijeda
• Mreže čitač (encoder) i pisač (decoder) s zasebnim parametrima• Rana faza treniranja je problematična
• Mreži pomažemo pomoću teacher forcinga (“šalabahtera”) u nekomudjelu primjera iz skupa za treniranje
• Generiranje podataka je problematično• Želimo maksimizirati vjerojatnost slijeda, a ne zasebnih komponenti• Koristimo beam search gdje pamtimo k trenutačno najvjerojatnijih
slijedoova za svaki vremenski korak generiranja
54
Pozornost
Pozornost
Uspješnost strojnog prevođenja u ovisnosti o duljini rečenice. RNNsearchmodeli koriste pažnju. Slika iz Bahdanau et al. [2].
• Uz sve modifikacije koje smo napravili nad običnom RNN ćelijom,uspješnost modela vidljivo opada što duljina rečenice više raste(pamćenje) 55
Pozornost
• Motivacija:• ”When I’m translating a sentence, I pay special attention to the word
I’m presently translating. When I’m transcribing an audio recording,I listen carefully to the segment I’m actively writing down. And ifyou ask me to describe the room I’m sitting in, I’ll glance around atthe objects I’m describing as I do so.”
• Naša skrivena reprezentacija nije savršena (ima ograničenu veličinu)• Ako ćelija ne može zapamtiti sve relevantne informacije, možda
može zapamtiti gdje su se nalazile?• Trenutačnu skrivenu reprezentaciju koristimo kao upit (eng. query)• Pretražujemo prethodne skrivene reprezentacije (memoriju) kao ključ
(eng. keys)• Računamo sličnost* između upita i ključa• Rezultat je težinsko sažimanje ključeva gdje su težine izračunate
temeljem sličnosti upita i ključa
56
Pozornost: osnovna formulacija
• Funkcija pozornosti vraća skalarnu mjeru sličnosti dva vektora
a(t) = attn(q(t), k(t)) a(t) ∈ R; q ∈ Rq; k ∈ Rk
• Pri čemu su q(t) = h(t)dec, k(t) = h(t)enc skrivena stanja pisača i čitača• Želimo dobiti mjeru sličnosti između upita i svih ključeva
a = attn(q,K) a ∈ RT;K = [k(1), . . . , k(T)]
• Mjeru sličnosti normaliziramo na vjerojatnosnu distribuciju
α = softmax(a)
• Konačni izlaz je težinsko sažimanje skrivenih stanja mreže čitača
outattn =T∑t
αtk(t) (20)
57
Pozornost: osnovna formulacija
• Izlaz pozornosti nam je vektor iste veličine kao i skriveno stanjemreže čitača koji sadrži težinsko sažimanje skrivenih stanja čitača
• Taj vektor konkateniramo na skriveno stanje mreže pisača prijegeneriranja riječi (ne koristi se u RNNu)
h∗(t)dec = [h(t)dec; outattn]
• Kako izgleda funkcija pozornosti?1. Bahdanau pozornost: sloj neuronske mreže
a(t) = w2tanh(W1[q(t); k(t)])
• Pri čemu je W1 matrica, a w2 vektor parametara2. Skalarni produkt (uvjet: Rq = Rk)
a(t) = q(t) · k(t)√dim(k)
• Razmislite: zašto se primjenjuje skaliranje dimenzijom
58
Pozornost: vizualizacija
59
Pozornost: vizualizacija
60
Pozornost
Sličnosti između skrivenih stanja čitača i pisača za problem strojnog prevođenja 61
Pozornost: općenita formulacija
• Općenita formulacija pozornosti razlikuje vrijednosti i ključeve
k(t) = fk(h(t)enc) v(t) = fv(h(t)
enc)
• fk i fv su transformacije kojima iz vektora skrivenog stanjageneriramo vektor ključa i vrijednosti
• U praksi, fk i fv su linearne transformacijek(t) = Wkh(t)
enc v(t) = Wvh(t)enc
• Općenit izračun pozornosti
α = softmax(attn(q,K)) (21)
outattn =T∑t
αt v(t) (22)
• Kako koristiti pozornost u problemima koji nisu slijed-u-slijed?
62
Pozornost u klasifikaciji slijeda
• Problem: ako računamo pozornost na skrivenim stanjima iste mreže,upit će nam biti skriveno stane nad kojim računamo sličnost
• U praksi, skriveno stanje na temelju kojeg računamo upit često imadominantnu težinu α(t) neovisno o primjeni transformacija ključeva ivrijednosti
• Samopozornost (eng. self-attention)• Izbacujemo upit iz formulacije
α = softmax( attn(K) ) (23)
outattn =T∑t
αtv(t) (24)
• Reformulacija funkcija pozornosti
a(t) = w2tanh(W1 k(t) )
a(t) = w · k(t)√dim(k) 63
Pozornost u klasifikaciji slijeda: vizualizacija
64
Sažetak
• Uz sve modifikacije i varijante – povratne mreže i dalje imajuproblema s učenjem dugih veza
• Uvodimo metodu pozornosti• Pozornost je težinsko sažimanje skrivenih stanja• Težine su izračunate temeljem skrivenih stanja i upita (bitnost
informacije je funkcija informacije i potrebe)• U osnovnom slijed-u-slijed pristupu upit je trenutačno skriveno stanje
mreže pisača, a gledamo vrijednosti skrivenih stanja mreže čitača• Generalizirani pristup pozornosti možemo primjeniti i na
klasifikaciju/označavanje slijeda• Varijante funkcije pozornosti
• Bahdanau pozornost: jednoslojna neuronska mreža• Skalarni produkt pozornost: direktna usporedba upita i ključa
• Pozornost je (od uvođenja) korištena uz praktički sve varijantepovratnih neuronskih mreža
65
Pozornost je ... sve što trebamo?
66
Modeli bazirani isključivo na pozornosti
Anotirani članak s primjerima iz koda:http://nlp.seas.harvard.edu/2018/04/03/attention.html
67
Primjene, primjeri, SOTA
67
Weaknesses of RNN Variants
Članak: https://arxiv.org/pdf/1805.04908.pdf
• Radovi su pokazali da su:1. RNN-ovi s sigmoidalmom aktivacijskom funkcijom i beskonačnom
preciznosti stanja mogu simulirati Turingov stroj2. Nedavno, ovo je prošireno i na aktivacijsku funkciju ReLU
• No, pretpostavke su da:1. Cijeli ulaz je učitan u povratnu neuronsku mrežu, i beskonačno
vremena je dostupno povratnoj neuronskoj mreži za izračun2. Beskonačna preciznost
• Eksperiment brojanja: RNN arhitekture trebaju prepoznati nizoveoblika anbn ili anbncn
68
69
Demohttp://distill.pub/2016/augmented-
rnns/
69
Generirani rukopis
Demo:http://distill.pub/2016/handwriting/
70
Generiranje govora
https://google.github.io/tacotron/
71
WaveNet - generating sound from text
Demo:https://deepmind.com/blog/
wavenet-generative-model-raw-audio/
72
Generiranje opisa slika
Generiranje opisa slike pomoću pozornosti i povratnih mreža [7] 73
Strojno prevođenje
Google translate https://research.googleblog.com/2016/09/a-neural-network-for-machine.html
74
Google translate network arhitecture
75
Pitanja?
75
Pitanja? :)
75
U knjizi
• Relevantna poglavlja• 10.1, 10.2, 10.3, 10.4, 10.5, 10.7, 10.10, 10.11
References i
M. Arjovsky, A. Shah, and Y. Bengio.Unitary evolution recurrent neural networks.In International Conference on Machine Learning, pages 1120–1128,2016.D. Bahdanau, K. Cho, and Y. Bengio.Neural machine translation by jointly learning to align andtranslate.arXiv preprint arXiv:1409.0473, 2014.Y. Bengio, P. Simard, and P. Frasconi.Learning long-term dependencies with gradient descent isdifficult.IEEE transactions on neural networks, 5(2):157–166, 1994.
References ii
K. Cho, B. Van Merriënboer, C. Gulcehre, D. Bahdanau,F. Bougares, H. Schwenk, and Y. Bengio.Learning phrase representations using rnn encoder-decoder forstatistical machine translation.arXiv preprint arXiv:1406.1078, 2014.F. A. Gers and J. Schmidhuber.Recurrent nets that time and count.In Neural Networks, 2000. IJCNN 2000, Proceedings of theIEEE-INNS-ENNS International Joint Conference on, volume 3,pages 189–194. IEEE, 2000.R. Pascanu, T. Mikolov, and Y. Bengio.On the difficulty of training recurrent neural networks.ICML (3), 28:1310–1318, 2013.
References iii
K. Xu, J. Ba, R. Kiros, K. Cho, A. Courville, R. Salakhutdinov, R. S.Zemel, and Y. Bengio.Show, attend and tell: Neural image caption generation withvisual attention.arXiv preprint arXiv:1502.03044, 2(3):5, 2015.