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 er det nødvendigt at måle, hvor præcist modellen forudsiger de korrekte resultater. Dette gøres ved hjælp af en tab-funktion, som beregner forskellen mellem modellens forudsigelser og de faktiske målværdier. Målet med træningen er at minimere dette tab, så forudsigelserne kommer så tæt som muligt på de sande output.

For binære klassifikationsopgaver er en af de mest anvendte tab-funktioner krydsentropi-tab, som er særligt effektiv for modeller, der returnerer sandsynligheder.

Udledning af krydsentropi-tab

For at forstå krydsentropi-tab skal man overveje maksimum likelihood-princippet. 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 sande etiket yy kan antage en af to værdier: 0 eller 1.

En effektiv model bør tildele høje sandsynligheder til korrekte forudsigelser. Denne idé formaliseres gennem likelihood-funktionen, som repræsenterer sandsynligheden for at observere de faktiske data givet modellens forudsigelser.

For et enkelt træningseksempel, under antagelse af uafhængighed, kan likelihood udtrykkes som:

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

Dette udtryk betyder følgende:

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

I begge tilfælde er målet at maksimere den sandsynlighed, som modellen tildeler den korrekte klasse.

Note
Bemærk

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

For at forenkle optimeringen anvendes log-likelihood i stedet for likelihood-funktionen, fordi logaritmen omdanner produkter til summer, hvilket gør differentiering mere ligetil:

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

Da træning har til formål at maksimere log-likelihood, defineres loss-funktionen som dens negative værdi, så optimeringsprocessen bliver et minimeringsproblem:

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

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, bliver forkerte forudsigelser kraftigt straffet, hvilket opmuntrer 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

Awesome!

Completion rate improved to 4

bookTabt Funktion

Stryg for at vise menuen

Ved træning af et neuralt netværk er det nødvendigt at måle, hvor præcist modellen forudsiger de korrekte resultater. Dette gøres ved hjælp af en tab-funktion, som beregner forskellen mellem modellens forudsigelser og de faktiske målværdier. Målet med træningen er at minimere dette tab, så forudsigelserne kommer så tæt som muligt på de sande output.

For binære klassifikationsopgaver er en af de mest anvendte tab-funktioner krydsentropi-tab, som er særligt effektiv for modeller, der returnerer sandsynligheder.

Udledning af krydsentropi-tab

For at forstå krydsentropi-tab skal man overveje maksimum likelihood-princippet. 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 sande etiket yy kan antage en af to værdier: 0 eller 1.

En effektiv model bør tildele høje sandsynligheder til korrekte forudsigelser. Denne idé formaliseres gennem likelihood-funktionen, som repræsenterer sandsynligheden for at observere de faktiske data givet modellens forudsigelser.

For et enkelt træningseksempel, under antagelse af uafhængighed, kan likelihood udtrykkes som:

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

Dette udtryk betyder følgende:

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

I begge tilfælde er målet at maksimere den sandsynlighed, som modellen tildeler den korrekte klasse.

Note
Bemærk

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

For at forenkle optimeringen anvendes log-likelihood i stedet for likelihood-funktionen, fordi logaritmen omdanner produkter til summer, hvilket gør differentiering mere ligetil:

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

Da træning har til formål at maksimere log-likelihood, defineres loss-funktionen som dens negative værdi, så optimeringsprocessen bliver et minimeringsproblem:

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

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, bliver forkerte forudsigelser kraftigt straffet, hvilket opmuntrer 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