Korsvalidering
Korsvalidering är en statistisk metod som används för att utvärdera och jämföra maskininlärningsmodeller genom att dela upp data i tränings- och valideringsupps...
Korsentropi mäter avvikelsen mellan förutsagda och sanna sannolikhetsfördelningar och används i stor utsträckning som en förlustfunktion inom maskininlärning för att optimera noggrannheten hos klassificeringsmodeller.
Korsentropi är ett centralt begrepp inom både informationsteori och maskininlärning, och fungerar som ett mått för att mäta avvikelsen mellan två sannolikhetsfördelningar över samma uppsättning av händelser. Inom maskininlärning är detta mått särskilt viktigt som en förlustfunktion för att kvantifiera skillnader mellan modellens förutsagda utdata och de sanna etiketterna i datan. Denna kvantifiering är avgörande vid modellträning, särskilt för klassificeringsuppgifter, eftersom den hjälper till att justera modellens vikter för att minimera förutsägelsefel och därigenom förbättra modellens prestanda.
Begreppet korsentropi, betecknat som H(p, q), innebär att man beräknar avvikelsen mellan två sannolikhetsfördelningar: p (den sanna fördelningen) och q (modellens uppskattade fördelning). För diskreta fördelningar uttrycks korsentropi matematiskt som:
$$ H(p, q) = -\sum_{x} p(x) \log q(x) $$
Där:
Korsentropi beräknar i princip det genomsnittliga antalet bitar som krävs för att identifiera en händelse från en uppsättning möjligheter med ett kodningsschema optimerat för den uppskattade fördelningen (q), snarare än den sanna fördelningen (p).
Korsentropi är nära kopplad till Kullback-Leibler (KL) divergens, som mäter hur en sannolikhetsfördelning avviker från en annan förväntad fördelning. Korsentropin H(p, q) kan uttryckas med entropin för den sanna fördelningen H(p) och KL-divergensen D_{KL}(p || q) enligt följande:
$$ H(p, q) = H(p) + D_{KL}(p \parallel q) $$
Denna relation understryker korsentropins grundläggande roll vid kvantifiering av förutsägelsefel och binder samman statistisk teori med praktisk maskininlärning.
Inom maskininlärning, särskilt vid klassificeringsproblem, används korsentropi som en förlustfunktion som utvärderar hur väl den förutsagda sannolikhetsfördelningen stämmer överens med den faktiska fördelningen av etiketterna. Den är mycket effektiv vid klassificering med flera klasser där målet är att ge högst sannolikhet till rätt klass och därmed styra optimeringsprocessen under modellträningen.
Denna funktion används vid binära klassificeringsuppgifter där det finns två möjliga klasser (t.ex. sant/falskt, positiv/negativ). Binär korsentropiförlust beskrivs som:
$$ L = -\frac{1}{N} \sum_{i=1}^N [y_i \log(p_i) + (1-y_i) \log(1-p_i)] $$
Där:
Används vid klassificeringsuppgifter med flera klasser. Kategorisk korsentropiförlust beräknas som:
$$ L = -\frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{C} y_{ij} \log(p_{ij}) $$
Där:
Tänk dig ett klassificeringsscenario med tre klasser: katter, hundar och hästar. Om den sanna etiketten för en bild är en hund, representerad av vektorn [0, 1, 0], och modellen förutspår [0.4, 0.4, 0.2], beräknas korsentropiförlusten som:
$$ L(y, \hat{y}) = – (0 \times \log(0.4) + 1 \times \log(0.4) + 0 \times \log(0.2)) = 0.92 $$
En lägre korsentropi indikerar bättre överensstämmelse mellan modellens förutsagda sannolikheter och de sanna etiketterna, vilket speglar en bättre modellprestanda.
Korsentropi är avgörande vid träning av AI-modeller, särskilt inom övervakad inlärning. Det används flitigt vid:
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))
# Exempel på användning
y_true = np.array([0, 1, 0]) # Sann etikett (one-hot kodad)
y_pred = np.array([0.4, 0.4, 0.2]) # Förutsagda sannolikheter
loss = cross_entropy(y_true, y_pred)
print(f"Korsentropiförlust: {loss}")
I detta Python-exempel beräknar funktionen cross_entropy
förlusten mellan sanna etiketter och förutsagda sannolikheter, vilket underlättar modellevaluering och optimering.
Korsentropi är ett mått som mäter avvikelsen mellan två sannolikhetsfördelningar och används ofta som en förlustfunktion för att utvärdera hur väl en modells förutsägelser stämmer överens med de sanna etiketterna.
Inom maskininlärning kvantifierar korsentropi felet mellan de förutsagda sannolikheterna och de faktiska etiketterna, och vägleder optimeringsprocessen för att förbättra modellens noggrannhet, särskilt vid klassificeringsuppgifter.
Binär korsentropi används för binär klassificering (två klasser), medan kategorisk korsentropi hanterar klassificering med flera klasser. Båda beräknar förlusten mellan sanna och förutsagda sannolikheter, anpassade efter antal klasser.
Korsentropi är relaterad till Kullback-Leibler (KL) divergens, eftersom den kan uttryckas som summan av entropin för den sanna fördelningen och KL-divergensen mellan den sanna och den förutsagda fördelningen.
Ja. Exempel: 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))
Börja bygga dina egna AI-lösningar med FlowHunts intuitiva plattform. Optimera dina modeller och automatisera dina arbetsflöden effektivt.
Korsvalidering är en statistisk metod som används för att utvärdera och jämföra maskininlärningsmodeller genom att dela upp data i tränings- och valideringsupps...
Loggförlust, eller logaritmisk/korsentropiförlust, är ett nyckelmått för att utvärdera prestandan hos maskininlärningsmodeller—särskilt för binär klassificering...
En konfusionsmatris är ett verktyg inom maskininlärning för att utvärdera prestandan hos klassificeringsmodeller. Den redovisar sanna/falska positiva och negati...