Ar galima naudoti kryžminę entropiją dviem klasėms ir kodėl tai nerekomenduojama?
sobes.tech AI
Atsakymas iš AI
Kryžminė entropija yra plačiai naudojama nuostolių funkcija klasifikavimo užduotims, įskaitant dvejetainę (dviejų klasių) klasifikaciją. Teoriškai, kryžminė entropija tinka dviem klasėms, nes ji matuoja skirtumą tarp tikrosios paskirstymo ir prognozuotos.
Tačiau dvejetainėje klasifikacijoje dažnai naudojama specializuota kryžminės entropijos forma: dvejetainė kryžminė entropija, optimizuota dviem klasėms ir atsižvelgianti į tikimybių ir žymių ypatybes.
Kodėl nerekomenduojama naudoti įprastos (daugklasės) kryžminės entropijos dviem klasėms:
- Ji reikalauja žymių pateikimo kaip vieno karšto vektorius, kas yra perteklinis dviem klasėms.
- Gali sukelti perteklinius skaičiavimus ir sudėtinginti modelį.
- Dvejetainė kryžminė entropija yra paprastesnė ir efektyvesnė, nes veikia su vienu skaičiumi — tikimybe priklausyti teigiamai klasei.
Pavyzdys dvejetainės kryžminės entropijos PyTorch:
import torch
import torch.nn as nn
criterion = nn.BCELoss() # dvejetainė kryžminė entropija
outputs = torch.sigmoid(logits) # modelio išėjimai
loss = criterion(outputs, targets)
Todėl, dviem klasėms, rekomenduojama naudoti dvejetainę kryžminę entropiją vietoj bendrosios, siekiant pagerinti mokymo efektyvumą ir tikslumą.