logo

Gated tilbagevendende enhedsnetværk

Gated Recurrent Unit (GRU) er en type recurrent neural network (RNN), der blev introduceret af Cho et al. i 2014 som et enklere alternativ til LSTM-netværk (Long Short-Term Memory). Ligesom LSTM kan GRU behandle sekventielle data såsom tekst, tale og tidsseriedata.

Den grundlæggende idé bag GRU er at bruge gating-mekanismer til selektivt at opdatere netværkets skjulte tilstand ved hvert tidstrin. Gatingmekanismerne bruges til at styre informationsstrømmen ind og ud af netværket. GRU'en har to portmekanismer, kaldet nulstillingsporten og opdateringsporten.



Nulstillingsporten bestemmer, hvor meget af den tidligere skjulte tilstand, der skal glemmes, mens opdateringsporten bestemmer, hvor meget af det nye input, der skal bruges til at opdatere den skjulte tilstand. Outputtet af GRU'en beregnes baseret på den opdaterede skjulte tilstand.

Ligningerne, der bruges til at beregne nulstillingsporten, opdateringsporten og den skjulte tilstand for en GRU, er som følger:

Nulstil gate: r_t = sigmoid(W_r * [h_{t-1}, x_t])
Opdater gate: z_t = sigmoid(W_z * [h_{t-1}, x_t])
Kandidatens skjulte tilstand: h_t' = tanh(W_h * [r_t * h_{t-1}, x_t])
Skjult tilstand: h_t = (1 – z_t) * h_{t-1} + z_t * h_t’
hvor W_r, W_z og W_h er indlærbare vægtmatricer, x_t er input ved tidstrin t, h_{t-1} er den tidligere skjulte tilstand, og h_t er den aktuelle skjulte tilstand.



Sammenfattende er GRU-netværk en type RNN, der bruger gating-mekanismer til selektivt at opdatere den skjulte tilstand på hvert tidstrin, hvilket giver dem mulighed for effektivt at modellere sekventielle data. De har vist sig at være effektive i forskellige naturlige sprogbehandlingsopgaver, såsom sprogmodellering, maskinoversættelse og talegenkendelse

Forudsætninger: Tilbagevendende neurale netværk, langtidshukommelsesnetværk

For at løse problemet med forsvindende-eksploderende gradienter, man ofte støder på under driften af ​​et grundlæggende tilbagevendende neuralt netværk, blev der udviklet mange variationer. En af de mest berømte variationer er Langtidshukommelsesnetværk (LSTM) . En af de mindre kendte, men lige så effektive variationer er Gated Recurrent Unit Network (GRU) .

I modsætning til LSTM består den kun af tre porte og opretholder ikke en intern celletilstand. Informationen, som er lagret i den interne celletilstand i en LSTM tilbagevendende enhed, er inkorporeret i den skjulte tilstand af den lukkede tilbagevendende enhed. Denne samlede information videregives til den næste Gated Recurrent Unit. De forskellige porte til en GRU er som beskrevet nedenfor:-

    Update Gate(z): Det bestemmer, hvor meget af den tidligere viden, der skal videregives til fremtiden. Det er analogt med Output Gate i en LSTM tilbagevendende enhed. Reset Gate(r): Den bestemmer, hvor meget af den tidligere viden, der skal glemmes. Det er analogt med kombinationen af ​​Input Gate og Forget Gate i en LSTM tilbagevendende enhed. Current Memory Gate( overline{h}_{t} = tanh(Wodot x_{t}+Wodot (r_{t}odot h_{t-1})) ): Det bliver ofte overset under en typisk diskussion om Gated Recurrent Unit Network. Den er inkorporeret i Reset Gate ligesom Input Modulation Gate er en underdel af Input Gate og bruges til at introducere en vis ikke-linearitet i inputtet og til også at gøre inputtet nulmiddel. En anden grund til at gøre det til en underdel af Reset-porten er at reducere den effekt, som tidligere information har på den aktuelle information, der videregives til fremtiden.

Den grundlæggende arbejdsgang for et Gated Recurrent Unit-netværk ligner det for et grundlæggende Recurrent Neural Network, når det er illustreret, hovedforskellen mellem de to er i det interne arbejde inden for hver tilbagevendende enhed, da Gated Recurrent Unit-netværk består af porte, der modulerer nuværende input og den tidligere skjulte tilstand.



Arbejde med en lukket tilbagevendende enhed:

alfabet af tal
  • Tag input til det aktuelle input og den tidligere skjulte tilstand som vektorer.
  • Beregn værdierne for de tre forskellige porte ved at følge nedenstående trin:-
    1. For hver gate beregnes den parametriserede strøminput og tidligere skjulte tilstandsvektorer ved at udføre element-vis multiplikation (Hadamard-produkt) mellem den pågældende vektor og de respektive vægte for hver gate.
    2. Anvend den respektive aktiveringsfunktion for hver gate elementmæssigt på de parametriserede vektorer. Nedenfor er vist listen over porte med aktiveringsfunktion, der skal anvendes til porten.
 Update Gate : Sigmoid Function Reset Gate : Sigmoid Function>
  • Processen med at beregne Current Memory Gate er lidt anderledes. Først beregnes Hadamard-produktet af Reset Gate og den tidligere skjulte tilstandsvektor. Derefter parametreres denne vektor og føjes derefter til den parametrerede strøminputvektor.

    h_{t} = z_{t}odot h_{t-1} + (1-z_{t})odot overline{h}_{t}
  • For at beregne den aktuelle skjulte tilstand defineres først en vektor af enere og de samme dimensioner som inputtet. Denne vektor vil blive kaldt enere og matematisk betegnet med 1. Beregn først Hadamard-produktet for opdateringsporten og den tidligere skjulte tilstandsvektor. Generer derefter en ny vektor ved at trække opdateringsporten fra enere og beregn derefter Hadamard-produktet af den nyligt genererede vektor med den aktuelle hukommelsesport. Tilføj til sidst de to vektorer for at få den aktuelt skjulte tilstandsvektor.
    E_{t} = -y_{t}log(overline{y}_{t})

    Ovennævnte arbejde er angivet som nedenfor: -

