Bidirectional RNN

En type recurrent neural network (RNN), der behandler en sekvens i både fremad- og bagudrettet retning, så hvert tidstrin har adgang til kontekst fra både fortid og fremtid.

Kort fortalt

Et neuralt netværk, der læser en tekst både forfra og bagfra for at forstå sammenhængen bedre.

Kategori
arkitektur
Niveau
øvet

Betydninger

1
  1. 1

    En arkitektur for recurrent neural networks, hvor to separate RNN-lag behandler inputsekvensen i hver sin retning; udgangene fra de to lag flettes (typisk ved konkatenation) for hvert tidstrin, så modellen har adgang til både tidligere og efterfølgende kontekst.

    • En bidirectional RNN kan forudsige næste ord i en sætning ved at udnytte kontekst fra både venstre og højre side.

Hvornår bruges det

Bidirectional RNN'er anvendes typisk inden for naturlig sprogbehandling, f.eks. til part-of-speech tagging, navnegenkendelse og maskinoversættelse, hvor kontekst fra begge sider af et ord er vigtig. De kan også bruges i sekvensmærkning og tidsserieanalyse, hvor fremtidige data er tilgængelige.

Kodeeksempel

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Bidirectional, LSTM, Dense

model = Sequential()
model.add(Bidirectional(LSTM(64, return_sequences=True), input_shape=(timesteps, features)))
model.add(Dense(1, activation='sigmoid'))

Eksempel på oprettelse af en bidirectional LSTM-model i Keras.

Oprindelse

Termen opstod i forbindelse med udviklingen af RNN-arkitekturer, hvor behovet for at inddrage fremtidig kontekst førte til den torettede variant.

Afledte ord

2

Kilder

1
  • Bidirectional Recurrent Neural Networks (Schuster & Paliwal, 1997)