Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Verliesfunctie | Neuraal Netwerk Vanaf Nul
Introductie tot Neurale Netwerken

bookVerliesfunctie

Bij het trainen van een neuraal netwerk is het noodzakelijk om te meten hoe nauwkeurig het model de juiste resultaten voorspelt. Dit gebeurt met behulp van een verliesfunctie, die het verschil berekent tussen de voorspellingen van het model en de werkelijke doelwaarden. Het doel van de training is om dit verlies te minimaliseren, zodat de voorspellingen zo dicht mogelijk bij de werkelijke uitkomsten liggen.

Voor binaire classificatie-taken is een van de meest gebruikte verliesfuncties de cross-entropy loss, die bijzonder effectief is voor modellen die waarschijnlijkheden als output geven.

Afleiding van Cross-Entropy Loss

Om de cross-entropy loss te begrijpen, wordt het maximum likelihood-principe gehanteerd. Bij een binaire classificatie is het doel om een model te trainen dat de waarschijnlijkheid y^\hat{y} schat dat een gegeven invoer tot klasse 1 behoort. Het ware label yy kan twee waarden aannemen: 0 of 1.

Een effectief model moet hoge waarschijnlijkheden toekennen aan correcte voorspellingen. Dit idee wordt geformaliseerd via de likelihoodfunctie, die de kans weergeeft om de werkelijke data te observeren gegeven de voorspellingen van het model.

Voor een enkele trainingsvoorbeeld, uitgaande van onafhankelijkheid, kan de likelihood als volgt worden uitgedrukt:

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

Deze uitdrukking betekent het volgende:

  • Als y=1y = 1, dan P(yx)=y^P(y|x) = \hat{y} — het model moet een hoge waarschijnlijkheid toekennen aan klasse 1;
  • Als y=0y = 0, dan P(yx)=1y^P(y|x) = 1 - \hat{y} — het model moet een hoge waarschijnlijkheid toekennen aan klasse 0.

In beide gevallen is het doel om de kans te maximaliseren die het model aan de juiste klasse toekent.

Note
Opmerking

P(yx)P(y|x) betekent de kans om het werkelijke klasse-label yy te observeren gegeven de invoerwaarden xx.

Om optimalisatie te vereenvoudigen wordt de log-likelihood gebruikt in plaats van de likelihoodfunctie, omdat het nemen van de logaritme producten omzet in sommen, waardoor differentiëren eenvoudiger wordt:

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

Omdat het trainen gericht is op het maximaliseren van de log-likelihood, wordt de verliesfunctie gedefinieerd als de negatieve waarde hiervan zodat het optimalisatieproces een minimalisatieprobleem wordt:

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

Dit is de binaire cross-entropy verliesfunctie, veelgebruikt bij classificatieproblemen.

Aangenomen dat de variabele output y^\hat{y} voorstelt voor een bepaald trainingsvoorbeeld, en de variabele target yy voor dit trainingsvoorbeeld voorstelt, kan deze verliesfunctie als volgt worden geïmplementeerd:

import numpy as np

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

Waarom deze formule?

Cross-entropy verlies heeft een duidelijke intuïtieve interpretatie:

  • Als y=1y = 1, vereenvoudigt het verlies tot log(y^)-\log(\hat{y}), wat betekent dat het verlies laag is wanneer y^\hat{y} dicht bij 1 ligt en zeer hoog wanneer y^\hat{y} dicht bij 0 ligt;
  • Als y=0y = 0, vereenvoudigt het verlies tot log(1y^)-\log(1 - \hat{y}), wat betekent dat het verlies laag is wanneer y^\hat{y} dicht bij 0 ligt en zeer hoog wanneer het dicht bij 1 ligt.

Aangezien logaritmen negatief groot worden naarmate hun invoer nul nadert, worden onjuiste voorspellingen zwaar bestraft, wat het model aanmoedigt om zelfverzekerde, correcte voorspellingen te doen.

Als meerdere voorbeelden worden doorgegeven tijdens forward propagatie, wordt het totale verlies berekend als het gemiddelde verlies over alle voorbeelden:

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

waarbij NN het aantal trainingsvoorbeelden is.

question mark

Welke van de volgende omschrijvingen geeft het beste het doel van de cross-entropy verliesfunctie weer bij binaire classificatie?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 4

