adversariel domænetilpasning
Adversariel domænetilpasning er en teknik inden for transfer learning, der bruger en modstandsdrevet (adversarial) træningsproces til at lære domæne-invariante repræsentationer ved at minimere en klassifikationsfejl på kildedomænet samtidig med at en domæneklassifikator bedrages.
Kort fortalt
En metode der får en model til at ignorere forskelle mellem to datasæt (domæner) ved at træne den til at snyde en klassifikator der prøver at gætte hvilket domæne data kommer fra.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En teknik inden for domænetilpasning, hvor en generator (eller feature extractor) trænes til at producere repræsentationer, der både er nyttige for en klassifikator på kildedomænet og forvirrende for en domænediskriminator, så repræsentationerne bliver domæne-invariante.
- Ved brug af adversariel domænetilpasning kan en model trænet på laboratoriedata generalisere til virkelige data uden yderligere mærkning. — Eksempel fra praksis
- Gradient reverseringslaget er en central komponent i adversariel domænetilpasning, da det muliggør end-to-end træning af feature extractor og domænediskriminator. — Eksempel fra litteratur
Hvornår bruges det
Adversariel domænetilpasning bruges typisk i scenarier hvor man har et stort, mærket datasæt (kildedomæne) og et umærket eller sparsomt mærket datasæt (måldomæne), fx ved overførsel af en model fra syntetiske billeder til ægte billeder. Teknikken implementeres ofte med et gradient reverseringslag (gradient reversal layer) der under bagpropagation vender fortegnene på gradienterne fra domæneklassifikatoren.
Formel
min_{G, C} max_{D} L_cls(G, C) - λ L_domain(G, D)Kodeeksempel
# Gradient reversal layer (GRL) i PyTorch
class GradientReversalLayer(torch.autograd.Function):
@staticmethod
def forward(ctx, x, lambda_):
ctx.lambda_ = lambda_
return x.view_as(x)
@staticmethod
def backward(ctx, grad_output):
return grad_output.neg() * ctx.lambda_, NoneEn simpel implementation af gradient reverseringslaget, der vender gradienternes fortegn under bagpropagation multipliceret med en lambda-parameter.
Oprindelse
Begrebet er en oversættelse af engelsk 'adversarial domain adaptation', hvor 'adversarial' refererer til modspilstræning (som i GAN'er) og 'domain adaptation' betegner tilpasning mellem domæner.
Afledte ord
2Kilder
2Se også
- Transfer learning
- adversarial training
- domain-adaptation(mangler)