Direct naar inhoud
Alle termenWiskundige & statistische basis

Wat is Jensen-Shannon Divergence?

Een manier om te meten hoe veel twee kansverdelingen van elkaar verschillen. Vaak gebruikt bij het trainen van AI-modellen om te checken of de gegenereerde data lijkt op de echte data.

Wat is Jensen-Shannon Divergence

Wat meet dit eigenlijk?

Stel je voor: je hebt twee stapels foto's. Eén stapel bestaat uit echte foto's van honden, de andere uit plaatjes die een AI heeft gegenereerd. Jensen-Shannon Divergence (vaak afgekort als JS divergence) is een getal dat aangeeft hoe verschillend die twee stapels zijn.

Het werkt als een soort afstandsmeter tussen twee kansverdelingen. Een kansverdeling is eigenlijk gewoon een overzicht van hoe vaak iets voorkomt — zoals: "30% van de honden is een labrador, 20% een herder, enzovoort". De JS divergence kijkt naar twee van zulke overzichten en zegt: "Deze lijken wel op elkaar" (lage score) of "Dit zijn echt twee verschillende werelden" (hoge score).

Het slimme aan deze maatstaf is dat hij symmetrisch werkt. Het maakt niet uit welke verdeling je als "de echte" beschouwt en welke als "de gegenereerde" — het getal blijft hetzelfde. Dat is handiger dan sommige andere meetmethodes die wel gevoelig zijn voor de volgorde.

Waarom gebruikt AI dit?

Bij het trainen van generatieve AI-modellen — denk aan plaatjes-generatoren, taalmodellen, muziekgeneratoren — wil je dat de gegenereerde output zo natuurlijk mogelijk lijkt. Je wilt dat de verdeling van wat het model maakt, overeenkomt met de verdeling van échte data.

JS divergence helpt je om dat verschil te kwantificeren. Als het getal laag is, zit je goed. Als het hoog is, weet je dat je model nog niet realistisch genoeg werkt. Het is een manier om objectief te messen of je vooruitgang boekt tijdens het trainen.

In de praktijk zie je dit vooral bij Generative Adversarial Networks (GANs). Daar heb je twee netwerken die tegen elkaar strijden: één genereert plaatjes, de ander probeert nep van echt te onderscheiden. De JS divergence kan worden gebruikt als signaal om te zien of die strijd in balans is, of dat één van beide netwerken te sterk wordt.

Een voorbeeld uit de praktijk

Stel: je traint een AI om realistische profielfoto's te genereren voor een design-tool. Je hebt een dataset met duizenden echte foto's van mensen. Het model begint plaatjes te maken, maar in het begin zijn die nog wazig en onnatuurlijk.

Je berekent de JS divergence tussen de verdeling van kleuren, contrasten en gezichtsstructuren in de echte foto's versus de gegenereerde foto's. In het begin is die score hoog — het model zit er nog naast. Naarmate je verder traint, zakt de score. Op een gegeven moment bereik je een punt waarop de gegenereerde gezichten niet meer te onderscheiden zijn van de echte, en de JS divergence stabiliseert op een laag niveau.

Dat is het moment waarop je weet: mijn model heeft de verdeling van de echte data goed begrepen.

Waar kom je het tegen?

JS divergence is vooral een techniek die onder de motorkap wordt gebruikt bij het ontwikkelen van AI-systemen. Je ziet het niet direct terug in een interface of tool, maar het speelt een rol in:

  • Onderzoekspapers over GANs — vooral in de begintijd werden verschillende divergenties vergeleken om te kijken welke het beste werkte

  • Trainingsmonitoring — als je zelf een generatief model traint, kun je JS divergence als metriek toevoegen om te volgen hoe goed je model presteert

  • Anomalie-detectie — soms wordt het gebruikt om te checken of nieuwe data afwijkt van wat een model gewend is (bijvoorbeeld in cybersecurity of medische diagnostiek)

Je hoeft het niet zelf te berekenen als je bijvoorbeeld ChatGPT, Midjourney of DALL-E gebruikt — dat doen de makers achter de schermen. Maar als je begrijpt wat JS divergence doet, snap je beter hoe zulke systemen worden getraind en geëvalueerd.

Wat kun je ermee?

Als je zelf met AI-modellen werkt — bijvoorbeeld in een data science-team of als onderzoeker — is JS divergence een handige tool in je gereedschapskist. Het helpt je om objectief te meten of je model de juiste kant opgaat, zonder dat je handmatig duizenden voorbeelden hoeft te beoordelen.

Ook als je geen technische achtergrond hebt, is het goed om te weten dat AI-ontwikkelaars zulke meetinstrumenten gebruiken. Het laat zien dat "realistisch lijken" niet alleen een visueel oordeel is, maar iets wat je wiskundig kunt vastleggen en verbeteren. Dat maakt het verschil tussen een model dat af en toe iets geloofwaardigs maakt, en een model dat consistent goede resultaten levert.

FAQ

Veelgestelde vragen over Jensen-Shannon Divergence

De drie meest gestelde vragen over dit onderwerp, kort beantwoord.

Wat is Jensen-Shannon Divergence?

Een manier om te meten hoe veel twee kansverdelingen van elkaar verschillen. Vaak gebruikt bij het trainen van AI-modellen om te checken of de gegenereerde data lijkt op de echte data.

Waarom is Jensen-Shannon Divergence belangrijk?

Stel je voor: je hebt twee stapels foto's. Eén stapel bestaat uit echte foto's van honden, de andere uit plaatjes die een AI heeft gegenereerd. Jensen-Shannon Divergence (vaak afgekort als JS divergence) is een getal dat aangeeft hoe verschillend die twee stapels zijn.

Hoe wordt Jensen-Shannon Divergence toegepast?

Het werkt als een soort afstandsmeter tussen twee kansverdelingen. Een kansverdeling is eigenlijk gewoon een overzicht van hoe vaak iets voorkomt — zoals: "30% van de honden is een labrador, 20% een herder, enzovoort". De JS divergence kijkt naar twee van zulke overzichten en zegt: "Deze lijken wel op elkaar" (lage score) of "Dit zijn echt twee verschillende werelden" (hoge score).

Deel: