Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tapefunksjon | Seksjon
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
Grunnleggende om nevrale nettverk

bookTapefunksjon

Sveip for å vise menyen

Ved trening av et nevralt nettverk er det nødvendig å måle hvor nøyaktig modellen forutsier de korrekte resultatene. Dette gjøres ved hjelp av en tapfunksjon, som beregner forskjellen mellom modellens prediksjoner og de faktiske målverdiene. Målet med treningen er å minimere dette tapet, slik at prediksjonene blir så nær som mulig de sanne utgangene.

For binære klassifiseringsoppgaver er en av de mest brukte tapfunksjonene kryssentropi-tapet, som er spesielt effektiv for modeller som gir sannsynligheter som utdata.

Utledning av kryssentropi-tap

For å forstå kryssentropi-tapet, vurder maksimal sannsynlighetsprinsippet. I et binært klassifiseringsproblem er målet å trene en modell som estimerer sannsynligheten y^\hat{y} for at en gitt input tilhører klasse 1. Den sanne etiketten yy kan ha én av to verdier: 0 eller 1.

En effektiv modell bør tildele høye sannsynligheter til korrekte prediksjoner. Denne ideen formaliseres gjennom sannsynlighetsfunksjonen, som representerer sannsynligheten for å observere de faktiske dataene gitt modellens prediksjoner.

For et enkelt trenings-eksempel, under antakelse om uavhengighet, kan sannsynligheten uttrykkes som:

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1 - y}

Dette uttrykket betyr følgende:

  • Hvis y=1y = 1, da P(yx)=y^P(y|x) = \hat{y} — modellen bør tildele en høy sannsynlighet til klasse 1;
  • Hvis y=0y = 0, da P(yx)=1y^P(y|x) = 1 - \hat{y} — modellen bør tildele en høy sannsynlighet til klasse 0.

I begge tilfeller er målet å maksimere sannsynligheten modellen tilordner til korrekt klasse.

Note
Merk

P(yx)P(y|x) betyr sannsynligheten for å observere den faktiske klasseetiketten yy gitt inputene xx.

For å forenkle optimaliseringen brukes log-sannsynlighet i stedet for sannsynlighetsfunksjonen, fordi logaritmen gjør produkter om til summer, noe som gjør derivasjon enklere:

logP(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})

Siden treningen har som mål å maksimere log-sannsynligheten, defineres tapfunksjonen som dens negative verdi slik at optimaliseringsprosessen blir et minimeringsproblem:

L=(ylog(y^)+(1y)log(1y^))L = -\big(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\big)

Dette er binær kryssentropi-tapfunksjonen, ofte brukt for klassifiseringsproblemer.

Gitt at variabelen output representerer y^\hat{y} for et bestemt trenings-eksempel, og variabelen target representerer yy for dette trenings-eksempelet, kan denne tapfunksjonen implementeres slik:

import numpy as np

loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))

Hvorfor denne formelen?

Kryssentropi-tap har en tydelig intuitiv tolkning:

  • Hvis y=1y = 1, forenkles tapet til log(y^)-\log(\hat{y}), noe som betyr at tapet er lavt når y^\hat{y} er nær 1 og svært høyt når y^\hat{y} er nær 0;
  • Hvis y=0y = 0, forenkles tapet til log(1y^)-\log(1 - \hat{y}), noe som betyr at tapet er lavt når y^\hat{y} er nær 0 og svært høyt når det er nær 1.

Siden logaritmer blir negativt store når input nærmer seg null, blir feil prediksjoner kraftig straffet, noe som oppmuntrer modellen til å gjøre selvsikre og korrekte prediksjoner.

Hvis flere eksempler sendes gjennom fremoverpropagering, beregnes det totale tapet som gjennomsnittlig tap på tvers av alle eksempler:

L=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

hvor NN er antall treningsprøver.

question mark

Hvilket av følgende beskriver best formålet med kryssentropi-tapfunksjonen i binær klassifisering?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 13

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 13
some-alt