logo

Užblokuoti pasikartojančių padalinių tinklai

Gated Recurrent Unit (GRU) yra pasikartojančio neuroninio tinklo (RNN) tipas, kurį pristatė Cho ir kt. 2014 m. kaip paprastesnė alternatyva ilgalaikės trumpalaikės atminties (LSTM) tinklams. Kaip ir LSTM, GRU gali apdoroti nuoseklius duomenis, pvz., tekstą, kalbą ir laiko eilučių duomenis.

Pagrindinė GRU idėja yra naudoti blokavimo mechanizmus, kad būtų galima pasirinktinai atnaujinti paslėptą tinklo būseną kiekviename laiko etape. Štabų mechanizmai naudojami informacijos srautui į tinklą ir iš jo valdyti. GRU turi du blokavimo mechanizmus, vadinamus atstatymo vartais ir atnaujinimo vartais.



Atstatymo vartai nustato, kiek ankstesnės paslėptos būsenos reikia pamiršti, o atnaujinimo vartai nustato, kiek naujos įvesties reikia panaudoti paslėptai būsenai atnaujinti. GRU išvestis apskaičiuojama pagal atnaujintą paslėptą būseną.

Apskaičiuojant GRU atstatymo vartus, atnaujinimo vartus ir paslėptą būseną naudojamos lygtys:

Iš naujo nustatyti vartus: r_t = sigmoidas (W_r * [h_{t-1}, x_t])
Atnaujinti vartus: z_t = sigmoidas (W_z * [h_{t-1}, x_t])
Kandidato paslėpta būsena: h_t' = tanh(W_h * [r_t * h_{t-1}, x_t])
Paslėpta būsena: h_t = (1 – z_t) * h_{t-1} + z_t * h_t'
kur W_r, W_z ir W_h yra išmokstamos svorio matricos, x_t yra įvestis laiko žingsnyje t, h_{t-1} yra ankstesnė paslėpta būsena, o h_t yra dabartinė paslėpta būsena.



Apibendrinant galima pasakyti, kad GRU tinklai yra RNN tipas, kuris naudoja blokavimo mechanizmus, kad selektyviai atnaujintų paslėptą būseną kiekviename laiko etape, leidžiant jiems efektyviai modeliuoti nuoseklius duomenis. Įrodyta, kad jie yra veiksmingi atliekant įvairias natūralios kalbos apdorojimo užduotis, tokias kaip kalbos modeliavimas, mašininis vertimas ir kalbos atpažinimas

Būtinos sąlygos: pasikartojantys neuroniniai tinklai, ilgalaikės trumpalaikės atminties tinklai

Norint išspręsti nykstančių-sprogstančių gradientų problemą, su kuria dažnai susiduriama veikiant pagrindiniam pasikartojančiam neuroniniam tinklui, buvo sukurta daug variantų. Vienas garsiausių variantų yra Ilgalaikės trumpalaikės atminties tinklas (LSTM) . Vienas iš mažiau žinomų, bet ne mažiau veiksmingų variantų yra Užblokuotas pasikartojančių vienetų tinklas (GRU) .

Skirtingai nuo LSTM, jis susideda tik iš trijų vartų ir nepalaiko vidinės ląstelės būsenos. Informacija, kuri saugoma vidinėje ląstelės būsenoje LSTM pasikartojančiame įrenginyje, įtraukiama į paslėptą nuolatinio bloko būseną. Ši kolektyvinė informacija perduodama kitam nuolatiniam blokui. Skirtingi GRU vartai aprašyti toliau:

    Atnaujinimo vartai (z): nustato, kiek praeities žinių reikia perduoti ateityje. Jis yra analogiškas išvesties vartams LSTM pasikartojančiame įrenginyje. Reset Gate(r): Jis nustato, kiek praeities žinių reikia pamiršti. Tai analogiška įvesties vartų ir užmiršimo vartų deriniui LSTM pasikartojančiame įrenginyje. Current Memory Gate( overline{h}_{t} = tanh(Wodot x_{t}+Wodot (r_{t}odot h_{t-1})) ): Tai dažnai nepastebima per įprastą diskusiją apie besikartojančių įrenginių tinklą. Jis yra įtrauktas į atstatymo vartus, kaip ir įvesties moduliavimo vartai yra įvesties vartų antrinė dalis ir yra naudojami tam, kad įvestis būtų netiesiška, o įvestis taip pat būtų nulinė. Kita priežastis, kodėl ją reikia padaryti atkūrimo vartų dalimi, yra sumažinti ankstesnės informacijos poveikį dabartinei informacijai, kuri perduodama į ateitį.

Pagrindinis uždarojo pasikartojančio vieneto tinklo darbo srautas yra panašus į pagrindinio pasikartojančio neuroninio tinklo darbo eigą, kai pavaizduota, pagrindinis skirtumas tarp šių dviejų yra vidinis veikimas kiekviename pasikartojančiame bloke, nes blokuojamų pasikartojančių įrenginių tinklus sudaro vartai, moduliuojantys dabartinė įvestis ir ankstesnė paslėpta būsena.