bookVerliesfunctie

Veeg om het menu te tonen

Bij het trainen van een neuraal netwerk is het noodzakelijk om te meten hoe nauwkeurig het model de juiste resultaten voorspelt. Dit gebeurt met behulp van een verliesfunctie, die het verschil berekent tussen de voorspellingen van het model en de werkelijke doelwaarden. Het doel van de training is om dit verlies te minimaliseren, zodat de voorspellingen zo dicht mogelijk bij de werkelijke uitkomsten liggen.

Voor binaire classificatie-taken is een van de meest gebruikte verliesfuncties de cross-entropy loss, die bijzonder effectief is voor modellen die waarschijnlijkheden als output geven.

Afleiding van Cross-Entropy Loss

Om de cross-entropy loss te begrijpen, wordt het maximum likelihood-principe gehanteerd. Bij een binaire classificatie is het doel om een model te trainen dat de waarschijnlijkheid y^\hat{y} schat dat een gegeven invoer tot klasse 1 behoort. Het ware label yy kan twee waarden aannemen: 0 of 1.

Een effectief model moet hoge waarschijnlijkheden toekennen aan correcte voorspellingen. Dit idee wordt geformaliseerd via de likelihoodfunctie, die de kans weergeeft om de werkelijke data te observeren gegeven de voorspellingen van het model.

Voor een enkele trainingsvoorbeeld, uitgaande van onafhankelijkheid, kan de likelihood als volgt worden uitgedrukt:

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

Deze uitdrukking betekent het volgende:

  • Als y=1y = 1, dan P(yx)=y^P(y|x) = \hat{y} — het model moet een hoge waarschijnlijkheid toekennen aan klasse 1;
  • Als y=0y = 0, dan P(yx)=1y^P(y|x) = 1 - \hat{y} — het model moet een hoge waarschijnlijkheid toekennen aan klasse 0.

In beide gevallen is het doel om de kans te maximaliseren die het model aan de juiste klasse toekent.

Note
Opmerking

P(yx)P(y|x) betekent de kans om het werkelijke klasse-label yy te observeren gegeven de invoerwaarden xx.

Om optimalisatie te vereenvoudigen wordt de log-likelihood gebruikt in plaats van de likelihoodfunctie, omdat het nemen van de logaritme producten omzet in sommen, waardoor differentiëren eenvoudiger wordt:

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

Omdat het trainen gericht is op het maximaliseren van de log-likelihood, wordt de verliesfunctie gedefinieerd als de negatieve waarde hiervan zodat het optimalisatieproces een minimalisatieprobleem wordt:

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

Dit is de binaire cross-entropy verliesfunctie, veelgebruikt bij classificatieproblemen.

Aangenomen dat de variabele output y^\hat{y} voorstelt voor een bepaald trainingsvoorbeeld, en de variabele target yy voor dit trainingsvoorbeeld voorstelt, kan deze verliesfunctie als volgt worden geïmplementeerd:

import numpy as np

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

Waarom deze formule?

Cross-entropy verlies heeft een duidelijke intuïtieve interpretatie:

  • Als y=1y = 1, vereenvoudigt het verlies tot log(y^)-\log(\hat{y}), wat betekent dat het verlies laag is wanneer y^\hat{y} dicht bij 1 ligt en zeer hoog wanneer y^\hat{y} dicht bij 0 ligt;
  • Als y=0y = 0, vereenvoudigt het verlies tot log(1y^)-\log(1 - \hat{y}), wat betekent dat het verlies laag is wanneer y^\hat{y} dicht bij 0 ligt en zeer hoog wanneer het dicht bij 1 ligt.

Aangezien logaritmen negatief groot worden naarmate hun invoer nul nadert, worden onjuiste voorspellingen zwaar bestraft, wat het model aanmoedigt om zelfverzekerde, correcte voorspellingen te doen.

Als meerdere voorbeelden worden doorgegeven tijdens forward propagatie, wordt het totale verlies berekend als het gemiddelde verlies over alle voorbeelden:

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

waarbij NN het aantal trainingsvoorbeelden is.

question mark

Welke van de volgende omschrijvingen geeft het beste het doel van de cross-entropy verliesfunctie weer bij binaire classificatie?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6
some-alt