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. 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

3

Kilder

2
  • Long Short-Term Memory (Hochreiter & Schmidhuber, 1997)
  • Learning representations by back-propagating errors (Rumelhart et al., 1986)