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
Forkortelse for 'Recurrent Neural Network', et neuralt netværk med feedback-forbindelser.
- RNN er grundlaget for mange sekvensmodelleringsarkitekturer.
- 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 outEksempel på en simpel RNN-implementering i PyTorch med ét lag.
Oprindelse
Akronym for 'Recurrent Neural Network', på dansk 'rekurrent neuralt netværk'.