temperatur-scaling

En post-processing teknik, der justerer en neural netværks softmax-udgang ved at dividere logitterne med en temperaturparameter for at forbedre kalibreringen af sandsynligheder.

Kort fortalt

En metode til at gøre en models forudsigelser mere realistiske ved at justere, hvor 'sikker' modellen er på sine svar.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En skalering af logitter med en temperaturparameter for at justere blødheden af softmax-fordelingen og forbedre kalibrering.

    • Efter træning anvendte vi temperatur-scaling med T=1.5 for at forbedre modellens kalibrering.fiktivt eksempel
    • Temperatur-scaling er ofte mere effektiv end andre kalibreringsmetoder som isotonisk regression.fiktivt eksempel

Hvornår bruges det

Anvendes typisk efter træning af en klassifikationsmodel for at korrigere over- eller underconfidence. Temperaturen optimeres på en valideringsmængde ved at minimere negative log-likelihood eller en kalibreringsmetrik som ECE.

Formel

softmax(z_i / T) hvor z_i er logitterne for klasse i og T > 0 er temperaturen

Kodeeksempel

import torch
import torch.nn.functional as F

def temperature_scale(logits, temperature):
    return F.softmax(logits / temperature, dim=-1)

# Example: logits from model, temperature optimized on validation set
logits = torch.tensor([[2.0, 1.0, 0.1]])
T = 1.5
calibrated_probs = temperature_scale(logits, T)

Simpel implementering af temperatur-scaling i PyTorch. Temperaturen divideres med logitterne før softmax.

Oprindelse

Termen er lånt fra statistisk fysik, hvor temperatur påvirker sandsynlighedsfordelinger via Boltzmann-fordelingen.

Kilder

1