logo

Slēgtie periodisko vienību tīkli

Gated Recurrent Unit (GRU) ir atkārtota neironu tīkla (RNN) veids, ko ieviesa Cho et al. 2014. gadā kā vienkāršāka alternatīva Long Short-Term Memory (LSTM) tīkliem. Tāpat kā LSTM, GRU var apstrādāt secīgus datus, piemēram, tekstu, runu un laikrindu datus.

GRU pamatideja ir izmantot vārtu mehānismus, lai selektīvi atjauninātu tīkla slēpto stāvokli katrā laika posmā. Vārtu mehānismi tiek izmantoti, lai kontrolētu informācijas plūsmu tīklā un no tā. GRU ir divi vārtu mehānismi, ko sauc par atiestatīšanas vārtiem un atjaunināšanas vārtiem.



pārvērst char par virkni java

Atiestatīšanas vārti nosaka, cik daudz no iepriekšējā slēptā stāvokļa ir jāaizmirst, savukārt atjaunināšanas vārti nosaka, cik daudz no jaunās ievades ir jāizmanto, lai atjauninātu slēpto stāvokli. GRU izvade tiek aprēķināta, pamatojoties uz atjaunināto slēpto stāvokli.

Vienādojumi, ko izmanto, lai aprēķinātu GRU atiestatīšanas vārtus, atjaunināšanas vārtus un slēpto stāvokli, ir šādi:

Atiestatīt vārtus: r_t = sigmoīds (W_r * [h_{t-1}, x_t])
Atjaunināšanas vārti: z_t = sigmoīds (W_z * [h_{t-1}, x_t])
Kandidāta slēptais stāvoklis: h_t' = tanh(W_h * [r_t * h_{t-1}, x_t])
Slēpts stāvoklis: h_t = (1 – z_t) * h_{t-1} + z_t * h_t'
kur W_r, W_z un W_h ir apgūstamas svara matricas, x_t ir ievade laika posmā t, h_{t-1} ir iepriekšējais slēptais stāvoklis un h_t ir pašreizējais slēptais stāvoklis.



Rezumējot, GRU tīkli ir RNN veids, kas izmanto bloķēšanas mehānismus, lai selektīvi atjauninātu slēpto stāvokli katrā laika posmā, ļaujot tiem efektīvi modelēt secīgus datus. Ir pierādīts, ka tie ir efektīvi dažādos dabiskās valodas apstrādes uzdevumos, piemēram, valodas modelēšanā, mašīntulkošanā un runas atpazīšanā

Priekšnosacījumi: Atkārtoti neironu tīkli, ilgtermiņa īstermiņa atmiņas tīkli

Lai atrisinātu izzūdošu-eksplodējošu gradientu problēmu, kas bieži sastopama pamata atkārtotā neironu tīkla darbības laikā, tika izstrādātas daudzas variācijas. Viena no slavenākajām variācijām ir Ilgtermiņa īstermiņa atmiņas tīkls (LSTM) . Viena no mazāk zināmajām, bet tikpat efektīvām variācijām ir Slēgts periodisko vienību tīkls (GRU) .

Atšķirībā no LSTM, tas sastāv tikai no trim vārtiem un neuztur iekšējās šūnas stāvokli. Informācija, kas tiek saglabāta iekšējās šūnas stāvoklī LSTM atkārtotā vienībā, tiek iekļauta slēptās atkārtotās vienības stāvoklī. Šī kolektīvā informācija tiek nodota nākamajai atkārtotajai vienībai. Tālāk ir aprakstīti dažādi GRU vārti:

    Atjaunināšanas vārti (z): tas nosaka, cik daudz pagātnes zināšanu ir jānodod nākotnē. Tas ir līdzīgs izvades vārtiem LSTM atkārtotā vienībā. Atiestatīt vārti(r): tas nosaka, cik daudz pagātnes zināšanu jāaizmirst. Tas ir līdzīgs ievades vārtu un aizmirst vārtu kombinācijai LSTM atkārtotā vienībā. Current Memory Gate( overline{h}_{t} = tanh(Wodot x_{t}+Wodot (r_{t}odot h_{t-1})) ): Tas bieži tiek ignorēts tipiskā diskusijā par ierobežoto periodisko vienību tīklu. Tas ir iekļauts atiestatīšanas vārtos tāpat kā ievades modulācijas vārti ir ievades vārtu apakšdaļa un tiek izmantoti, lai ievadē ieviestu nelinearitāti, kā arī lai ievadītu ievadi par nulli. Vēl viens iemesls, lai padarītu to par atiestatīšanas vārtu apakšdaļu, ir samazināt iepriekšējās informācijas ietekmi uz pašreizējo informāciju, kas tiek nodota nākotnē.

Slēgtā periodisko vienību tīkla pamata darbplūsma ir līdzīga pamata periodiskā neironu tīkla darba plūsmai, kad tas parādīts ilustrācijā, galvenā atšķirība starp abiem ir katras atkārtotās vienības iekšējā darbībā, jo ierobežoto periodisko vienību tīkli sastāv no vārtiem, kas modulē pašreizējā ievade un iepriekšējais slēptais stāvoklis.



