encoder-decoder
En arkitektur med to neurale netværk: en encoder, der komprimerer input til en latent repræsentation, og en decoder, der genererer output fra denne repræsentation.
Kort fortalt
Encoder-decoder er en model, der først oversætter input til en komprimeret kode, og derefter bruger koden til at producere et output, fx i maskinoversættelse.
- Kategori
- arkitektur
- Niveau
- øvet
Betydninger
1- 1
En neural netværksarkitektur bestående af en encoder, der behandler inputsekvensen og producerer en kontekstvektor (eller en sekvens af repræsentationer), og en decoder, der genererer outputsekvensen baseret på denne kontekst.
- Encoder-decoder-arkitekturen er grundlaget for moderne maskinoversættelsessystemer.
- I transformermodellen består både encoder og decoder af multiple lag med selvopmærksomhed.
Hvornår bruges det
Bruges i sekvens-til-sekvens-opgaver som maskinoversættelse, tekstopsummering og billedtekstgenerering. I transformere er encoder og decoder stablet med attention-mekanismer.
Kodeeksempel
import torch
import torch.nn as nn
class EncoderDecoder(nn.Module):
def __init__(self, encoder, decoder):
super().__init__()
self.encoder = encoder
self.decoder = decoder
def forward(self, src, trg):
enc_output, hidden = self.encoder(src)
output = self.decoder(trg, hidden, enc_output)
return outputSimpel PyTorch-implementering af en encoder-decoder-model, hvor encoder og decoder er separate moduler.
Oprindelse
Begrebet stammer fra kodningsteori, hvor en encoder omdanner information til en kode, og en decoder rekonstruerer den.