Encoder

En neural netværkskomponent, der transformerer inputdata til en latent repræsentation.

Kort fortalt

Encoderen omdanner rå input (tekst, billeder, lyd) til en kompakt, meningsfuld vektor, som modellen kan bruge til videre behandling.

Kategori
arkitektur
Niveau
øvet

Betydninger

3
  1. 1

    Generel komponent i neurale netværk, der kortlægger input til en latent vektorrepræsentation.

    • En simpel encoder kan bestå af et par fuldt forbundne lag, der komprimerer inputdimensionen.
  2. 2

    Den del af transformerarkitekturen, der behandler inputsekvensen ved hjælp af selvopmærksomhed og feedforward-lag for at producere kontekstualiserede repræsentationer.

    • BERT's encoder består af 12 eller 24 lag med multi-head opmærksomhed.Devlin et al., 2019
  3. 3

    I autoencodere: netværket, der komprimerer input til en latent repræsentation (kodning), som dekoderen senere rekonstruerer.

    • En variationsautoencoders encoder producerer parametre for en normalfordeling i latentrummet.Kingma & Welling, 2013

Hvornår bruges det

Encoder er en central del af transformerarkitekturer (fx BERT), autoencodere og mange andre neurale netværk. I NLP-processering af korte og lange sekvenser af tokens omdannes de til kontekstafhængige embeddings. I autoencodere bruges encoderen til at lære en komprimeret repræsentation af data, fx til dimensionalitetsreduktion eller generering.

Kodeeksempel

import torch
import torch.nn as nn

class TransformerEncoderLayer(nn.Module):
    def __init__(self, d_model, nhead, dim_feedforward):
        super().__init__()
        self.self_attn = nn.MultiheadAttention(d_model, nhead)
        self.linear1 = nn.Linear(d_model, dim_feedforward)
        self.linear2 = nn.Linear(dim_feedforward, d_model)
        self.norm1 = nn.LayerNorm(d_model)
        self.norm2 = nn.LayerNorm(d_model)
    
    def forward(self, x):
        attn_out, _ = self.self_attn(x, x, x)
        x = self.norm1(x + attn_out)
        ff_out = self.linear2(torch.relu(self.linear1(x)))
        x = self.norm2(x + ff_out)
        return x

En simpel implementering af et transformer-encoderlag i PyTorch med selvopmærksomhed og feedforward-netværk.

Oprindelse

Fra engelsk 'encoder', af 'encode' (indkode) + '-er' (den der udfører handlingen).

Afledte ord

3

Kilder

2
  • Attention Is All You Need (Vaswani et al., 2017)
  • Auto-Encoding Variational Bayes (Kingma & Welling, 2013)