Křížová entropie

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.

Porozumění křížové entropii

Teoretické pozadí

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:

  • p(x) označuje skutečnou pravděpodobnost události x.
  • q(x) představuje modelově předpovězenou pravděpodobnost události x.

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

Vztah ke Kullback-Leiblerově divergenci

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

Význam 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.

Typy ztrátových funkcí křížové entropie

Binární ztráta křížové entropie

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:

  • N označuje počet vzorků.
  • y_i je skutečný štítek (0 nebo 1).
  • p_i je předpovězená pravděpodobnost pozitivní třídy.

Kategorická ztráta křížové entropie

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:

  • C představuje počet tříd.
  • y_{ij} je skutečný štítek pro třídu j u vzorku i.
  • p_{ij} je předpovězená pravděpodobnost třídy j u vzorku i.

Praktický příklad

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.

Využití v AI a automatizaci

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:

  1. Rozpoznávání obrazu a řeči
    Modely pro klasifikaci obrázků nebo rozpoznávání vzorců v řeči běžně používají křížovou entropii ke zvýšení přesnosti.
  2. Zpracování přirozeného jazyka (NLP)
    Úlohy jako analýza sentimentu, strojový překlad a klasifikace textu spoléhají na křížovou entropii pro optimalizaci předpovědí vůči skutečným štítkům.
  3. Chatboti a AI asistenti
    Křížová entropie pomáhá zpřesnit odpovědi modelu chatbotu tak, aby lépe odpovídaly očekáváním uživatele.
  4. AI automatizační systémy
    V automatizovaných rozhodovacích systémech zajišťuje křížová entropie sladění předpovědí AI s požadovanými výsledky, což zvyšuje spolehlivost systému.

Implementační příklad v Pythonu

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.

Často kladené otázky

Co je křížová entropie ve strojovém učení?

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.

Jak se křížová entropie používá jako ztrátová funkce?

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.

Co je binární a kategorická křížová entropie?

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.

Jak souvisí křížová entropie s KL divergencí?

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.

Můžete poskytnout jednoduchou implementaci křížové entropie v Pythonu?

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))

Vyzkoušejte FlowHunt ještě dnes

Začněte vytvářet vlastní AI řešení s intuitivní platformou FlowHunt. Optimalizujte své modely a automatizujte pracovní postupy efektivně.

Zjistit více

Křížová validace

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

5 min čtení
AI Machine Learning +3
Logaritmická ztráta (Log Loss)

Logaritmická ztráta (Log Loss)

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

4 min čtení
Log Loss Machine Learning +3
Plocha pod křivkou (AUC)

Plocha pod křivkou (AUC)

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

3 min čtení
Machine Learning AI +3