Gated Recurrent Unit (GRU) je vrsta ponavljajoče se nevronske mreže (RNN), ki so jo predstavili Cho et al. leta 2014 kot enostavnejša alternativa omrežjem dolgotrajnega kratkoročnega spomina (LSTM). Tako kot LSTM lahko GRU obdeluje zaporedne podatke, kot so besedilo, govor in podatki časovnih vrst.
Osnovna ideja za GRU je uporaba mehanizmov prehodov za selektivno posodabljanje skritega stanja omrežja v vsakem časovnem koraku. Zaporni mehanizmi se uporabljajo za nadzor pretoka informacij v omrežju in iz njega. GRU ima dva zaporna mehanizma, imenovana vrata za ponastavitev in vrata za posodobitev.
Vrata za ponastavitev določajo, koliko prejšnjega skritega stanja je treba pozabiti, medtem ko vrata za posodobitev določajo, koliko novega vnosa je treba uporabiti za posodobitev skritega stanja. Izhod GRU se izračuna na podlagi posodobljenega skritega stanja.
Enačbe, uporabljene za izračun vrat za ponastavitev, vrat za posodobitev in skritega stanja GRU, so naslednje:
Ponastavi vrata: r_t = sigmoid(W_r * [h_{t-1}, x_t])
Posodobi vrata: z_t = sigmoid(W_z * [h_{t-1}, x_t])
Skrito stanje kandidata: h_t’ = tanh(W_h * [r_t * h_{t-1}, x_t])
Skrito stanje: h_t = (1 – z_t) * h_{t-1} + z_t * h_t’
kjer so W_r, W_z in W_h matrike uteži, ki jih je mogoče naučiti, x_t je vnos v časovnem koraku t, h_{t-1} je prejšnje skrito stanje in h_t je trenutno skrito stanje.
Če povzamemo, omrežja GRU so vrsta RNN, ki uporabljajo mehanizme preklopa za selektivno posodobitev skritega stanja v vsakem časovnem koraku, kar jim omogoča učinkovito modeliranje zaporednih podatkov. Izkazalo se je, da so učinkoviti pri različnih nalogah obdelave naravnega jezika, kot so jezikovno modeliranje, strojno prevajanje in prepoznavanje govora.
linux ukazi
Predpogoji: Ponavljajoče se nevronske mreže, Omrežja dolgotrajnega kratkoročnega spomina
Za rešitev težave z izginjajočimi in eksplozivnimi gradienti, ki se pogosto pojavlja med delovanjem osnovne ponavljajoče se nevronske mreže, je bilo razvitih veliko različic. Ena najbolj znanih različic je Dolgo kratkoročno pomnilniško omrežje (LSTM) . Ena manj znanih, a enako učinkovitih različic je Gated Recurrent Unit Network (GRU) .
Za razliko od LSTM je sestavljen le iz treh vrat in ne vzdržuje stanja notranje celice. Informacije, ki so shranjene v stanju notranje celice v ponavljajoči se enoti LSTM, so vključene v skrito stanje ponavljajoče se enote Gated. Te skupne informacije se prenesejo na naslednjo zaprto ponavljajočo se enoto. Različna vrata GRU so opisana spodaj:
- Vrata posodobitve (z): Določajo, koliko preteklega znanja je treba prenesti v prihodnost. Podoben je izhodnim vratom v ponavljajoči se enoti LSTM. Ponastavi vrata(r): Določa, koliko preteklega znanja je treba pozabiti. Podobno je kombinaciji vhodnih vrat in vrat za pozabo v ponavljajoči se enoti LSTM. Trenutna pomnilniška vrata (
): Med tipično razpravo o Gated Recurrent Unit Network se pogosto spregleda. Vgrajena je v vrata za ponastavitev, tako kot so vrata za vhodno modulacijo poddel vhodnih vrat in se uporabljajo za vnos nekaj nelinearnosti v vhod in za vnos ničelne vrednosti. Drug razlog, da postane poddel vrat za ponastavitev, je zmanjšanje učinka prejšnjih informacij na trenutne informacije, ki se prenašajo v prihodnost.Osnovni potek dela omrežja z zaprtimi ponavljajočimi se enotami je podoben kot pri osnovni ponavljajoči se nevronski mreži, ko je prikazano, glavna razlika med obema pa je v notranjem delovanju znotraj vsake ponavljajoče se enote, saj so omrežja z zaprtimi ponavljajočimi se enotami sestavljena iz vrat, ki modulirajo trenutni vnos in prejšnje skrito stanje.
pretvarjanje niza v celo število