Bemærk, at de blå cirkler angiver element-vis multiplikation. Det positive fortegn i cirklen angiver vektoraddition, mens det negative fortegn angiver vektorsubtraktion (vektoraddition med negativ værdi). Vægtmatricen W indeholder forskellige vægte for den aktuelle inputvektor og den tidligere skjulte tilstand for hver gate.

Ligesom tilbagevendende neurale netværk genererer et GRU-netværk også et output ved hvert tidstrin, og dette output bruges til at træne netværket ved hjælp af gradientnedstigning.

Bemærk, at ligesom arbejdsgangen, er træningsprocessen for et GRU-netværk også diagrammatisk lig den for et grundlæggende tilbagevendende neuralt netværk og adskiller sig kun i den interne funktion af hver tilbagevendende enhed.

Algoritmen for tilbageudbredelse gennem tid for et Gated Recurrent Unit-netværk svarer til algoritmen for et Long Short Term Memory Network og adskiller sig kun i differentialkædedannelsen.

Lade E = sum _{t} E_{t}være det forudsagte output ved hvert tidstrin og Rightarrow E = sum _{t} -y_{t}log(overline{y}_{t})være det faktiske output på hvert tidstrin. Så er fejlen ved hvert tidstrin givet af:-

frac{partial E}{partial W} = sum _{t} frac{partial E_{t}}{partial W}

Den samlede fejl er således givet ved summeringen af ​​fejl på alle tidstrin.

frac{partial E_{t}}{partial W} = frac{partial E_{t}}{partial overline{y}_{t}}frac{partial overline{y}_ {t}}{partial h_{t}}frac{partial h_{t}}{partial h_{t-1}}frac{partial h_{t-1}}{partial h_{t -2}}......frac{partial h_{0}}{partial W}
frac{partial E}{partial W} = sum _{t}frac{partial E_{t}}{partial overline{y}_{t}}frac{partial overline{ y}_{t}}{partial h_{t}}frac{partial h_{t}}{partial h_{t-1}}frac{partial h_{t-1}}{partial h_{t-2}}......frac{partial h_{0}}{partial W}

Tilsvarende værdien h_{t} = z_{t}odot h_{t-1} + (1-z_{t})odot overline{h}_{t}kan beregnes som summeringen af ​​gradienterne ved hvert tidstrin.

frac{partial h_{t}}{partial h_{t-1}} = z + (1-z)frac{partial overline{h}_{t}}{partial h_{t- 1}}

Bruger kædereglen og bruger det faktum, at overline{h}_{t} = tanh(Wodot x_{t}+Wodot (r_{t}odot h_{t-1}))er en funktion af frac{partial overline{h_{t}}}{partial h_{t-1}} = frac{partial (tanh(Wodot x_{t}+Wodot (r_{t} odot h_{t-1})))}{partial h_{t-1}} Rightarrow frac{partial overline{h_{t}}}{partial h_{t-1}} = (1 -overline{h}_{t}^{2})(Wodot r)og som faktisk er en funktion af , opstår følgende udtryk:-



Den totale fejlgradient er således givet ved følgende:-



Bemærk, at gradientligningen involverer en kæde af som ligner det for et grundlæggende tilbagevendende neuralt netværk, men denne ligning fungerer anderledes på grund af den interne funktion af derivaterne af .

Hvordan løser Gated Recurrent Units problemet med forsvindende gradienter?

Værdien af ​​gradienterne styres af kæden af ​​derivater startende fra . Husk udtrykket for :-



Ved hjælp af ovenstående udtryk, værdien for er:-



Husk udtrykket for :-



Ved at bruge ovenstående udtryk til at beregne værdien af :-



Da både opdaterings- og nulstillingsporten bruger sigmoid-funktionen som deres aktiveringsfunktion, kan begge have værdier enten 0 eller 1.

Tilfælde 1(z = 1):

I dette tilfælde, uanset værdien af , begrebet er lig med z som igen er lig med 1.

Tilfælde 2A(z=0 og r=0):

I dette tilfælde udtrykket er lig med 0.

Tilfælde 2B(z=0 og r=1):

I dette tilfælde udtrykket er lig med . Denne værdi styres af vægtmatricen som er træningsbar og dermed lærer netværket at justere vægtene på en sådan måde at termen kommer tættere på 1.

Således justerer Back-propagation Through Time algoritmen de respektive vægte på en sådan måde, at værdien af ​​kæden af ​​afledte er så tæt på 1 som muligt.