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
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 temperaturenKodeeksempel
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.