RNN

forkortelse for Recurrent Neural Network

Et RNN er et neuralt netværk med cykliske forbindelser, designet til at behandle sekventielle data.

Kort fortalt

Kort fortalt: et RNN er en type neuralt netværk der kan huske tidligere input, hvilket gør det velegnet til opgaver som sprogmodellering og tidsserieanalyse.

Kategori
arkitektur
Niveau
øvet
Udtale
/ɑːrɛnˈen/

Betydninger

2
  1. 1

    Forkortelse for 'Recurrent Neural Network', et neuralt netværk med feedback-forbindelser.

    • RNN er grundlaget for mange sekvensmodelleringsarkitekturer.
  2. 2

    Et neuralt netværk hvor neuroner har forbindelser der danner rettede cykler, så netværket kan opretholde en skjult tilstand over tid.

    • Et simpelt RNN beregner den skjulte tilstand h_t baseret på det aktuelle input x_t og den forrige skjulte tilstand h_{t-1}.
    • Standard RNN'er lider af forsvindende gradienter, hvilket gør dem svære at træne på lange sekvenser.

Hvornår bruges det

RNN'er bruges til opgaver hvor inputsekvensens rækkefølge har betydning, fx tekstgenerering, maskinoversættelse og talegenkendelse. De trænes typisk med backpropagation through time (BPTT).

Formel

h_t = tanh(W_{ih} x_t + W_{hh} h_{t-1} + b_h)

Kodeeksempel

import torch
import torch.nn as nn

class SimpleRNN(nn.Module):
    def __init__(self, input_size, hidden_size):
        super(SimpleRNN, self).__init__()
        self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)

    def forward(self, x):
        out, h_n = self.rnn(x)
        return out

Eksempel på en simpel RNN-implementering i PyTorch med ét lag.

Oprindelse

Akronym for 'Recurrent Neural Network', på dansk 'rekurrent neuralt netværk'.

Afledte ord

3

Kilder

1