Delovanje zaprte ponavljajoče se enote:
- Vzemi trenutni vnos in prejšnje skrito stanje kot vektorja.
- Izračunajte vrednosti treh različnih vrat tako, da sledite spodnjim korakom:-
- Za vsaka vrata izračunajte parametrirani trenutni vhod in predhodno skrite vektorje stanja tako, da izvedete množenje po elementih (Hadamardov produkt) med zadevnim vektorjem in ustreznimi utežmi za vsaka vrata.
- Uporabite ustrezno aktivacijsko funkcijo za vsak element vrat na parametriziranih vektorjih. Spodaj je podan seznam vrat s funkcijo aktivacije, ki se uporablja za vrata.
Update Gate : Sigmoid Function Reset Gate : Sigmoid Function>
- Postopek izračunavanja trenutnih vrat pomnilnika je nekoliko drugačen. Najprej se izračuna Hadamardov produkt vrat za ponastavitev in predhodno skritega vektorja stanja. Nato se ta vektor parametrizira in nato doda parametriziranemu trenutnemu vhodnemu vektorju.

- Za izračun trenutnega skritega stanja je najprej definiran vektor enih in istih dimenzij kot je vhod. Ta vektor se bo imenoval enice in bo matematično označen z 1. Najprej izračunajte Hadamardov produkt vrat za posodobitev in predhodno skritega vektorja stanja. Nato ustvarite nov vektor z odštevanjem posodobitvenih vrat od enic in nato izračunajte Hadamardov produkt novo ustvarjenega vektorja s trenutnimi pomnilniškimi vrati. Na koncu dodajte dva vektorja, da dobite trenutno skriti vektor stanja.
Zgoraj navedeno delo je navedeno spodaj: -

Upoštevajte, da modri krogi označujejo elementno množenje. Pozitivni predznak v krogu označuje vektorski seštevek, medtem ko negativni predznak označuje vektorsko odštevanje (vektorski seštevek z negativno vrednostjo). Matrika uteži W vsebuje različne uteži za trenutni vhodni vektor in prejšnje skrito stanje za vsaka vrata.
Tako kot ponavljajoče se nevronske mreže tudi omrežje GRU ustvari izhod v vsakem časovnem koraku in ta izhod se uporablja za usposabljanje omrežja z gradientnim spuščanjem.

Upoštevajte, da je tako kot potek dela tudi proces usposabljanja za omrežje GRU diagrammatsko podoben procesu osnovne ponavljajoče se nevronske mreže in se razlikuje le v notranjem delovanju vsake ponavljajoče se enote.
Algoritem povratnega širjenja skozi čas za omrežje z zaprtimi ponavljajočimi se enotami je podoben tistemu pri omrežju dolgotrajnega pomnilnika in se razlikuje le v oblikovanju diferencialne verige.
Pustiti
biti predvideni rezultat v vsakem časovnem koraku in
biti dejanski rezultat v vsakem časovnem koraku. Potem je napaka v vsakem časovnem koraku podana z:-
Skupna napaka je torej podana s seštevkom napak v vseh časovnih korakih.
Podobno vrednost
se lahko izračuna kot vsota gradientov v vsakem časovnem koraku.
Z uporabo verižnega pravila in z uporabo dejstva, da
je funkcija
in kar je dejansko funkcija
, nastane naslednji izraz: -
Tako je skupni gradient napake podan z naslednjim:
Upoštevajte, da gradientna enačba vključuje verigo
ki je videti podobno kot pri osnovni ponavljajoči se nevronski mreži, vendar ta enačba deluje drugače zaradi notranjega delovanja derivatov
.
Kako Gated Recurrent Units rešujejo problem izginjajočih gradientov?
Vrednost gradientov je nadzorovana z verigo izpeljank, ki se začnejo od
. Spomnimo se izraza za
:-
Z uporabo zgornjega izraza je vrednost za
je:-
Spomnimo se izraza za
:-
Z zgornjim izrazom izračunajte vrednost
:-
Ker vrata za posodobitev in ponastavitev uporabljajo sigmoidno funkcijo kot svojo aktivacijsko funkcijo, lahko oba sprejmeta vrednosti 0 ali 1.
Primer 1 (z = 1):
V tem primeru ne glede na vrednost
, izraz
je enako z, kar je nato enako 1.
Primer 2A (z=0 in r=0):
V tem primeru izraz
je enako 0.
Primer 2B(z=0 in r=1):
V tem primeru izraz
je enako
. To vrednost nadzira matrika uteži, ki jo je mogoče učiti, in tako se omrežje nauči prilagoditi uteži tako, da izraz
se približa 1.
Tako algoritem povratnega širjenja skozi čas prilagodi ustrezne uteži na tak način, da je vrednost verige izpeljank čim bližja 1.
