sen fusion

Sen fusion er en teknik i multimodal læring, hvor separate repræsentationer fra forskellige modaliteter kombineres på et sent tidspunkt i forarbejdningen, typisk efter individuelle enkodere.

Kort fortalt

Sen fusion betyder, at man behandler forskellige typer data (fx billede og tekst) hver for sig, og først til sidst kombinerer resultaterne.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En tilgang i multimodalt maskinlæring, hvor hver modalitet (fx syn, lyd, tekst) behandles af en separat model, og de resulterende repræsentationer eller forudsigelser kombineres på et senere tidspunkt, ofte ved hjælp af en simpel operation som sammenkædning eller gennemsnit.

    • I en videoanalyseopgave anvendes sen fusion ved at træne separate netværk for billede og lyd, hvorefter deres output flettes via sammenkædning inden klassificering.Baltrusaitis et al., 2019, Multimodal Machine Learning: A Survey and Taxonomy

Hvornår bruges det

Sen fusion bruges ofte i multimodale systemer, fx når en model skal forstå både billeder og tekst. Fordelen er at hver modalitet kan trænes uafhængigt, men det kan overse interaktioner mellem modaliteter.

Kodeeksempel

import torch
import torch.nn as nn

class ImageEncoder(nn.Module):
    def __init__(self):
        super().__init__()
        self.cnn = nn.Sequential(nn.Conv2d(3,16,3), nn.ReLU())
        self.fc = nn.Linear(16*30*30, 128)
    def forward(self, x):
        return self.fc(self.cnn(x).view(x.size(0), -1))

class TextEncoder(nn.Module):
    def __init__(self):
        super().__init__()
        self.lstm = nn.LSTM(300, 128, batch_first=True)
    def forward(self, x):
        _, (h,_) = self.lstm(x)
        return h.squeeze(0)

class LateFusionClassifier(nn.Module):
    def __init__(self):
        super().__init__()
        self.img_enc = ImageEncoder()
        self.txt_enc = TextEncoder()
        self.classifier = nn.Linear(256, 10)
    def forward(self, img, txt):
        img_feat = self.img_enc(img)
        txt_feat = self.txt_enc(txt)
        combined = torch.cat([img_feat, txt_feat], dim=1)
        return self.classifier(combined)

Eksempel på sen fusion i PyTorch: separate enkodere for billede og tekst, derefter sammenkædning og klassificering.

Oprindelse

Begrebet 'sen fusion' stammer fra multimodal maskinlæring, hvor det modsættes tidlig fusion (early fusion), som kombinerer modaliteter tidligere.

Afledte ord

1

Kilder

1
  • Baltrusaitis et al., 2019, Multimodal Machine Learning: A Survey and Taxonomy