Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tabt Funktion | Neuralt Netværk fra Bunden
Introduktion til neurale netværk

bookTabt Funktion

Ved træning af et neuralt netværk har vi brug for en metode til at måle, hvor godt vores model præsterer. Dette gøres ved hjælp af en tab-funktion, som kvantificerer forskellen mellem de forudsagte output og de faktiske målværdier. Målet med træningen er at minimere dette tab, så vores forudsigelser kommer så tæt på de faktiske værdier som muligt.

En af de mest anvendte tab-funktioner til binær klassifikation er kryds-entropi-tab, som fungerer godt med modeller, der returnerer sandsynligheder.

Udledning af kryds-entropi-tab

For at forstå kryds-entropi-tab starter vi med maksimal sandsynlighedsprincippet. I et binært klassifikationsproblem er målet at træne en model, der estimerer sandsynligheden y^\hat{y} for, at en given input tilhører klasse 1. Den faktiske label yy kan enten være 0 eller 1.

En god model bør maksimere sandsynligheden for korrekt at forudsige alle træningseksempler. Det betyder, at vi ønsker at maksimere sandsynlighedsfunktionen, som repræsenterer sandsynligheden for at observere de givne data under modellens forudsigelser.

For et enkelt træningseksempel, under antagelse af uafhængighed, kan sandsynligheden skrives som:

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

Dette udtryk betyder ganske enkelt:

  • Hvis y=1y = 1, så er P(yx)=y^P(y|x) = \hat{y}, hvilket betyder, at vi ønsker at maksimere y^\hat{y} (sandsynligheden tildelt klasse 1);
  • Hvis y=0y = 0, så er P(yx)=1y^P(y|x) = 1 - \hat{y}, hvilket betyder, at vi ønsker at maksimere 1y^1 - \hat{y} (sandsynligheden tildelt klasse 0).
Note
Bemærk

P(yx)P(y|x) betyder sandsynligheden for at observere den faktiske klasselabel yy givet inputtene xx.

For at gøre optimering lettere, anvendes log-likelihood i stedet for selve likelihood (da logaritmer omdanner produkter til summer, hvilket gør differentiering enklere):

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

Da målet er maksimering, defineres tabfunktionen som den negative log-likelihood, som vi ønsker at minimere:

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

Dette er binary cross-entropy tab-funktionen, som ofte anvendes til klassifikationsproblemer.

Givet at variablen output repræsenterer y^\hat{y} for et bestemt træningseksempel, og variablen target repræsenterer yy for dette træningseksempel, kan denne tab-funktion implementeres således:

import numpy as np

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

Hvorfor denne formel?

Cross-entropy tab har en klar intuitiv fortolkning:

  • Hvis y=1y = 1, forenkles tabet til log(y^)-\log(\hat{y}), hvilket betyder, at tabet er lavt, når y^\hat{y} er tæt på 1 og meget højt, når y^\hat{y} er tæt på 0;
  • Hvis y=0y = 0, forenkles tabet til log(1y^)-\log(1 - \hat{y}), hvilket betyder, at tabet er lavt, når y^\hat{y} er tæt på 0 og meget højt, når det er tæt på 1.

Da logaritmer bliver negativt store, når deres input nærmer sig nul, straffes forkerte forudsigelser kraftigt, hvilket tilskynder modellen til at lave sikre, korrekte forudsigelser.

Hvis flere eksempler sendes gennem forward propagation, beregnes det samlede tab som gennemsnitstabet på tværs af 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 antallet af træningsprøver.

question mark

Hvilket af følgende beskriver bedst formålet med cross-entropy tab-funktionen i binær klassifikation?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you explain how cross-entropy loss differs from mean squared error?

Why do we use the negative log-likelihood instead of just the likelihood?

Can you show how this loss function is used during neural network training?

Awesome!

Completion rate improved to 4

bookTabt Funktion

Stryg for at vise menuen

Ved træning af et neuralt netværk har vi brug for en metode til at måle, hvor godt vores model præsterer. Dette gøres ved hjælp af en tab-funktion, som kvantificerer forskellen mellem de forudsagte output og de faktiske målværdier. Målet med træningen er at minimere dette tab, så vores forudsigelser kommer så tæt på de faktiske værdier som muligt.

En af de mest anvendte tab-funktioner til binær klassifikation er kryds-entropi-tab, som fungerer godt med modeller, der returnerer sandsynligheder.

Udledning af kryds-entropi-tab

For at forstå kryds-entropi-tab starter vi med maksimal sandsynlighedsprincippet. I et binært klassifikationsproblem er målet at træne en model, der estimerer sandsynligheden y^\hat{y} for, at en given input tilhører klasse 1. Den faktiske label yy kan enten være 0 eller 1.

En god model bør maksimere sandsynligheden for korrekt at forudsige alle træningseksempler. Det betyder, at vi ønsker at maksimere sandsynlighedsfunktionen, som repræsenterer sandsynligheden for at observere de givne data under modellens forudsigelser.

For et enkelt træningseksempel, under antagelse af uafhængighed, kan sandsynligheden skrives som:

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

Dette udtryk betyder ganske enkelt:

  • Hvis y=1y = 1, så er P(yx)=y^P(y|x) = \hat{y}, hvilket betyder, at vi ønsker at maksimere y^\hat{y} (sandsynligheden tildelt klasse 1);
  • Hvis y=0y = 0, så er P(yx)=1y^P(y|x) = 1 - \hat{y}, hvilket betyder, at vi ønsker at maksimere 1y^1 - \hat{y} (sandsynligheden tildelt klasse 0).
Note
Bemærk

P(yx)P(y|x) betyder sandsynligheden for at observere den faktiske klasselabel yy givet inputtene xx.

For at gøre optimering lettere, anvendes log-likelihood i stedet for selve likelihood (da logaritmer omdanner produkter til summer, hvilket gør differentiering enklere):

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

Da målet er maksimering, defineres tabfunktionen som den negative log-likelihood, som vi ønsker at minimere:

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

Dette er binary cross-entropy tab-funktionen, som ofte anvendes til klassifikationsproblemer.

Givet at variablen output repræsenterer y^\hat{y} for et bestemt træningseksempel, og variablen target repræsenterer yy for dette træningseksempel, kan denne tab-funktion implementeres således:

import numpy as np

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

Hvorfor denne formel?

Cross-entropy tab har en klar intuitiv fortolkning:

  • Hvis y=1y = 1, forenkles tabet til log(y^)-\log(\hat{y}), hvilket betyder, at tabet er lavt, når y^\hat{y} er tæt på 1 og meget højt, når y^\hat{y} er tæt på 0;
  • Hvis y=0y = 0, forenkles tabet til log(1y^)-\log(1 - \hat{y}), hvilket betyder, at tabet er lavt, når y^\hat{y} er tæt på 0 og meget højt, når det er tæt på 1.

Da logaritmer bliver negativt store, når deres input nærmer sig nul, straffes forkerte forudsigelser kraftigt, hvilket tilskynder modellen til at lave sikre, korrekte forudsigelser.

Hvis flere eksempler sendes gennem forward propagation, beregnes det samlede tab som gennemsnitstabet på tværs af 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 antallet af træningsprøver.

question mark

Hvilket af følgende beskriver bedst formålet med cross-entropy tab-funktionen i binær klassifikation?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6
some-alt