Itseohjautuva oppiminen: aineisto tuottaa tavoitteen
Itseohjautuva oppiminen (self-supervised learning) muodostaa koulutussignaalin aineistosta itsestään. Osa jonosta voidaan piilottaa ja ennustaa, seuraava token ennustaa tai kuvan kahden muokatun näkymän esityksiä lähentää.
Jokaiselle esimerkille ei tarvita erillistä ihmisen antamaa tunnistetta, mutta tavoite suunnitellaan silti tarkoituksellisesti. Se määrää, mitä tietoa esityksen on säilytettävä.
Piilota token, säilytä vastaus
PyTorch-funktio saa maskattua kieltä ennustavan mallin, tokenitunnisteet ja totuusarvomaskin, jossa on ainakin yksi valittu kohta. Vain valitut kohdat vaikuttavat häviöön.
import torch
from torch.nn import functional as F
def masked_loss(model, token_ids, selected, mask_id):
corrupted = token_ids.clone()
corrupted[selected] = mask_id
logits = model(input_ids=corrupted).logits
return F.cross_entropy(logits[selected], token_ids[selected])
Alkuperäiset tokenit tuottavat tavoitteet; malli näkee niiden kohdalla korvikkeet. Esimerkki eristää maskausmekanismin eikä toteuta BERTin koko koulutusreseptiä.
SimCLR:n kaltaiset kontrastiiviset menetelmät käyttävät toista signaalia: saman kuvan kahden näkymän pitäisi vastata toisiaan suhteessa muihin esimerkkeihin. Molemmissa ohjaus syntyy aineiston sisäisestä, rakennetusta suhteesta. Opittuja esityksiä voidaan käyttää myöhemmin muissa tehtävissä.