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
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
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
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 xEn 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
3Kilder
2- Attention Is All You Need (Vaswani et al., 2017)
- Auto-Encoding Variational Bayes (Kingma & Welling, 2013)