Apriboto periodinio bloko darbas:

  • Paimkite įvestį dabartinį įvestį ir ankstesnę paslėptą būseną kaip vektorius.
  • Apskaičiuokite trijų skirtingų vartų vertes atlikdami toliau nurodytus veiksmus:
    1. Kiekvienam vartui apskaičiuokite parametrizuotą srovės įvestį ir anksčiau paslėptus būsenos vektorius, atlikdami daugybą iš elementų (Hadamardo produktas) tarp atitinkamo vektoriaus ir atitinkamų kiekvieno vartų svorių.
    2. Taikykite atitinkamą aktyvinimo funkciją kiekvienam vartų elementui parametruotų vektorių atžvilgiu. Žemiau pateikiamas vartų su aktyvinimo funkcija, kuri turi būti taikoma vartams, sąrašas.
 Update Gate : Sigmoid Function Reset Gate : Sigmoid Function>
  • Dabartinės atminties vartų apskaičiavimo procesas yra šiek tiek kitoks. Pirmiausia apskaičiuojamas Atstatymo vartų ir anksčiau paslėpto būsenos vektoriaus Hadamard sandauga. Tada šis vektorius parametrizuojamas ir pridedamas prie parametruoto srovės įvesties vektoriaus.

    h_{t} = z_{t}odot h_{t-1} + (1-z_{t})odot overline{h}_{t}
  • Norėdami apskaičiuoti esamą paslėptą būseną, pirmiausia apibrėžiamas vienetų vektorius ir tokie patys matmenys kaip ir įvesties. Šis vektorius bus vadinamas vienetais ir matematiškai žymimas 1. Pirmiausia apskaičiuokite atnaujinimo vartų ir anksčiau paslėpto būsenos vektoriaus Hadamardo sandaugą. Tada sugeneruokite naują vektorių, iš vienų atimdami atnaujinimo vartus ir tada apskaičiuokite naujai sugeneruoto vektoriaus Hadamard sandaugą su esamais atminties vartais. Galiausiai pridėkite du vektorius, kad gautumėte šiuo metu paslėptą būsenos vektorių.
    E_{t} = -y_{t}log(overline{y}_{t})

    Aukščiau nurodytas darbas nurodytas taip:

Atkreipkite dėmesį, kad mėlyni apskritimai reiškia daugybą pagal elementą. Teigiamas ženklas apskritime žymi vektoriaus sudėjimą, o neigiamas ženklas reiškia vektoriaus atėmimą (vektoriaus sudėjimą su neigiama verte). Svorio matricoje W yra skirtingi kiekvieno vartų dabartinio įvesties vektoriaus ir ankstesnės paslėptos būsenos svoriai.

Kaip ir pasikartojantys neuroniniai tinklai, GRU tinklas taip pat generuoja išvestį kiekviename laiko žingsnyje ir ši išvestis naudojama tinklui treniruoti naudojant gradiento nusileidimą.

Atminkite, kad kaip ir darbo eiga, GRU tinklo mokymo procesas taip pat yra schematiškai panašus į pagrindinio pasikartojančio neuroninio tinklo procesą ir skiriasi tik kiekvieno pasikartojančio įrenginio vidiniu darbu.

Atgalinio sklidimo per laiką algoritmas riboto pasikartojančio vieneto tinklui yra panašus į ilgalaikės trumpalaikės atminties tinklo algoritmą ir skiriasi tik diferencinės grandinės formavimu.

Leisti E = suma _{t} E_{t}būti numatoma išvestis kiekviename laiko žingsnyje ir Rightarrow E = sum _{t} -y_{t}log(overline{y}_{t})būti faktinė išvestis kiekviename laiko žingsnyje. Tada klaida kiekviename laiko žingsnyje pateikiama taip:

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

Taigi visa paklaida gaunama susumavus klaidas visais laiko etapais.

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}

Panašiai ir vertė h_{t} = z_{t}odot h_{t-1} + (1-z_{t})odot overline{h}_{t}gali būti apskaičiuojamas kaip gradientų suma kiekviename laiko žingsnyje.

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

Naudojant grandinės taisyklę ir naudojant faktą, kad overline{h}_{t} = tanh(Wodot x_{t}+Wodot (r_{t}odot h_{t-1}))yra funkcija 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)ir kuri iš tikrųjų yra funkcija , atsiranda tokia išraiška:



Taigi bendras klaidų gradientas gaunamas taip: -



Atkreipkite dėmesį, kad gradiento lygtis apima grandinę kuris atrodo panašus į pagrindinio pasikartojančio neuroninio tinklo, tačiau ši lygtis veikia kitaip dėl vidinio išvestinių veikimo .

Kaip blokuoti pasikartojantys vienetai išsprendžia nykstančių gradientų problemą?

Gradientų vertę valdo išvestinių išvestinių grandinė, pradedant nuo . Prisiminkite posakį už :-



Naudojant aukščiau pateiktą išraišką, reikšmė for yra:-



Prisiminkite posakį už :-



Naudodamiesi aukščiau pateikta išraiška, apskaičiuokite vertę :-



Kadangi ir naujinimo, ir atstatymo vartai naudoja sigmoidinę funkciją kaip aktyvinimo funkciją, abu gali turėti reikšmes 0 arba 1.

1 atvejis (z = 1):

Šiuo atveju, nepriklausomai nuo vertės , terminas yra lygus z, kuris savo ruožtu yra lygus 1.

2A atvejis (z = 0 ir r = 0):

Šiuo atveju terminas yra lygus 0.

2B atvejis (z = 0 ir r = 1):

Šiuo atveju terminas yra lygus . Šią reikšmę valdo svorio matrica, kurią galima treniruoti, todėl tinklas išmoksta reguliuoti svorius taip, kad terminas artėja prie 1.

Taigi atgalinio sklidimo per laiką algoritmas sureguliuoja atitinkamus svorius taip, kad išvestinių finansinių priemonių grandinės vertė būtų kuo artimesnė 1.