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(
): 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:
- 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.
- 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.

- 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.
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
ir paredzamā izvade katrā laika posmā un
ir faktiskā izvade katrā laika posmā. Tad kļūdu katrā laika posmā nosaka: -
Tādējādi kopējo kļūdu iegūst, summējot kļūdas visos laika posmos.
Tāpat arī vērtība
var aprēķināt kā gradientu summēšanu katrā laika posmā.
Izmantojot ķēdes noteikumu un izmantojot faktu, ka
ir funkcija
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.
