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
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
2Kilder
1- Bidirectional Recurrent Neural Networks (Schuster & Paliwal, 1997)