Synthetische data zijn kunstmatige gegevens die door een algoritme zijn gemaakt om echte data na te bootsen. De dataset bevat geen informatie van echte personen, maar behoudt wel de statistische eigenschappen en patronen van de originele bron.
Technische werking
- Analyse van de bron. Het algoritme scant de echte dataset om verbanden, correlaties en verdelingen tussen variabelen te vinden.
- Modellering. Er wordt een wiskundig model gebouwd dat deze patronen beschrijft, zonder de individuele records letterlijk te kopiëren.
- Generatie. Het systeem trekt nieuwe waarden uit dit model, waardoor records ontstaan die eruitzien als echte data maar in werkelijkheid niet bestaan.
- Validatie. De nieuwe dataset wordt vergeleken met het origineel om te controleren of de statistische eigenschappen nog kloppen.
Belangrijke begrippen
Generative Adversarial Networks (GANs)
Twee neurale netwerken die tegen elkaar strijden. De één maakt nepmaterialen en de ander probeert het verschil met echte data te ontdekken, waardoor de kwaliteit van de synthetische data steeds hoger wordt.
Differential Privacy
Een techniek waarbij ruis aan de data wordt toegevoegd. Dit voorkomt dat iemand via slimme zoekopdrachten alsnog kan achterhalen wie de echte personen achter de patronen waren.
Overfitting
Een risico waarbij het algoritme de echte data te nauwkeurig kopieert. In dat geval is de data niet meer echt synthetisch, maar een vermomde versie van het origineel.
Variational Autoencoders (VAEs)
Modellen die data eerst comprimeren naar een eenvoudige weergave en deze daarna weer uitbreiden. Dit is vaak stabieler dan GANs, maar levert soms minder gedetailleerde resultaten op.
Dummy data
Dit is simpelweg willekeurige invulling, zoals ‘Test Gebruiker 1’. Synthetische data is complexer omdat het de logica en statistiek van echte gebruikersgedragingen volgt.
Praktijkvoorbeeld
Stel je voor dat example.nl een webshop is die een nieuw aanbevelingsalgoritme wil testen. Ze hebben duizenden echte klantprofielen met aankoophistorie, maar mogen deze vanwege strengere privacyregels niet zomaar delen met externe ontwikkelaars. In plaats van de echte database te anonimiseren, maken ze een synthetische dataset.
Het algoritme ziet dat mensen die vaak biologische koffie kopen, ook vaak havermelk bestellen. De synthetische data bevat nu honderden nieuwe, fictieve klanten die exact ditzelfde koopgedrag vertonen. De ontwikkelaar ziet in de database records die er zo uitzien:
[
{"klant_id": "syn_8821", "product_a": "Biologische Espresso", "product_b": "Havermelk 1L", "waarde": 12.50},
{"klant_id": "syn_8822", "product_a": "Decaf Coffee", "product_b": "Sojamelk 1L", "waarde": 10.20}
]
De ontwikkelaar kan het algoritme trainen op deze data. De resultaten zijn betrouwbaar omdat de correlaties kloppen, maar er is geen enkele echte klant betrokken.
Veelgemaakte fouten
- Blind vertrouwen op de verdeling. Je denkt dat de data klopt, maar het algoritme heeft een zeldzame uitschieter in de echte data genegeerd. Hierdoor mist je model belangrijke randgevallen.
- Te veel ruis toevoegen. In een poging de privacy te waarborgen, wordt er zoveel ruis toegevoegd dat de data onbruikbaar wordt. De statistische waarde verdwijnt dan volledig.
- Verwarring met anonimisering. Het simpelweg weghalen van namen en e-mailadressen is geen synthetische data. Met een paar kruisverwijzingen kun je mensen in geanonimiseerde sets vaak alsnog identificeren.
- Geen controle op bias. Als de originele data bevooroordeeld is, kopieert het synthetische model deze fouten simpelweg. Je lost een sociaal probleem niet op met een technische kopie.
Gebruik en afwegingen
Je gebruikt synthetische data als je een grote hoeveelheid beschikbare informatie nodig hebt voor het trainen van AI, maar de echte data te gevoelig is. Het biedt een hoge mate van flexibiliteit omdat je zelf kunt bepalen hoeveel records je genereert.
Gebruik het niet als je absolute precisie op individueel niveau nodig hebt. Voor medische diagnoses of juridische dossiers is een benadering van de werkelijkheid niet genoeg; daar is de exacte historie van één specifiek persoon leidend.
Kies voor synthetische data wanneer de rol van privacy zwaarder weegt dan de noodzaak voor 100% feitelijke accuratesse. Als je alleen wilt weten hoe een systeem reageert op bepaalde patronen, is dit de weg van het minste risico.
Controle en implementatie
Om te bepalen of je synthetische dataset werkt, voer je de volgende controles uit:
- Statistische vergelijking. Bereken het gemiddelde en de standaarddeviatie van zowel de echte als de synthetische set. Deze moeten nagenoeg gelijk zijn.
- Correlatiematrix. Controleer of de verbanden tussen variabelen (zoals leeftijd en besteedbaar inkomen) in beide sets hetzelfde zijn.
- Privacy-audit. Probeer met een ‘re-identification attack’ te achterhalen of records uit de synthetische set te herleiden zijn naar echte personen.
- Model-performance test. Train een model op echte data en één op synthetische data. Als de uitkomsten in de praktijk sterk verschillen, is je generatie-model niet accuraat genoeg.
Begin niet met te complexe modellen als een simpele statistische benadering al genoeg is voor je testcase.
Houd de balans tussen privacy en bruikbaarheid scherp in de gaten door regelmatig steekproeven te nemen uit je gegenereerde set.
Vergelijk een kleine subset van je eigen klantdata met een simpel gegenereerd voorbeeld om te zien waar de patronen afwijken.