Slēgtas periodiskas vienības darbs:

  • Ievadiet pašreizējo ievadi un iepriekšējo slēpto stāvokli kā vektorus.
  • Aprēķiniet trīs dažādu vārtu vērtības, veicot tālāk norādītās darbības:
    1. Katram vārtiem aprēķiniet parametrizēto strāvas ievadi un iepriekš slēptos stāvokļa vektorus, veicot elementu reizināšanu (Hadamara reizinājums) starp attiecīgo vektoru un katra vārtu attiecīgajiem svariem.
    2. Pielietojiet attiecīgo aktivizācijas funkciju katram vārtu elementam parametrizētajos vektoros. Zemāk ir saraksts ar vārtiem ar aktivizēšanas funkciju, kas jāpiemēro vārtiem.
 Update Gate : Sigmoid Function Reset Gate : Sigmoid Function>
  • Pašreizējās atmiņas vārtu aprēķināšanas process ir nedaudz atšķirīgs. Pirmkārt, tiek aprēķināts Reset Gate un iepriekš slēptā stāvokļa vektora Hadamard reizinājums. Pēc tam šis vektors tiek parametrizēts un pēc tam pievienots parametrizētajam strāvas ievades vektoram.

    h_{t} = z_{t}odot h_{t-1} + (1-z_{t})odot overline{h}_{t}
  • Lai aprēķinātu pašreizējo slēpto stāvokli, vispirms tiek definēts vieninieku vektors un tādi paši izmēri kā ievadei. Šis vektors tiks saukts par vieniniekiem un matemātiski apzīmēts ar 1. Vispirms aprēķiniet atjaunināšanas vārtu un iepriekš paslēptā stāvokļa vektora Hadamada reizinājumu. Pēc tam ģenerējiet jaunu vektoru, atņemot atjaunināšanas vārtus no tiem, un pēc tam aprēķiniet tikko ģenerētā vektora Hadamada reizinājumu ar pašreizējo atmiņas vārti. Visbeidzot, pievienojiet divus vektorus, lai iegūtu pašlaik slēpto stāvokļa vektoru.
    E_{t} = -y_{t}žurnāls(overline{y}_{t})

    Iepriekš norādītais darbs ir norādīts šādi: -

alfa beta atzarošanas piemērs

Ņemiet vērā, ka zilie apļi apzīmē elementu reizināšanu. Pozitīvā zīme aplī apzīmē vektora saskaitīšanu, savukārt negatīvā zīme apzīmē vektora atņemšanu (vektora saskaitīšanu ar negatīvu vērtību). Svaru matrica W satur dažādus svarus pašreizējam ievades vektoram un iepriekšējo slēpto stāvokli katram vārtam.

Tāpat kā atkārtotie neironu tīkli, arī GRU tīkls ģenerē izvadi katrā laika posmā, un šī izvade tiek izmantota, lai apmācītu tīklu, izmantojot gradienta nolaišanos.

Ņemiet vērā, ka tāpat kā darbplūsma, arī GRU tīkla apmācības process ir diagrammā līdzīgs pamata atkārtotā neironu tīkla procesam un atšķiras tikai ar katras atkārtotās vienības iekšējo darbību.

Atpakaļ izplatīšanās laikā algoritms ierobežotas atkārtotas vienības tīklam ir līdzīgs ilgtermiņa īstermiņa atmiņas tīkla algoritmam un atšķiras tikai ar diferenciālās ķēdes veidošanos.

Ļaujiet E = summa _{t} E_{t}ir paredzamā izvade katrā laika posmā un Rightarrow E = sum _{t} -y_{t}log(overline{y}_{t})ir faktiskā izvade katrā laika posmā. Tad kļūdu katrā laika posmā nosaka: -

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

Tādējādi kopējo kļūdu iegūst, summējot kļūdas visos laika posmos.

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}

Tāpat arī vērtība h_{t} = z_{t}odot h_{t-1} + (1-z_{t})odot overline{h}_{t}var aprēķināt kā gradientu summēšanu katrā laika posmā.

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

Izmantojot ķēdes noteikumu un izmantojot faktu, ka overline{h}_{t} = tanh(Wodot x_{t}+Wodot (r_{t}odot h_{t-1}))ir 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)un kas patiešām ir funkcija , rodas šāds izteiciens:-



Tādējādi kopējo kļūdu gradientu nosaka šādi: -



Ņemiet vērā, ka gradienta vienādojums ietver ķēdi no kas izskatās līdzīgs pamata atkārtotā neironu tīkla tīklam, taču šis vienādojums darbojas citādi, jo atvasinājumi darbojas iekšēji. .

Kā ierobežotās atkārtotās vienības atrisina izzūdošu gradientu problēmu?

Gradientu vērtību kontrolē atvasinājumu ķēde, sākot no . Atgādiniet izteicienu par :-



Izmantojot iepriekš minēto izteiksmi, vērtība for ir:-



Atgādiniet izteicienu par :-



Izmantojot iepriekš minēto izteiksmi, lai aprēķinātu vērtību :-



Tā kā gan atjaunināšanas, gan atiestatīšanas vārti izmanto sigmoīda funkciju kā aktivizēšanas funkciju, abām vērtībām var būt 0 vai 1.

1. gadījums (z = 1):

Šajā gadījumā neatkarīgi no vērtības , termiņš ir vienāds ar z, kas savukārt ir vienāds ar 1.

2. gadījums (z=0 un r=0):

Šajā gadījumā termiņš ir vienāds ar 0.

2B gadījums (z=0 un r=1):

Šajā gadījumā termiņš ir vienāds ar . Šo vērtību kontrolē svara matrica, kas ir apmācāma, un tādējādi tīkls iemācās pielāgot svarus tā, lai termiņš tuvojas 1.

Tādējādi algoritms Back-Propagation Through Time pielāgo attiecīgos svarus tā, lai atvasinājumu ķēdes vērtība būtu pēc iespējas tuvāka 1.