Introductie tot Autoencoders
Autoencoders zijn een klasse neurale netwerken die voornamelijk worden gebruikt voor unsupervised learning en dimensionaliteitsreductie. Het fundamentele idee achter autoencoders is om invoergegevens te coderen naar een lager-dimensionale representatie en deze vervolgens terug te decoderen naar de oorspronkelijke gegevens, met als doel de reconstructiefout te minimaliseren. De basisarchitectuur van een autoencoder bestaat uit twee hoofdcomponenten: de encoder en de decoder.- Encoder: De encoder is verantwoordelijk voor het transformeren van de invoergegevens naar een gecomprimeerde of latente representatie. Deze bestaat doorgaans uit een of meer lagen neuronen die de dimensies van de invoer geleidelijk verkleinen.
- Decoder: De decoder daarentegen neemt de gecomprimeerde representatie die door de encoder is geproduceerd en probeert de oorspronkelijke invoergegevens te reconstrueren. Net als de encoder bestaat deze vaak uit een of meer lagen, maar in omgekeerde volgorde, waarbij de dimensies geleidelijk worden vergroot.

Overzicht van Variational Autoencoders (VAE’s)
Variational Autoencoders (VAE’s) pakken enkele beperkingen van traditionele autoencoders aan door een probabilistische benadering van coderen en decoderen te introduceren. De motivatie achter VAE’s ligt in hun vermogen om nieuwe gegevenssamples te genereren door te samplen uit een geleerde distributie in de latente ruimte, in plaats van uit een vaste latente vector zoals het geval was bij vanilla autoencoders. Dit maakt ze geschikt voor generatieve taken.- Probabilistische aard: In tegenstelling tot deterministische autoencoders modelleren VAE’s de latente ruimte als een kansverdeling. Dit levert een kansverdelingsfunctie op over de invoercoderingen in plaats van slechts één enkele vaste vector, waardoor een genuanceerdere representatie van onzekerheid in de gegevens mogelijk wordt. De decoder samplet vervolgens uit deze kansverdeling.
- Rol van de latente ruimte: De latente ruimte in VAE’s dient als een continue, gestructureerde representatie van de invoergegevens. Omdat deze per ontwerp continu is, maakt dit eenvoudige interpolatie mogelijk. Elk punt in de latente ruimte komt overeen met een potentiële uitvoer, waardoor vloeiende overgangen tussen verschillende gegevenspunten mogelijk zijn en wordt gewaarborgd dat punten die dichter bij elkaar liggen in de latente ruimte tot vergelijkbare generaties leiden.
