self-attention layer
Et neuralt netværkslag der beregner vægtede repræsentationer af en sekvens ved at lade hvert element 'kigge på' alle andre elementer.
Kort fortalt
Self-attention gør det muligt for en model at fokusere på forskellige dele af inputtet, når den behandler hvert ord – ligesom du læser en sætning og lægger mærke til relaterede ord.
- Kategori
- arkitektur
- Niveau
- øvet
Betydninger
1- 1
Et lag i en neural netværksarkitektur der anvender self-attention-mekanismen, hvor hvert element i en sekvens beregner en vægtet sum af alle elementer i samme sekvens.
- Transformer-modellen består af flere self-attention-lag stablet oven på hinanden.
- Self-attention-laget gør det muligt for modellen at modellere langdistanceafhængigheder uden at øge antallet af parametre lineært med sekvenslængden.
Hvornår bruges det
Self-attention bruges i Transformere og andre sekvensmodeller til at fange afhængigheder på tværs af sekvensen, uanset afstand. Det er især nyttigt til sprogforståelse, oversættelse og tekstgenerering.
Formel
Attention(Q,K,V) = softmax(QK^T/√d_k) VKodeeksempel
import numpy as np
def self_attention(Q, K, V):
d_k = Q.shape[-1]
scores = np.dot(Q, K.T) / np.sqrt(d_k)
weights = np.exp(scores) / np.sum(np.exp(scores), axis=-1, keepdims=True)
return np.dot(weights, V)En simpel implementering af self-attention for en enkelt hoved.
Oprindelse
Termen opstod i forbindelse med Transformer-arkitekturen introduceret i 2017.
Afledte ord
2Kilder
1- Attention Is All You Need (2017)