Křížová validace
Křížová validace je statistická metoda používaná k hodnocení a porovnávání modelů strojového učení rozdělením dat na trénovací a validační sady opakovaně, což z...
Křížová entropie měří rozdíl mezi předpovězeným a skutečným pravděpodobnostním rozdělením, široce používaná jako ztrátová funkce pro optimalizaci přesnosti klasifikačních modelů ve strojovém učení.
Křížová entropie je klíčovým pojmem v informační teorii i strojovém učení, kde slouží jako metrika pro měření rozdílu mezi dvěma pravděpodobnostními rozděleními nad stejnou množinou událostí. Ve strojovém učení je toto měření zásadní jako ztrátová funkce, která kvantifikuje rozdíly mezi předpovězenými výstupy modelu a skutečnými štítky v datech. Toto kvantifikování je při trénování modelů, zejména pro klasifikační úlohy, nezbytné, protože pomáhá upravovat váhy modelu za účelem minimalizace chyb v předpovědi a tím zvyšuje jeho výkon.
Pojem křížové entropie, značený H(p, q), zahrnuje výpočet rozdílu mezi dvěma pravděpodobnostními rozděleními: p (skutečné rozdělení) a q (modelově odhadované rozdělení). Pro diskrétní rozdělení je křížová entropie matematicky vyjádřena následovně:
$$ H(p, q) = -\sum_{x} p(x) \log q(x) $$
Kde:
Křížová entropie v podstatě počítá průměrný počet bitů potřebných k určení události z množiny možností pomocí kódovacího schématu optimalizovaného pro odhadované rozdělení (q), namísto skutečného rozdělení (p).
Křížová entropie je úzce spojena s Kullback-Leiblerovou (KL) divergencí, která hodnotí, jak moc se jedno pravděpodobnostní rozdělení liší od jiného očekávaného rozdělení. Křížovou entropii H(p, q) lze vyjádřit pomocí entropie skutečného rozdělení H(p) a KL divergence D_{KL}(p || q) takto:
$$ H(p, q) = H(p) + D_{KL}(p \parallel q) $$
Tento vztah podtrhuje zásadní roli křížové entropie při kvantifikaci chyb v předpovědi a propojuje statistickou teorii s praktickými aplikacemi ve strojovém učení.
Ve strojovém učení, zejména v klasifikačních úlohách, slouží křížová entropie jako ztrátová funkce, která hodnotí, jak dobře předpovězené pravděpodobnostní rozdělení odpovídá skutečnému rozdělení štítků. Je mimořádně efektivní v úlohách s více třídami, kde je cílem přiřadit nejvyšší pravděpodobnost správné třídě a tím vést optimalizační proces během trénování modelu.
Tato funkce se používá v binárních klasifikačních úlohách zahrnujících dvě možné třídy (např. pravda/nepravda, pozitivní/negativní). Binární ztráta křížové entropie je popsána takto:
$$ L = -\frac{1}{N} \sum_{i=1}^N [y_i \log(p_i) + (1-y_i) \log(1-p_i)] $$
Kde:
Používá se v úlohách více-třídní klasifikace (více než dvě třídy). Kategorická ztráta křížové entropie se počítá takto:
$$ L = -\frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{C} y_{ij} \log(p_{ij}) $$
Kde:
Představme si klasifikační situaci se třemi třídami: kočky, psi a koně. Pokud je skutečný štítek obrázku pes, vyjádřený vektorovou reprezentací one-hot [0, 1, 0], a model předpoví [0.4, 0.4, 0.2], ztráta křížové entropie se vypočte následovně:
$$ L(y, \hat{y}) = – (0 \times \log(0.4) + 1 \times \log(0.4) + 0 \times \log(0.2)) = 0.92 $$
Nižší hodnota křížové entropie ukazuje těsnější shodu předpovězených pravděpodobností modelu se skutečnými štítky, což odráží lepší výkon modelu.
Křížová entropie je nedílnou součástí trénování AI modelů, zejména v rámci učení s učitelem. Široce se uplatňuje v:
import numpy as np
def cross_entropy(y_true, y_pred):
y_true = np.float_(y_true)
y_pred = np.float_(y_pred)
return -np.sum(y_true * np.log(y_pred + 1e-15))
# Příklad použití
y_true = np.array([0, 1, 0]) # Skutečný štítek (one-hot kódování)
y_pred = np.array([0.4, 0.4, 0.2]) # Předpovězené pravděpodobnosti
loss = cross_entropy(y_true, y_pred)
print(f"Křížová entropie (loss): {loss}")
V tomto Python příkladu funkce cross_entropy
počítá ztrátu mezi skutečnými štítky a předpovězenými pravděpodobnostmi, což usnadňuje vyhodnocení a optimalizaci modelu.
Křížová entropie je metrika, která měří rozdíl mezi dvěma pravděpodobnostními rozděleními, běžně používaná jako ztrátová funkce pro posouzení, jak dobře se předpovědi modelu shodují se skutečnými štítky.
Ve strojovém učení křížová entropie kvantifikuje chybu mezi předpovězenými pravděpodobnostmi a skutečnými štítky a vede optimalizační proces ke zlepšení přesnosti modelu, zejména v klasifikačních úlohách.
Binární křížová entropie se používá pro binární klasifikaci (dvě třídy), zatímco kategorická křížová entropie je určena pro klasifikaci s více třídami. Obě počítají ztrátu mezi skutečnými a předpovězenými pravděpodobnostmi přizpůsobenou počtu tříd.
Křížová entropie souvisí s Kullback-Leiblerovou (KL) divergencí, protože ji lze vyjádřit jako součet entropie skutečného rozdělení a KL divergence mezi skutečným a předpovězeným rozdělením.
Ano. Příklad: import numpy as np def cross_entropy(y_true, y_pred): y_true = np.float_(y_true) y_pred = np.float_(y_pred) return -np.sum(y_true * np.log(y_pred + 1e-15))
Začněte vytvářet vlastní AI řešení s intuitivní platformou FlowHunt. Optimalizujte své modely a automatizujte pracovní postupy efektivně.
Křížová validace je statistická metoda používaná k hodnocení a porovnávání modelů strojového učení rozdělením dat na trénovací a validační sady opakovaně, což z...
Logaritmická ztráta, nebo také křížová entropie (cross-entropy loss), je klíčová metrika pro hodnocení výkonu modelů strojového učení—zejména pro binární klasif...
Plocha pod křivkou (AUC) je základní metrika ve strojovém učení používaná k hodnocení výkonnosti binárních klasifikačních modelů. Kvantifikuje celkovou schopnos...