tilbagekoblet neuralt netværk

Et tilbagekoblet neuralt netværk (RNN) er en type neuralt netværk designet til at behandle sekventielle data ved at bevare en intern tilstand over tid gennem feedback-forbindelser.

Kort fortalt

Det er en maskinlæringsmodel, der husker tidligere input i en sekvens for at forudsige næste element, som at forudsige næste ord i en sætning.

Kategori
arkitektur
Niveau
øvet
Udtale
ˈtelˌpɛːˀʌˌkʰʌblət neʊˈʁɑːˀlt ˈnetˌvæɐ̯k

Betydninger

1
  1. 1

    En klasse af neurale netværk, hvor forbindelser mellem enheder danner en rettet cyklus, så netværkets interne tilstand kan ændre sig over tid og dermed håndtere sekvenser af variabel længde.

    • Et tilbagekoblet neuralt netværk kan bruges til at generere tekst tegn for tegn, hvor hvert nyt tegn afhænger af de foregående.
    • I tidsserieprognoser anvendes tilbagekoblede neurale netværk til at forudsige fremtidige værdier baseret på historiske observationer.

Hvornår bruges det

Tilbagekoblede neurale netværk bruges især til opgaver med sekventielle data, såsom talegenkendelse, maskinoversættelse og tidsserieanalyse. De anvendes, når kontekst eller historik i data er vigtig for forudsigelser.

Formel

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

Kodeeksempel

import torch
import torch.nn as nn

class SimpleRNN(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(SimpleRNN, self).__init__()
        self.hidden_size = hidden_size
        self.i2h = nn.Linear(input_size + hidden_size, hidden_size)
        self.i2o = nn.Linear(input_size + hidden_size, output_size)
        self.softmax = nn.LogSoftmax(dim=1)

    def forward(self, input, hidden):
        combined = torch.cat((input, hidden), 1)
        hidden = torch.tanh(self.i2h(combined))
        output = self.i2o(combined)
        output = self.softmax(output)
        return output, hidden

    def initHidden(self):
        return torch.zeros(1, self.hidden_size)

En simpel RNN-implementering i PyTorch, der viser, hvordan input og skjult tilstand kombineres for at generere output og opdatere den skjulte tilstand.

Oprindelse

Termen er en direkte oversættelse af det engelske 'recurrent neural network', hvor 'tilbagekoblet' henviser til feedback-forbindelserne (tilbagekobling) i netværket.

Afledte ord

2

Kilder

2
  • Long Short-Term Memory
  • A Critical Review of Recurrent Neural Networks for Sequence Learning