Recurrent neural network
forkortelse for RNN
En klasse af neurale netværk med hukommelse via tilbagekoblede forbindelser, designet til sekventielle data.
Kort fortalt
Et neuralt netværk der kan huske tidligere input ved at have forbindelser tilbage til sig selv, så det kan behandle sekvenser som tekst eller tidsserier.
- Kategori
- model
- Niveau
- øvet
- Udtale
- /riːˈkɜrənt ˈnɜrəl ˈnɛtwɜrk/
Betydninger
1- 1
Et neuralt netværk med mindst én tilbagekoblet forbindelse, så information kan persistere over tid og påvirke fremtidige udregninger.
- Et recurrent neural network kan lære at forudsige det næste ord i en sætning baseret på de foregående ord.
- I en simpel RNN opdateres den skjulte tilstand h_t som en funktion af den tidligere skjulte tilstand h_{t-1} og det nuværende input x_t.
Hvornår bruges det
RNN'er bruges primært til sekvensmodellering, fx sprogmodellering, maskinoversættelse og talegenkendelse. De er dog sårbare over for forsvindende/eksploderende gradienter ved lange sekvenser, hvilket har ført til udviklingen af LSTM og GRU.
Kodeeksempel
import torch
import torch.nn as nn
class SimpleRNN(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super().__init__()
self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)
self.fc = nn.Linear(hidden_size, output_size)
def forward(self, x):
out, h_n = self.rnn(x)
return self.fc(out[:, -1, :])En simpel RNN i PyTorch, der tager en sekvens og producerer et output for det sidste tidstrin.
Oprindelse
Termen 'recurrent' (tilbagevendende) henviser til de cykliske forbindelser, der gør netværket i stand til at opretholde en form for hukommelse over tid.
Afledte ord
3Kilder
2- Long Short-Term Memory (Hochreiter & Schmidhuber, 1997)
- Learning representations by back-propagating errors (Rumelhart et al., 1986)