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. 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 output

Simpel 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.

Afledte ord

2

Kilder

2